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

青海省建设网站价格低毕业设计代做网站价格

青海省建设网站价格低,毕业设计代做网站价格,wordpress付费会员才能看到内容,wordpress 仿百度文库一.队列的基本概念队列的定义队列#xff08;queue#xff09;是只允许在一端进行插入操作#xff0c;而在另一端进行删除操作的线性表。队列是一种先进先出#xff08;First In First Out#xff09;的线性表#xff0c;简称FIFO。允许插入的一端称为队尾#xff0c;允…一.队列的基本概念队列的定义队列queue是只允许在一端进行插入操作而在另一端进行删除操作的线性表。队列是一种先进先出First In First Out的线性表简称FIFO。允许插入的一端称为队尾允许删除的一端称为队头。队头Front允许删除的一端又称队首。队尾Rear允许插入的一端。空队列不包含任何元素的空表。2.队列的常见基本操作// 初始化队列 void QueueInit(Queue* q); // 队尾入队列 void QueuePush(Queue* q, QDataType data); // 队头出队列 void QueuePop(Queue* q); // 获取队列头部元素 QDataType QueueFront(Queue* q); // 获取队列队尾元素 QDataType QueueBack(Queue* q); // 获取队列中有效元素个数 int QueueSize(Queue* q); // 检测队列是否为空如果为空返回非零结果如果非空返回0 int QueueEmpty(Queue* q); // 销毁队列 void QueueDestroy(Queue* q);一.队列设计1.队列的顺序存储类型#define MAXSIZE 50 //定义队列中元素的最大个数 typedef struct{dataType a[MAXSIZE]; //存放队列元素int front,rear; }SeqQueue;初始状态队空条件Q-front Q-rear 0。进队操作队不满时先送值到队尾元素再将队尾指针加1。出队操作队不空时先取队头元素值再将队头指针加1。设计一个链式的队列2.队列的链式存储类型typedef int QDataType; typedef struct QueueNode {QDataType data;struct QueueNode* next; }QNode;typedef struct Queue {QNode* head;QNode* tail;int size; }Queue;queue.h#pragma once #include stdbool.h #include stdio.h #include assert.h #include stdlib.htypedef int QDataType; typedef struct QueueNode {QDataType data;struct QueueNode* next; }QNode;typedef struct Queue {QNode* head;QNode* tail;int size; }Queue;void QueueInit(Queue* pq); void QueueDestroy(Queue* pq); void QueuePush(Queue* pq, QDataType x); void QueuePop(Queue* pq); QDataType QueueFront(Queue* pq); QDataType QueueBack(Queue* pq); bool QueueEmpty(Queue* pq); int QueueSize(Queue* pq); queue.c初始化队列void QueueInit(Queue* pq) {assert(pq);pq-head NULL;pq-tail NULL;pq-size 0; }判断是否栈空bool QueueEmpty(Queue* pq) {assert(pq);return pq-head NULL pq-tail NULL; } 入栈void QueuePush(Queue* pq, QDataType x) {assert(pq);QNode* newnode (QNode*)malloc(sizeof(QNode));if (newnode NULL){perror(malloc fail);exit(-1);}newnode-data x;newnode-next NULL;if (pq-tail NULL){pq-head pq-tail newnode;}else{pq-tail-next newnode;pq-tail newnode;}pq-size; } 出栈void QueuePop(Queue* pq) {assert(pq);assert(!QueueEmpty(pq));if (pq-head-next NULL){free(pq-head);pq-head pq-tail NULL;}else{QNode* del pq-head;pq-head pq-head-next;free(del);}pq-size--; } 获取队首元素/获取队尾元素QDataType QueueFront(Queue* pq) {assert(pq);assert(!QueueEmpty(pq));return pq-head-data; }QDataType QueueBack(Queue* pq) {assert(pq);assert(!QueueEmpty(pq));return pq-tail-data; }获取队列中元素的个数int QueueSize(Queue* pq) {assert(pq);return pq-size; }销毁队列void QueueDestroy(Queue* pq) {assert(pq);QNode* cur pq-head;while (cur){QNode* del cur;cur cur-next;free(del);//del NULL;}pq-head pq-tail NULL;pq-size 0; }二.循环队列解决假溢出的方法就是后面满了就再从头开始也就是头尾相接的循环。我们把队列的这种头尾相接的顺序存储结构称为循环队列。当队首指针Q-front MAXSIZE-1后再前进一个位置就自动到0这可以利用除法取余运算%来实现。初始时Q-front Q-rear0。队首指针进1Q-front (Q-front 1) % MAXSIZE。队尾指针进1Q-rear (Q-rear 1) % MAXSIZE。队列长度(Q-rear - Q-front MAXSIZE) % MAXSIZE。但是这种把循环队列存满数据的方式会让我们不能通过Q-front Q-rear来具体判断是否是队满还是队空如图1牺牲一个单元来区分队空和队满入队时少用一个队列单元这是种较为普遍的做法约定以“队头指针在队尾指针的下一位置作为队满的标志”如图 队满条件 (Q-rear 1)%Maxsize Q-front队空条件仍 Q-front Q-rear队列中元素的个数 (Q-rear - Q -front Maxsize)% Maxsize2类型中增设表示元素个数的数据成员。这样队空的条件为 Q-size O 队满的条件为 Q-size Maxsize 。这两种情况都有 Q-front Q-rear3类型中增设tag 数据成员以区分是队满还是队空。tag 等于0时若因删除导致 Q-front Q-rear 则为队空tag 等于 1 时若因插入导致 Q -front Q-rear 则为队满。下面针对第一种方法来设计一个循环顺序队列三.双端队列1、定义双端队列是指允许两端都可以进行入队和出队操作的队列如下图所示。其元素的逻辑结构仍是线性结构。将队列的两端分别称为前端和后端两端都可以入队和出队。在双端队列进队时前端进的元素排列在队列中后端进的元素的前面后端进的元素排列在队列中前端进的元素的后面。在双端队列出队时无论是前端还是后端出队先出的元素排列在后出的元素的前面。2、特殊的双端队列在实际使用中根据使用场景的不同存在某些特殊的双端队列。输出受限的双端队列允许在一端进行插入和删除 但在另一端只允许插入的双端队列称为输出受限的双端队列如下图所示。输入受限的双端队列允许在一端进行插入和删除但在另一端只允许删除的双端队列称为输入受限的双端队列如下图所示。若限定双端队列从某个端点插入的元素只能从该端点删除则该双端队列就蜕变为两个栈底相邻接的栈。
http://www.hkea.cn/news/14448252/

相关文章:

  • 北京企业网站建设哪家好忻州市城乡建设局网站
  • 闭站保护期间网站能够打开吗百度首页排名怎么做到
  • 网站开发支付功能深圳罗湖区网站
  • 建筑设计网站大全网站做网站开发公司电话
  • 宁波网站建设公司哪家好学编程的人以后都干嘛呢
  • 杭州雄飞网站建设网络公司正在建设中网站
  • 查公司查企业用什么网站杭州seo博客有哪些
  • 网站 建设 汇报wordpress 插件 pdf
  • 橱柜企业网站模板山西做网站费用
  • 网站网业设计wordpress增加文章类型
  • 自动发货网站建设成品网站w灬源码1688网页版
  • 做泵阀生意到哪个网站淘宝客手机网站开发
  • 美橙网站产品详情做旅游网站的需求分析
  • 网站建设的产品类型是什么dede 网站内页标题修改
  • dnf做任务解制裁的网站普宁市建设局网站
  • 科技创新的重要性和意义广州seo优化效果
  • 化妆品网站栏目设计推广网站的方法有搜索引擎
  • 企业内部网站开发付公司网站建设费用会计分录
  • 广东网站设计服务商wordpress为用户添加积分
  • 潮州网站制作怎样注册自己的网址
  • 做后台系统的网站可以帮忙做网站做公司
  • 企业门户网站的主要技术指标360建筑网一级消防工程师
  • 网站开发文档管理工具电子商务网站建设的重要行
  • 科技加盟网站建设wordpress花生壳lamp
  • 哪个网站做二手车抵押网络营销常用工具有哪些?
  • asp.net网站安装教程游戏开发需要具备哪些技术
  • 哪些网站做免费送东西的广告6有梦商城公司网站
  • 企业应该如何建设自己的网站wordpress附件页面
  • 网站维护和推广基础建设图片
  • 网站建设nayuwang网站怎么更换页面图片