C++ 使用链表实现队列
队列是使用链表实现的:但是程序不工作,可能出现什么错误C++ 使用链表实现队列,c++,C++,队列是使用链表实现的:但是程序不工作,可能出现什么错误 #include<iostream> #include<conio.h> using namespace std; struct node { int data; node *next; }; class queue { node *front, *rear; public: queue() { front=rear=NULL; } vo
#include<iostream>
#include<conio.h>
using namespace std;
struct node
{
int data;
node *next;
};
class queue
{
node *front, *rear;
public:
queue()
{
front=rear=NULL;
}
void insert_in_queue();
void delete_in_queue();
void display_queue();
};
void queue:: insert_in_queue()
{
node *ptr;
ptr= new node;
cout<<"\nInsert element\n";
cin>>ptr->data;
if(rear==NULL)
front=rear=ptr;
else
{ rear->next=ptr;
rear=ptr;
}
}
void queue:: delete_in_queue()
{
node *ptr;
ptr=front;
if(rear==NULL)
cout<<"\nUnderflow!!\n";
else if(front==rear)
front=rear=NULL;
else
front=front->next;
cout<<"\nThe deleted element is:: "<<ptr->data<<"\n";
delete ptr;
}
void queue:: display_queue()
{
node *ptr;
ptr=front;
cout<<"\nThe queue is:\n";
while(ptr!=NULL)
{
cout<<"|"<<ptr->data<<"|";
ptr=ptr->next;
}
}
void main()
{
queue q;
char ch;
int a;
ch='y';
cout<<"this is dynamic que progream\n\n\n";
do
{
cout<<"(1)->Insert / (2)->Delete\n";
cin>>a;
if(a==1)
q.insert_in_queue();
else
q.delete_in_queue();
q.display_queue();
cout<<"\nContinue?(y/n)\n";
cin>>ch;
}while(ch=='y');
cout<<"\nThe final queue is:\n";
q.display_queue();
system("pause");
}
#包括
#包括
使用名称空间std;
结构节点
{
int数据;
节点*下一步;
};
类队列
{
节点*前,*后;
公众:
队列()
{
前=后=零;
}
void insert_in_queue();
void delete_in_queue();
无效显示队列();
};
无效队列::在队列()中插入队列
{
节点*ptr;
ptr=新节点;
coutptr->data;
如果(后==NULL)
前=后=ptr;
其他的
{后->下一步=ptr;
后部=ptr;
}
}
无效队列::删除队列()中的队列
{
节点*ptr;
ptr=前部;
如果(后==NULL)
cout在insert_In_queue()
函数中,为ptr
分配内存后,确保使用
ptr->next=NULL;
使用a找出出错的地方。dibugger运行程序,但程序在执行期间停止。如何继续?如何继续?你用调试器逐行检查代码,每一步都查看变量,直到你的代码执行了你意想不到的操作。不知怎的,我不明白这就是为什么我在后面问你节点的<代码>下< /COD>指针应始终为NULL。此外,考虑将构造函数添加到<代码>节点< /代码>中,它总是空代码<代码>下< /代码>,因此您不能忘记。