Sunday, July 12, 2009

C++ queue help please.?

template %26lt;typename Type%26gt;


struct Node{


Type data;


Node* next;


Node* previous;


}








template%26lt;typename Type%26gt;


class Queue{





void push(const Type%26amp;);





private:





Node%26lt;Type%26gt;* queueFront;


Node%26lt;Type%26gt;* queueBack;





};





// add an element to the back of the queue


template %26lt;typename Type%26gt;


void Queue%26lt;Type%26gt;::push(const Type%26amp; aValue){





// create a new node on the heap


Node%26lt;Type%26gt;* p = new Node%26lt;Type%26gt;;


// store the value into the node


queueBack = p;


p-%26gt;data = aValue;


if(queueFront == 0){


queueFront = p;


// if it is the first elment in the stack


// there is no previous so it is null


queueFront-%26gt;previous = 0;


queueFront-%26gt;next = 0;





}else{


p-%26gt;next = queueBack;


queueBack-%26gt;previous = p;


p-%26gt;previous = 0;





};








// make stack top point to the new node


// incriment the size


++queueSize;





};











when ever i try to call front, and return the value of the front item in the queue,i get an error if i have more than one element. What is happening??? thanks.

C++ queue help please.?
please try another compiler and


mention what error you r facing
Reply:Not sure if this is the problem, but I noticed that the two lines:





queueBack-%26gt;previous = p;


p-%26gt;previous = 0;





are counterproductive. At this point, queueBack == p, so the first line is useless.





I suspect you don't want that original queueBack = p and instead of an else off the if (queueFront == 0) test, you want an independent test of queueBack to decide how to set it.
Reply:There are too many problems, may be you can contact a C++ expert. Check websites like http://oktutorial.com/


No comments:

Post a Comment