0
我在使用链表程序的队列中有一个小错误。在C++中使用链表的队列
程序执行成功,但是当我按1插入,声明“中输入要插入元素”重复和犯规,返回主菜单。这里是代码:
#include <iostream>
#include<conio.h>
using namespace std;
template<class T>
class node
{
public:
node<T> *next;
T data;
};
template<class T>
class queue
{
private:
node<T> *head,*tail;
public:
queue();
void enqueue(T &x);
void dequeue();
void display();
};
template<class T>
queue<T>::queue()
{
head=tail=NULL;
}
template<class T>
void queue<T>::enqueue(T &x)
{
node<T> *n=new node<T>;
n->data=x;
n->next=NULL;
if(tail==NULL)
{
head=tail=n;
return;
}
tail->next=n;
tail=n;
}
template<class T>
void queue<T>::dequeue()
{
if(head==NULL)
{
cout<<"EMPTY";
}
if(head==tail)
{
head=tail=NULL;
}
head=head->next;
}
template<class T>
void queue<T>::display()
{
if(head==NULL)
{
cout<<"Empty";
return;
}
cout<<"Queue elements are";
node<T> *temp=head;
while(temp!=NULL)
{
cout<<" "<<temp->data;
temp=temp->next;
}
}
main()
{
queue<int> q;
int choice,ele;
cout<<"Main Menu \n 1. Insert \n 2.Delete \n 3.Display \n 4.Exit \n Enter your choice \n";
cin>>choice;
do
{
switch(choice)
{
case 1:
{
cout<<"Enter Element to insert";
cin>>ele;
q.enqueue(ele);
break;
}
case 2:
{
q.dequeue();
break;
}
case 3:
{
q.display();
break;
}
case 4:
{
cout<<"End of program";
break;
}
}
}while(choice!=4);
}