当前位置: 首页 > news >正文

网站设计制作培训影视cms哪个好

网站设计制作培训,影视cms哪个好,app运营需要做哪些,网络推广哪家好有效果队列 目录 概念 实现方式 顺序队列 循环队列 队列的数组实现 用循环链表实现队列 STL 之 queue 实现队列 STL 之 dequeue 实现双端队列 概念 队列是一种特殊的线性表#xff0c;它只允许在表的前端#xff08;称为队头#xff0c;front#xff09;进行删除操作…队列 目录 概念 实现方式 顺序队列 循环队列 队列的数组实现 用循环链表实现队列 STL 之 queue 实现队列  STL 之 dequeue 实现双端队列  概念 队列是一种特殊的线性表它只允许在表的前端称为队头front进行删除操作——出队而在表的后端称为队尾rear进行插入操作——入队是一种操作受限的线性表。 最先进入队列的元素最先被删除是“先进先出”的线性表。 实现方式 数组链表C 中可以使用 STL 中的 queue 实现其中 STL 中还包括双端队列 dequeue 顺序队列 必须静态分配或者动态申请空间并设置两个指针管理一个是队头指针 front指向队头元素另一个是队尾指针 rear指向下一个入队元素的存储位置。 队空的判断条件是frontrear队满的条件为rearMAXQSIZE。 循环队列 为了使队列空间可以重复使用可以对循环队列进行改进无论是插入或者删除一旦 rear 指针或者 front 指针超出了所分配的队列空间就让它指向这篇连续空间的起始位置自己从 MAXQSIZE 增 1 变为 1可以用取余运算实现 (rear1)%MAXQSIZE、 (front1)%MAXQSIZE. 其中队空的判断条件为frontrear队满的条件为rear1%MAXQSIZEfront。 队列的数组实现 定义一个结构体实现队列 struct node {int* data;int front;int rear; }; 初始化队列将队头和队尾指针都赋为 1数组长度为 MAXQSIZE开辟一块空间为 MAXQSIZE-1 的数组 //为队列开辟空间并初始化也可以在结构体中定义int data[MAXQSIZE]) void InitQueue(struct node Q) {Q.rear 1;Q.front 1;Q.data (int*)malloc(MAXQSIZE1 * sizeof(int)); } 入队 //入队 int EnQueue(struct node Q,int y) {if (Q.rear ! MAXQSIZE) {Q.data[Q.rear] y;Q.rear;return 1;}return 0; } 出队 //出队 int DeQueue(struct node Q, int y) {if (Q.rear ! Q.front){y Q.data[Q.front];Q.front;return 1;}return 0; } 总代码为 //数组实现队列 #includestdio.h #includestdlib.h #define MAXQSIZE 100 int queue[MAXQSIZE]; struct node {int* data;int front;int rear; }; //为队列开辟空间并初始化也可以在结构体中定义int data[MAXQSIZE]) void InitQueue(struct node Q) {Q.rear 1;Q.front 1;Q.data (int*)malloc(MAXQSIZE1 * sizeof(int)); } //入队 int EnQueue(struct node Q,int y) {if (Q.rear ! MAXQSIZE) {Q.data[Q.rear] y;Q.rear;return 1;}return 0; } //出队 int DeQueue(struct node Q, int y) {if (Q.rear ! Q.front){y Q.data[Q.front];Q.front;return 1;}return 0; } int main() {int n;int x, y;struct node Q;InitQueue(Q);//以1开头为插入(插入操作输入两个数以0开头为删除printf(输入操作个数(以1开头为插入(插入操作输入两个数以0开头为删除)\n);scanf(%d, n);while (n--) {printf(输入操作);scanf(%d, x);if (x 1){scanf(%d, y);if (EnQueue(Q, y))printf(入队成功\n);elseprintf(入队失败\n);}else if (x 0){if (DeQueue(Q, y) 0)printf(出队失败\n);elseprintf(出队的元素为%d\n,y);}else{printf(输入正确的操作\n);n;}}return 0; } 用循环链表实现队列 不用循环时将初始化时的 Q-nextQ 删去。 以带头结点的循环链表表示队列并且只设一个指针指向队尾结点不设头指针。 定义一个结构体 struct node {int data;struct node* next; }; 入队 //入队 void EnQueue(struct node* Q, int y) {struct node* p;p (struct node*)malloc(sizeof(struct node));p-data y;p-next Q-next;Q-next p;Q p; } 出队 //出队 int DeQueue(struct node* Q, int y) {if (Q-next Q)return 0;struct node* p;p Q-next;y p-data;Q-next p-next;free(p);return 1; } 总代码 //以带头结点的循环链表表示队列 //并且只设一个指针指向队尾结点不设头指针。 #includestdio.h #includestdlib.h struct node {int data;struct node* next; }; //循环队列的初始化 void InitQueue(struct node* Q) {Q-next Q;//初始化循环队列 } //入队 void EnQueue(struct node* Q, int y) {struct node* p;p (struct node*)malloc(sizeof(struct node));p-data y;p-next Q-next;Q-next p;Q p; } //出队 int DeQueue(struct node* Q, int y) {if (Q-next Q)return 0;struct node* p;p Q-next;y p-data;Q-next p-next;free(p);return 1; } int main() {struct node* Q;Q (struct node*)malloc(sizeof(struct node));InitQueue(Q);printf(输入操作个数(以1开头为插入(插入操作输入两个数以0开头为删除)\n);int x, y, n;scanf(%d, n);while(n--){printf(输入操作);scanf(%d, x);if(x1){scanf(%d, y);EnQueue(Q, y);printf(入队成功\n);}else if(x0){if (DeQueue(Q, y) 1)printf(%d\n, y);elseprintf(出队失败\n);}}return 0; } STL 之 queue 实现队列  要加上头文件#includequeue 对应的函数 构造空队列 queueintq; 总代码  //用queue函数实现队列 #includeiostream #includequeue using namespace std; int main() {queueintq;int n;int x, y;printf(输入操作个数);scanf(%d, n);printf(以1开头为插入(插入操作输入两个数以0开头为删除\n);while (n--) {scanf(%d, x);if (x 1) {scanf(%d, y);q.push(y);}else if(x0){if (!q.empty()) {//判断队列不为空printf(%d\n, q.front());q.pop();}elseprintf(出队失败\n);}else{printf(输入正确的操作\n);n;}printf(队列中元素个数为%d\n, q.size());}return 0; } STL 之 dequeue 实现双端队列  //用dequeue实现双端队列 #includeiostream #includedeque using namespace std; struct node {int *data; }Q; int main() {dequeintq(10);dequeint::iterator idex;for (int i 0; i 10; i) {q[i] i;}for (int i 0; i 10; i) {printf(%d , q[i]);}printf(\n);//在头尾加入新元素printf(加入新元素后\n);q.push_back(100);//加入队尾q.push_front(10);//加入队头printf(输出deque的数据\n);for (idex q.begin(); idex ! q.end(); idex) {printf(%d , *idex);}printf(\n);//查找int x 5;idex find(q.begin(), q.end(), x);if (idex ! q.end())printf(找到%d元素\n,x);elseprintf(队列中没有%d元素\n,x);//在头尾删除数据q.pop_back();//删除队尾q.pop_front();//删除队头printf(输出deque的数据\n);for (idex q.begin(); idex ! q.end(); idex) {printf(%d , *idex);}return 0; }
http://www.w-s-a.com/news/132485/

相关文章:

  • 给装修公司做推广的网站wordpress站点的根目录
  • 怎么创建企业网站wordpress怎么做404页面跳转
  • 福建省住房和建设厅网站网站做著作权
  • 编程代码网站网站搭建的注意事项
  • 音乐网站排名公司如何做自己的网站
  • 网站设计模式三网合一网站源代码
  • 珠海市品牌网站建设哪家好宛城区网站制作
  • 网站维护工程师代写文章兼职
  • 贵州城乡和建设厅网站企业网站备案名称窍门
  • .cc后缀网站湛江霞山
  • 青岛制作网站软件ui设计培训哪里好
  • 网站建设的构思环保公司宣传册设计样本
  • 如何做微网站网站和网店的区别
  • 免费下载建设银行官方网站下载天河区做网站
  • 中文网站建设开发北京网站建设公司升上去
  • 邯郸网站设计 贝壳下拉服务器绑定网站打不开
  • 重庆网站建设帝玖科技手机网站建设价钱是多少
  • 广西建设厅网站行业网学新媒体运营要多少钱
  • 石家庄个人建站网站策划门户网什么意思
  • 沈阳市浑南区城乡建设局网站wordpress 批量打印
  • 网站建设都需学哪些天津网站建设交易
  • 公司网站空间家装室内设计
  • 一个考试网站怎么做品牌建设10阶梯
  • 网站建设网站设计广东双语网站建设多少钱
  • 临时手机号注册网站建筑效果图
  • wordpress网站是什么类似wordpress博客
  • 国际网站空间昆明做网站开发维护的公司
  • 建网站选号域名网站优化大赛
  • 师范街网站建设广告制作公司口号
  • 电子商务网站开发设计报告为什么wordpress主题中字体不统一