链式的队列的创建、插入、删除、遍历、取队首元素
来源:互联网 发布:安畅网络水军平台 编辑:程序博客网 时间:2024/04/30 11:04
链式的队列的创建、插入、删除、遍历、取队首元素上午操作。
我们今天将的方式是比较简单的方式,没有动态的分配空间。
#include <stdio.h>typedef struct{ int queue[100]; int front; int rear;} sqqueue;//创建一个空的队列int initqueue(sqqueue *sq){ if(sq!=NULL) { sq->front=sq->rear=0; return 1; } return 0;} //入队(把新元素加到队尾) int enqueue(sqqueue *sq,int d) { // if(sq==NULL) { printf("队列未创建,入队失败!\n"); return 0; } if(sq->rear>=100) { printf("队列已满,入队失败!\n"); return 0; } else { sq->queue[sq->rear]=d; sq->rear=sq->rear+1; printf("入栈的元素是%d\n",d); return 1; }}int outqueue(sqqueue *sq,int d) { if(sq==NULL) { printf("队列未创建,出队失败!\n"); return 0; } if(sq->front==sq->rear) { printf("队列为空,出队失败!\n"); return 0; } else { d=sq->queue[sq->front]; sq->front++; printf("出栈的元素是%d\n",d); return 1; } }int traverseQueue(sqqueue *sq) { int d; if(sq==NULL) { printf("队列未创建,遍历失败!\n"); return 0; } if(sq->front==sq->rear) { printf("队列为空,遍历失败!\n"); return 0; } else { int i=sq->front; while(i!=sq->rear) { d=sq->queue[i]; printf("%d->",d); i++; } return 1; }}int getHead(sqqueue *sq,int *d){ if(sq==NULL) { printf("队列未创建,遍历失败!\n"); return 0; } if(sq->front==sq->rear) { printf("队列为空,遍历失败!\n"); return 0; } *d=sq->queue[sq->front]; printf("%d\n",*d); printf("取队首元素成功!\n"); return 1;}void main(){ sqqueue sq; int choice,data,d; if(initqueue(&sq)==1) printf("队列创建成功!\n"); else printf("队列创建失败!\n"); while(1) { printf("-----------------------------------------\n"); printf(" 1、入栈\n"); printf(" 2、出栈\n"); printf(" 3、遍历\n"); printf(" 4、取队首元素\n"); printf(" 5、退出\n"); printf("-----------------------------------------\n"); printf("请输入你的选择:\n"); scanf("%d",&choice); switch(choice) { case 1: printf("请输入入栈元素:\n"); scanf("%d",&data); if(enqueue(&sq,data)) { printf("%d入栈成功!\n",data); } break; case 2: if(outqueue(&sq,d)) printf("出栈成功!\n"); break; case 3: if(traverseQueue(&sq)) printf("遍历成功!\n"); break; case 4: getHead(&sq,&d); break; case 5: return 0; } }}
0 0
- 链式的队列的创建、插入、删除、遍历、取队首元素
- 头插法和尾插法创建链式循序表 遍历、插入、删除、查找元素等操作
- 链式队列的创建
- 双向队列元素的插入与删除
- 双向队列元素的插入与删除
- 二叉树的链式实现(插入,查找,遍历,删除)
- 元素的创建,插入,替换和删除
- 链式队列插入元素实现
- 链式队列元素删除实现
- 关于二叉树的前序遍历、中序遍历、删除元素、插入元素
- 链式单链表的插入与删除...
- 链式线性表的插入与删除
- 单链表的创建、遍历、插入、删除、查找、逆转
- 二叉搜索树的创建、遍历、插入、删除(C++版本)
- 03链表的创建、插入、删除、遍历、排序
- 二叉树的创建,遍历,查找,删除,插入,修改
- C++单链表的操作(创建,删除,打印,遍历,插入)
- 顺序表的创建、遍历、插入、删除等操作demo
- 1029: [JSOI2007]建筑抢修
- MFC程序重启
- IP TCP以及HTTP报文gesh
- 保存bitmap为文件的方法
- linux 进程总结
- 链式的队列的创建、插入、删除、遍历、取队首元素
- [Git] Common Usage
- WindowManager悬浮框1
- An internal error occurred during:launching on Tomcat. java.lang.NullPointerException
- Lucene用法10个小结
- 221. Maximal Square
- 关于新浪微博授权错误:文件不存在c8998
- 最长无重复字符子串长度_M
- cartogapher 源码分析 (transform)