Learning to implement a Linked List Queue in C++ -
Learning to implement a Linked List Queue in C++ -
i implement linked list using queue in c++. here class:
class linkedlistqueue { public: linkedlistqueue(); void enqueue(int x); void dequeue(); int peekfront(); int peekback(); private: struct node { int data; node *next; }; node *head; node *tail; }; linkedlistqueue::linkedlistqueue() { tail = 0; head = tail; } void linkedlistqueue::enqueue(int x) { struct node* newnode = (struct node*) malloc(sizeof(struct node)); newnode->data = x; newnode->next = tail; tail = newnode; if(head != null) { head = tail->next; } } void linkedlistqueue::dequeue() { struct node* newtail = tail->next; delete m_tailptr; tail = newtail; } int linkedlistqueue::peekfront() { if(tail != null) { homecoming tail->data; } else { homecoming head->data; } } int linkedlistqueue::peekback() { if(head != null) { homecoming head->data; } else { homecoming tail->data; } } i think functions working except peekfront. maintain implementation , style same, prepare error. please help.
you don't explain error if access peekfront empty linklistqueue instance tail pointer null. dereferencing null pointer (as peekfront does) cause undefined behavior.
there may other phone call sequences involve calling peekfront null tail pointer.
you shouldn't mixing malloc delete. utilize new delete (or malloc free if insist).
c++ list hyperlink queue
Comments
Post a Comment