(1)创建队列,将asdfghjkl依次入队。代码及注释
(2)将队列asdfghjkl依次出队。代码及注释
(3)编程实现创建一个最多6个元素的循环队列,将ABCDEF依次入队,判断循环队列是否队满。代码及注释
用c++语言实现队列的创建
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- qfl_sdu 2022-05-29 17:53关注
(1)和(2)是一个代码,(3)在(1)的基础上有一些修改。
(1)和(2)运行结果及代码:#include <iostream> using namespace std; #define MAXLEN (int)20 typedef char elementtype; //队列先进先出 typedef struct { elementtype* element; int cur; int tail; }SQueue; //初始化栈 void InitStack_sq(SQueue &s) { int i=0; s.element = new elementtype[MAXLEN]; s.cur = 0; s.tail = 0; } //判断队列是否为空 int isEmpty_sq(SQueue s) { if(s.tail ==0 || s.cur == s.tail) return 1; else return 0; } //判断是否队满 int isFull_sq(SQueue s) { if(s.tail == MAXLEN) return 1; else return 0; } //取队列元素 int GetTop_sq(SQueue &s,elementtype& x) { if(isEmpty_sq(s)) return 0; x = s.element[s.cur]; return 1; } //入队 int Push_sq(SQueue &s,elementtype x) { if(isFull_sq(s)) return 0; //插入队列 s.element[s.tail] = x; s.tail++; return 1; } //出队 int Pop_sq(SQueue& s,elementtype& x) { if(isEmpty_sq(s)) return 0; x = s.element[s.cur]; s.cur++; return 1; } //遍历队列元素 void showAll(SQueue s) { cout <<"队列元素:"; for(int i=s.cur;i<s.tail;i++) { cout << (char)s.element[i]; } cout << endl; } int main() { SQueue s; InitStack_sq(s); //初始化队列 //asdfghjkl依次入队 Push_sq(s,'a'); Push_sq(s,'s'); Push_sq(s,'d'); Push_sq(s,'f'); Push_sq(s,'g'); Push_sq(s,'h'); Push_sq(s,'k'); Push_sq(s,'l'); //显示队列元素 showAll(s); elementtype x; //依次出队 cout <<"出队:"; while(!isEmpty_sq(s)) { Pop_sq(s,x); cout <<(char)x; } cout << endl; return 0; }
(3)运行结果:
代码:
#include <iostream> using namespace std; #define MAXLEN (int)6 typedef char elementtype; //队列先进先出 typedef struct { elementtype* element; int cur; int tail; }SQueue; //初始化栈 void InitStack_sq(SQueue &s) { int i=0; s.element = new elementtype[MAXLEN]; for(;i<MAXLEN;i++) s.element[i] = 0; s.cur = 0; s.tail = 0; } //判断队列是否为空 int isEmpty_sq(SQueue s) { if(s.tail ==0 || s.cur == s.tail) return 1; else return 0; } //判断是否队满 int isFull_sq(SQueue s) { if(s.tail == MAXLEN) return 1; else return 0; } //取队列元素 int GetTop_sq(SQueue &s,elementtype& x) { if(isEmpty_sq(s)) return 0; x = s.element[s.cur]; return 1; } //入队 int Push_sq(SQueue &s,elementtype x) { if(isFull_sq(s)) s.tail = 0; //插入队列 s.element[s.tail] = x; s.tail++; return 1; } //出队 int Pop_sq(SQueue& s,elementtype& x) { if(isEmpty_sq(s)) return 0; x = s.element[s.cur]; s.cur++; return 1; } //遍历队列元素 void showAll(SQueue s) { cout <<"循环队列元素:"; for(int i=0;i<MAXLEN;i++) { if(s.element[i] != '\0') cout << (char)s.element[i]; } cout << endl; } int main() { SQueue s; InitStack_sq(s); //初始化队列 //ABCDEF入队 Push_sq(s,'A'); Push_sq(s,'B'); Push_sq(s,'C'); Push_sq(s,'D'); Push_sq(s,'E'); Push_sq(s,'F'); //显示队列元素 showAll(s); //判断是否队满 if(isFull_sq(s)) cout <<"此时队满"<<endl; else cout <<"队列未满"<<endl; return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
- ¥15 目详情-五一模拟赛详情页
- ¥15 有了解d3和topogram.js库的吗?有偿请教
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
- ¥15 关于#Java#的问题,如何解决?
- ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
- ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
- ¥15 cmd cl 0x000007b