📄 duilie.cpp
字号:
#include<iostream.h>
struct QNode
{int data;
QNode *next;
};
struct LinkQueue
{QNode *front,*rear;
};
void endqueue(LinkQueue *Q)//将元素插入到队列的未尾
{ int x;
cout<<"请输入要加入的队列元素:"<<endl;cin>>x;
QNode *p;
p=new QNode;
p->data=x ; p->next=NULL ; /*形成新结点*/
Q->rear->next=p ; Q->rear=p ;
}
void front(LinkQueue *Q)
//输出队列的第一个元素
{ if (Q->front->next==NULL)cout<<"队列为空"<<endl;
else cout<<"第一个元素为:"<<Q->front->next->data<<endl;
}
/*void show(LinkQueue *Q)
{LinkQueue *p;
p=Q;
while(p->front!=NULL)
{cout<<p->front->data<<endl;
p->front=p->front->next;
}
delete p;
}*/
void delqueue(LinkQueue *Q)
{QNode *p;
if(Q->front==Q->rear)
cout<<"队列为空"<<endl;
else { p=Q->front->next ;
Q->front->next=p->next ;
if (p==Q->rear) Q->rear=Q->front ;
/*当队列只有一个结点时应防止丢失队尾指针*/
delete p;
}
}
void makenull(LinkQueue *Q)
{while(Q->front!=Q->rear)
delqueue(Q);
cout<<"队列已置空"<<endl;
}
void main()
{LinkQueue *Q ;
QNode *p ;
p=new QNode; //开辟头结点
p->next=NULL ;
Q=new LinkQueue; //开辟链队的指针结点,头结点不参与运算
Q->front=Q->rear=p;
char ans;
while(ans!='0')
{cout<<" 请选择操作 "<<endl;
cout<<"1.加入元素 2.输出队列的第一个元素 "<<endl;
cout<<"3.将队列置空 4.删除队列的第一个元素 "<<endl;
cout<<"0.退出 "<<endl;
cin>>ans;
switch(ans)
{
case '1':endqueue(Q);break;
case '2':front(Q);break;
case '3':makenull(Q);break;
case '4':delqueue(Q);break;
case '0':break;
default:cout<<"输入错,请重新输入:"<<endl;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -