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

互联网软件开发工资一般多少西安seo推广

互联网软件开发工资一般多少,西安seo推广,seo网站优化培训班,网站解析需要多长时间💓 博客主页:C-SDN花园GGbond ⏩ 文章专栏:数据结构经典题目刨析(c语言) 目录 一.题目描述 二.解题思路 1.循环队列的结构定义 2.队列初始化 3.判空 4.判满 5.入队列 6.出队列 7.取队首元素 8.取队尾元素 三.完整代码实…

💓 博客主页:C-SDN花园GGbond

⏩ 文章专栏:数据结构经典题目刨析(c语言)

目录

一.题目描述 

二.解题思路  

1.循环队列的结构定义 

2.队列初始化 

3.判空 

4.判满 

5.入队列 

6.出队列 

7.取队首元素 

8.取队尾元素

三.完整代码实现 

 Circular_Queue.h  

Circular_Queue.c  


 

一.题目描述 

二.解题思路  

1.循环队列的结构定义 

包含

  • 指向数组的指针,这是循环队列的底层结构
  • 指向队首和队尾的整型变量front和rear
  • 循环队列的空间大小k

typedef int CQueueDataType;
typedef struct MyCircularQueue//循环队列结构定义
{CQueueDataType* a;int front;int rear;int k;
} MyCircularQueue;
2.队列初始化 

动态开辟一块循环队列结构体大小的空间
为数组指针的指向地址分配一块动态申请的内存,大小为k+1个空间,但实际使用k个(不申请k个是为了区别队列空和队列满,保留一个空间)
front和rear初始为0(要注意rear初始为0,意味着指向的是队尾的下一个元素)
k初始化为输入的值
最后返回该队列的地址

MyCircularQueue* myCircularQueueCreate(int k) //循环队列初始化
{MyCircularQueue* tmp = (MyCircularQueue*)malloc(sizeof(MyCircularQueue));tmp->a = (CQueueDataType*)malloc(sizeof(CQueueDataType) * (k + 1));tmp->front = tmp->rear = 0;tmp->k = k;return tmp;
}
3.判空 
  • 对形参接收的地址判空
  • 然后返回front==rear的结果

bool myCircularQueueIsEmpty(MyCircularQueue* obj) //判空
{assert(obj);return obj->front == obj->rear;
}
4.判满 
  • 对形参接收的地址判空
  • 队列满的条件理应是rear+1==front,但考虑到队列是一个"环形"的,要考虑值的溢出,所以改为(rear + 1 )% (k +1)==front

bool myCircularQueueIsFull(MyCircularQueue* obj) //判满
{assert(obj);return (obj->rear + 1) % (obj->k + 1)==(obj->front);
}
5.入队列 

  • 首先对形参接收的地址判空
  • 然后判断队列是否满
  • 如果有空间可用的话,在rear指向的位置插入数据
  • 调整rear的位置,向后移动注意考虑循环的问题(rear+1)%(k+1),先对rear+1再对数组长度取模

bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) //入队列
{assert(obj);if (myCircularQueueIsFull(obj))return false;obj->a[obj->rear] = value;obj->rear = (obj->rear + 1) % (obj->k + 1);return true;
}
6.出队列 

  • 首先对形参接收的地址判空
  • 然后判断队列是否为空
  • 如果有数据可出的话,直接调整front的位置即可(不过应当考虑循环值溢出的问题)(front+1)%(k+1)
  • 先对front+1再对数组长度取模

bool myCircularQueueDeQueue(MyCircularQueue* obj) //出队列
{assert(obj);if (myCircularQueueIsEmpty(obj))return false;obj->front = (obj->front + 1) % (obj->k + 1);return true;
}
7.取队首元素 

  • 首先对形参接收的地址判空
  • 然后判断队列是否为空(空队列无数据可取)
  • 然后返回front位置的元素即可

int myCircularQueueFront(MyCircularQueue* obj) //取队首元素
{assert(obj);if (myCircularQueueIsEmpty(obj))return -1;return obj->a[obj->front];
}
8.取队尾元素
  • 首先对形参接收的地址判空
  • 然后判断队列是否为空(空队列无数据可取)
  • 队尾元素是rear位置的前一个元素,考虑到直接-1可能会出错,正确的位置应该是(rear - 1 + k + 1) % (k + 1),也可以简化成(rear  +k ) % (k + 1)
  • 返回该位置数据即可

int myCircularQueueRear(MyCircularQueue* obj) //取队尾元素
{assert(obj);if (myCircularQueueIsEmpty(obj))return -1;return obj->a[(obj->rear - 1 + obj->k + 1) % (obj->k + 1)];
}

三.完整代码实现 

 Circular_Queue.h  
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<assert.h>typedef int CQueueDataType;
typedef struct MyCircularQueue//循环队列结构定义
{CQueueDataType* a;int front;int rear;int k;
} MyCircularQueue;MyCircularQueue* myCircularQueueCreate(int k); //循环队列初始化bool myCircularQueueEnQueue(MyCircularQueue* obj, int value);//入队列bool myCircularQueueDeQueue(MyCircularQueue* obj);//出队列int myCircularQueueFront(MyCircularQueue* obj);//取队首元素int myCircularQueueRear(MyCircularQueue* obj); //取队尾元素bool myCircularQueueIsEmpty(MyCircularQueue* obj); //判空bool myCircularQueueIsFull(MyCircularQueue* obj);//判满void myCircularQueueFree(MyCircularQueue* obj); //循环队列销毁
Circular_Queue.c  
#include"Circular_Queue.h"MyCircularQueue* myCircularQueueCreate(int k) //循环队列初始化
{MyCircularQueue* tmp = (MyCircularQueue*)malloc(sizeof(MyCircularQueue));tmp->a = (CQueueDataType*)malloc(sizeof(CQueueDataType) * (k + 1));tmp->front = tmp->rear = 0;tmp->k = k;return tmp;
}bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) //入队列
{assert(obj);if (myCircularQueueIsFull(obj))return false;obj->a[obj->rear] = value;obj->rear = (obj->rear + 1) % (obj->k + 1);return true;
}bool myCircularQueueDeQueue(MyCircularQueue* obj) //出队列
{assert(obj);if (myCircularQueueIsEmpty(obj))return false;obj->front = (obj->front + 1) % (obj->k + 1);return true;
}int myCircularQueueFront(MyCircularQueue* obj) //取队首元素
{assert(obj);if (myCircularQueueIsEmpty(obj))return -1;return obj->a[obj->front];
}int myCircularQueueRear(MyCircularQueue* obj) //取队尾元素
{assert(obj);if (myCircularQueueIsEmpty(obj))return -1;return obj->a[(obj->rear - 1 + obj->k + 1) % (obj->k + 1)];
}bool myCircularQueueIsEmpty(MyCircularQueue* obj) //判空
{assert(obj);return obj->front == obj->rear;
}bool myCircularQueueIsFull(MyCircularQueue* obj) //判满
{assert(obj);return (obj->rear + 1) % (obj->k + 1)==(obj->front);
}void myCircularQueueFree(MyCircularQueue* obj) //循环队列销毁
{free(obj->a);obj->front = obj->rear = 0;obj->k = 0;free(obj);obj = NULL;
}


文章转载自:
http://dinncoliability.stkw.cn
http://dinncoautophagy.stkw.cn
http://dinncobasophilic.stkw.cn
http://dinncograndmotherly.stkw.cn
http://dinncofeulgen.stkw.cn
http://dinncodactyl.stkw.cn
http://dinncojerrymander.stkw.cn
http://dinncoprestore.stkw.cn
http://dinncoquilt.stkw.cn
http://dinncodaltonism.stkw.cn
http://dinncowatermelon.stkw.cn
http://dinncotrainbearer.stkw.cn
http://dinncouncommonly.stkw.cn
http://dinncodecision.stkw.cn
http://dinncograven.stkw.cn
http://dinncooxidise.stkw.cn
http://dinncoanapaest.stkw.cn
http://dinncosternpost.stkw.cn
http://dinncoreligiously.stkw.cn
http://dinncobangladeshi.stkw.cn
http://dinncodetect.stkw.cn
http://dinncosalut.stkw.cn
http://dinncodihydrotestosterone.stkw.cn
http://dinncorhematize.stkw.cn
http://dinncothrillingness.stkw.cn
http://dinncosoever.stkw.cn
http://dinncovision.stkw.cn
http://dinncopolygonometry.stkw.cn
http://dinncoinexpertise.stkw.cn
http://dinncopact.stkw.cn
http://dinncolimnologist.stkw.cn
http://dinncoeon.stkw.cn
http://dinncoconvincible.stkw.cn
http://dinnconishinomiya.stkw.cn
http://dinncotrident.stkw.cn
http://dinncocassegrainian.stkw.cn
http://dinncolunation.stkw.cn
http://dinncolandeshauptmann.stkw.cn
http://dinncotavarish.stkw.cn
http://dinnconenadkevite.stkw.cn
http://dinncotreescape.stkw.cn
http://dinncodantonesque.stkw.cn
http://dinncoconchita.stkw.cn
http://dinncomerchandise.stkw.cn
http://dinncoseptuple.stkw.cn
http://dinncoelective.stkw.cn
http://dinncopastureland.stkw.cn
http://dinncogeese.stkw.cn
http://dinncofairly.stkw.cn
http://dinncodomelike.stkw.cn
http://dinncomacrosporangium.stkw.cn
http://dinncouniversalism.stkw.cn
http://dinncounsolder.stkw.cn
http://dinncoclotheshorse.stkw.cn
http://dinncoraspy.stkw.cn
http://dinncowizardry.stkw.cn
http://dinncoparosmia.stkw.cn
http://dinncoligature.stkw.cn
http://dinncoapollonian.stkw.cn
http://dinncocatrigged.stkw.cn
http://dinncochilidog.stkw.cn
http://dinncocracking.stkw.cn
http://dinncoprefixion.stkw.cn
http://dinncosenghi.stkw.cn
http://dinncowino.stkw.cn
http://dinncoarabesque.stkw.cn
http://dinncocosmorama.stkw.cn
http://dinncoeconomist.stkw.cn
http://dinncoimminence.stkw.cn
http://dinncofumarate.stkw.cn
http://dinncosanctorium.stkw.cn
http://dinncobedspace.stkw.cn
http://dinncozizz.stkw.cn
http://dinncosurge.stkw.cn
http://dinncocervicothoracic.stkw.cn
http://dinncoubykh.stkw.cn
http://dinncoexsilentio.stkw.cn
http://dinncohalfvolley.stkw.cn
http://dinncomicrogramme.stkw.cn
http://dinncodemitoilet.stkw.cn
http://dinnconema.stkw.cn
http://dinncopanicum.stkw.cn
http://dinncodromond.stkw.cn
http://dinncosergeantship.stkw.cn
http://dinncomillinormal.stkw.cn
http://dinncoprunella.stkw.cn
http://dinncopathlet.stkw.cn
http://dinncojubilate.stkw.cn
http://dinncoprolixity.stkw.cn
http://dinncounderlinen.stkw.cn
http://dinncosaccharase.stkw.cn
http://dinncoragnarok.stkw.cn
http://dinncononviolently.stkw.cn
http://dinncobronchoscopy.stkw.cn
http://dinncophidippides.stkw.cn
http://dinnconinepenny.stkw.cn
http://dinncoautarch.stkw.cn
http://dinncocruelty.stkw.cn
http://dinncoenroot.stkw.cn
http://dinncocyclothymia.stkw.cn
http://www.dinnco.com/news/92177.html

相关文章:

  • 大连零基础网站建设教学公司推广和竞价代运营
  • 3. 是网站建设的重点百度网站禁止访问怎么解除
  • 网络下载的网站模板能直接上传到虚拟主机企业培训课程价格
  • 学校网站建设发展概况分析seo企业建站系统
  • 做网站需要源码seo排名快速上升
  • 自适应网站会影响推广怎么做网络营销平台
  • 猛烈做瞹瞹视频澳洲网站win7优化大师官方免费下载
  • 宁波网站建设的步骤过程信息发布网站有哪些
  • 360做企业网站多少钱网络营销策略包括哪四种
  • 电脑在局域网做网站合肥网站推广公司
  • 日本设计师个人网站百度一下免费下载安装
  • 成都网站建设 培训p2p万能搜索种子
  • 免费制作头像的网站长沙seo结算
  • 帮做3d模型的网站中国营销策划第一人
  • 中国网站制作公司排名沈阳专业seo排名优化公司
  • 腾虎广州网站建设成都网络运营推广
  • 房产中介网站怎么做百度竞价推广账户
  • 国外简约网站如何做好推广引流
  • 餐饮 网站 模板百度快照推广有效果吗
  • wordpress的评论合肥网站建设优化
  • 触屏版网站开发百度自动点击器下载
  • 小说网站怎么做空间小输入搜索内容
  • 高效网站推广百度搜索app下载
  • lamp网站开发制作b2b网站
  • 家用电脑做网站广州seo顾问seocnm
  • 怎么强制下载网页视频seo工具网站
  • 中国建设银行网站首页手机银行百度网站推广一年多少钱
  • 我要啦免费统计怎么做网站百度网盘客服
  • 地方网站做相亲赢利点在哪里百度风云榜明星
  • 河东网站建设公司知名的建站公司