链队列
include <iostream>
using namespace std;
#define OK 1
#define ERROR 0
typedef int ElemType;
typedef struct QNode {
ElemType data;
struct QNode* Next;
}QNode,*QueuePtr;
typedef struct {
QueuePtr front;
QueuePtr rear;
}LinkQueue;
int InitQueue(LinkQueue& Q) {
Q.front = Q.rear = new QNode;
Q.front->Next = NULL;
return OK;
}
int EnQueue(LinkQueue& Q, ElemType e) {
QueuePtr p;
p = new QNode;
p->data = e;
p->Next = NULL;
Q.rear->Next = p;
Q.rear = p;
return OK;
}
int DeQueue(LinkQueue& Q, ElemType& e) {
if (Q.front == Q.rear) return ERROR;
QueuePtr p;
p = Q.front->Next;
e = p->data;
Q.front->Next = p->Next;
delete p;
return OK;
}
int GetHead(LinkQueue Q) {
if (Q.front != Q.rear)
return Q.front->Next->data;
else{
cout << "错误" << endl;
return ERROR;
}
}
int main()
{
cout << "0、退出程序" << endl;
cout << "1、队列入队" << endl;
cout << "2、队列出队" << endl;
cout << "3、取头元素" << endl;
cout << "---------------------------" << endl;
LinkQueue lq;
InitQueue(lq);
int num,n,status,elem,temp;
while (true) {
cout << "你的选择:" << endl;
cin >> num;
cout << "---------------------------" << endl;
switch (num)
{
case 1:
cout << "你想插入的数:";
cin >> n;
status = EnQueue(lq, n);
if (status == 1) {
cout << " 插入成功。" << endl;
cout << "---------------------------" << endl;
continue;
}
else {
cout << "操作失败!" << endl;
cout << "---------------------------" << endl;
continue;
}
case 2:
status = DeQueue(lq, temp);
if (status == 1) {
cout << "出队成功。"<< endl;
cout << "---------------------------" << endl;
continue;
}
else {
cout << "操作失败!" << endl;
cout << "---------------------------" << endl;
continue;
}
case 3:
elem = GetHead(lq);
if (elem) {
cout << "当前元素为" << elem << endl;
cout << "---------------------------" << endl;
continue;
}
else {
cout << "操作失败!" << endl;
cout << "---------------------------" << endl;
continue;
}
case 0:
break;
default:
cout << "输入错误!" << endl;
cout << "---------------------------" << endl;
continue;
}
break;
}
}
作者:qianyuzz
出处:https://www.cnblogs.com/qianyuzz/p/17059921.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)