用链表实现队列
implement queue with linked list
我编写了用链表实现队列的代码,但是有一些我无法弄清楚的bug。当我第一次将一个项目推入队列时,它可以找到,但是当我试图推入第二个项目时,它给了我运行时错误。你能帮我一下吗?非常感谢!代码如下:
#include<iostream>
using namespace std;
template<typename T>
struct Node{
T data;
Node* next;
Node(T d, Node* n=NULL): data(d), next(n){}
};
template<typename T>
class myqueue{
private:
Node<T> * first;
Node<T> * last;
public:
myqueue(){}
void push(T da){
if(first==NULL) {
first=new Node<T>(da);
last=first;
}
else {
last->next=new Node<T>(da);
last=last->next;
}
}
void pop(){
if(last!=NULL){
Node<T> * temp=first;
first=first->next;
delete temp;
}
}
void front(){
if(first!=NULL) cout<< first->data;
}
bool isempty(){
return last==NULL;
}
};
int main(){
myqueue<int> q;
q.push(1);
q.push(2);
q.front();
/*
q.push(3);
q.push(4);
q.push(5);
cout<<q.front();
*/
}
compile error: runtime error
您的first
和last
指针未初始化,因此您有未定义的行为。用成员初始化列表初始化它们:
myqueue::myqueue() : first(NULL), last(NULL) {}
相关文章:
- C++数组队列实现方法错误
- 使用 std::forward_list 返回错误的队列实现
- ARM 上的无锁 SPSC 队列实现
- 无锁队列实现中的虚假下溢C++
- 优先级队列实现为单一链接,无法更新插入的指针转换
- 队列实现C++
- 队列实现,带有C 中的链接列表
- 另一个线程安全队列实现
- C++ 链接列表队列实现和析构函数错误:"Aborted (Core Dumped)"
- 未解决的外部符号,具有自定义阻塞队列实现
- 优先级队列实现说明
- 推送到排序队列实现
- 多路优先级队列实现
- 在C++中检查队列实现时出错
- 队列实现出现Malloc指针错误
- 程序员对优先级队列实现的默认选择是什么?
- c++静态分配双端队列实现
- 队列实现失去了对头节点的跟踪
- 阻塞队列实现:争用条件在哪里?
- c++队列实现错误