队列的链式实现
队列的链式实现:
在这个队列里面:r 为低, f 为顶
//队列(链式) #include <iostream> using namespace std; typedef int DataType; struct QNode { DataType data; struct QNode *link; }; typedef struct QNode *PNode; //r为低 f为顶 struct LinkQueue { PNode f; PNode r; }; typedef struct LinkQueue * PLinkQueue; PLinkQueue createEmptyQueue() { PLinkQueue plqueue = (PLinkQueue) malloc (sizeof(struct LinkQueue)); if(plqueue != NULL) { plqueue ->f = NULL; plqueue ->r =NULL; } else printf("Out of space\n"); return plqueue; } int isEmptyQueue(PLinkQueue plqueue) { return (plqueue ->f == NULL); } void enQueue( PLinkQueue plqueue, DataType x) { PNode p = (PNode) malloc (sizeof(struct QNode)); if(p!= NULL) { p->data = x; p->link = NULL; if(plqueue ->f == NULL) plqueue->f = p; else plqueue ->r -> link = p; plqueue->r =p; } else printf("Out of space\n"); } void deQueue(PLinkQueue plqueue) { PNode p = (PNode) malloc (sizeof(struct QNode)); if(plqueue->f == NULL) printf("Empty Queue\n"); else { p = plqueue ->f; plqueue -> f = p ->link; free(p); } } DataType getFront(PLinkQueue plqueue) { if(plqueue ->f == NULL) printf("Empty Queue\n"); else return (plqueue ->f ->data); } int main() { PLinkQueue lqueue = createEmptyQueue(); cout<<"创建一个n元素的队列\n输入n"<<endl; int n,t; cin>>n; t = n; while(n) { int data; cin>>data; enQueue(lqueue,data); n--; } cout<<"取队头并出队"<<endl; while(t) { cout<<getFront(lqueue)<<" "; deQueue(lqueue); t--; } cout<<endl; system("pause"); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?