With the code:
my compiler gives me the error "syntax error before `*'"Code:#include <iostream> #include <cstdlib> #include <cstring> class LinkedList { public: LinkedList(); ~LinkedList(); void AddNode(char* Name); void DeleteList(); protected: struct node { char MenuName[20]; node* nxt; }; node* root; node* tempnode; node* tempnode2; node* TraverseList(node* end = NULL); }; LinkedList::LinkedList() { root = NULL; tempnode = NULL; tempnode2 = NULL; } LinkedList::~LinkedList() { DeleteList(); } void LinkedList::AddNode(char* Name) { tempnode = new node; tempnode->nxt = NULL; strncpy(tempnode->MenuName, Name, 19); tempnode2 = TraverseList(); if (tempnode2 == NULL) root = tempnode; else tempnode2->nxt = tempnode; return; } void LinkedList::DeleteList() { while (root != NULL) { tempnode = TraverseList(); if (tempnode == root) { root = NULL; delete tempnode; tempnode = NULL; } else { tempnode2 = TraverseList(tempnode); tempnode2->nxt = NULL; delete tempnode; tempnode = NULL; tempnode2 = NULL; } } return; } node* LinkedList::TraverseList(node* end = NULL) { if (root == NULL) return NULL; node* tnode = root; while (tnode->nxt != end) { tnode = tnode->nxt; } return tnode; } int main() { LinkedList l; l.AddNode("Hello"); l.AddNode("Goodbye"); l.AddNode("So Long"); return 0; }
at
node* LinkedList::TraverseList(node* end = NULL)
and "syntax error before `*'"
at
node* tnode = root;
Can anyone help?
Thanks!