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

可以用自己的电脑做网站主机厦门seo怎么做

可以用自己的电脑做网站主机,厦门seo怎么做,体育彩票网站开发该做哪些步骤,独立网站b2c文章目录 1.循环队列的定义 2.循环队列的判空判满 3.创建队列并初始化 4.入队和出队 5. 返回队尾队首元素 6.释放循环队列 1.循环队列的定义 定义:存储队列元素的表从逻辑上被视为一个环。 我们此次实现的循环队列,采用顺序表 typedef struct {int…

   文章目录

1.循环队列的定义

2.循环队列的判空判满

3.创建队列并初始化

4.入队和出队

5. 返回队尾队首元素

6.释放循环队列


1.循环队列的定义

定义:存储队列元素的表从逻辑上被视为一个环。

       

我们此次实现的循环队列,采用顺序表

typedef struct {int*a;int front;int rear;int k;} MyCircularQueue;

本质上是一个出入受限的顺序表,那我们是怎么实现他的环状结构的呢?毕竟顺序表是一个线性的结构而不是环状的。

答  他用取模运算刚好在存储空间上变成了“环状”。

例如:我们要走一个环状顺序表

如果我们将rear=1;front=2在逻辑上我们可以正常移动,但其实我们物理存储上的指针已经溢出了,所以我们刚好可以取模来控制指针的移动。

如果我们尾指针前进一步就可以(Q.rear+1)% k,刚好可以到达front的位置。

2.循环队列的判空判满

如图我们可以看到,此时rear==front既可以是判空的条件,也可以是判满的条件,那我们应该怎么区分呢?有三种方法://这里的指针变量会和题目中的不太一样,但是判断逻辑相同

1.牺牲一个单元来进行区分

队满:(Q.rear+1)%MaxSize ==Q.front;

队空:   Q.front==Q.rear

2.设置一个Size表示队列元素长度来判断。

队满:Size==MaxSize;

队空:Size==0

3.设置一个 tag标记

tag==0&& Q.front==Q.rear,队空;

tag==1&& Q.front==Q.rear,队满。

  • isEmpty(): 检查循环队列是否为空。
  • isFull(): 检查循环队列是否已满。

bool myCircularQueueIsEmpty(MyCircularQueue* obj) {assert(obj);if(obj->rear==obj->front ){return  true;}return false ;
}bool myCircularQueueIsFull(MyCircularQueue* obj) {assert(obj);if((obj->rear+1)%(obj->k+1)==obj->front ){return  true;}return false ;
}

3.创建队列并初始化

MyCircularQueue(k): 构造器,设置队列长度为 k 

MyCircularQueue* myCircularQueueCreate(int k)
{MyCircularQueue*obj=(MyCircularQueue*)malloc(sizeof(MyCircularQueue));//创建一个循环的队列结构体指针节点obj->a=(int*)malloc(sizeof(int)*(k+1)) ;//队列长度为k,但是要多一个空间用来判断空还是满obj->front=obj->rear=0;obj->k=k;return obj;
}

    队列长度为k,但是要多一个空间用来判断空还是满 ,所以我们用的是第一种判空判满策略,牺牲一个存储空间

4.入队和出队

入队操作:    obj->a[obj->rear]=value;
                    obj->rear=(obj->rear+1)%(obj->k+1);//  先赋值再移动指针

出队操作:   obj->front=(obj->front+1)%(obj->k+1);// 直接移动指针

  • enQueue(value): 向循环队列插入一个元素。如果成功插入则返回真。
  • deQueue(): 从循环队列中删除一个元素。如果成功删除则返回真。
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;
}

5. 返回队尾队首元素

  • Front: 从队首获取元素。如果队列为空,返回 -1 。
  • Rear: 获取队尾元素。如果队列为空,返回 -1 。
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;}else{int rear=obj->rear==0 ? obj->k : obj->rear-1;return obj->a[rear];  }
}

int rear=obj->rear==0 ? obj->k : obj->rear-1;  由于队尾后面还有一个用于判空判满的空间,如果rear刚好指向这片空间,他实际上是指向的真正的队尾下标为k;如果不为0说明他指向的空间为正常的前驱结点。

 6.释放循环队列

 切记:  先释放结构体指针指向的创建的队列所在的空间,再去释放结构体指针的空间。

void myCircularQueueFree(MyCircularQueue* obj) {free(obj->a);free(obj);
}

文章转载自:
http://microcard.bbrf.cn
http://malaguena.bbrf.cn
http://locked.bbrf.cn
http://hypnosophist.bbrf.cn
http://indoor.bbrf.cn
http://intimidatory.bbrf.cn
http://unvaried.bbrf.cn
http://damageable.bbrf.cn
http://persephone.bbrf.cn
http://gynander.bbrf.cn
http://calorifier.bbrf.cn
http://vitriform.bbrf.cn
http://lecithality.bbrf.cn
http://coiffure.bbrf.cn
http://rap.bbrf.cn
http://foresaw.bbrf.cn
http://mischmetall.bbrf.cn
http://diapente.bbrf.cn
http://antiozonant.bbrf.cn
http://kathi.bbrf.cn
http://heartfelt.bbrf.cn
http://bedell.bbrf.cn
http://transcurrence.bbrf.cn
http://entoplastron.bbrf.cn
http://jackassery.bbrf.cn
http://groundwater.bbrf.cn
http://quintal.bbrf.cn
http://sextyping.bbrf.cn
http://earthpea.bbrf.cn
http://acuminous.bbrf.cn
http://submersible.bbrf.cn
http://mirrnyong.bbrf.cn
http://sculler.bbrf.cn
http://uniquely.bbrf.cn
http://boxty.bbrf.cn
http://samisen.bbrf.cn
http://minever.bbrf.cn
http://incommunicability.bbrf.cn
http://phyllotactical.bbrf.cn
http://gesticular.bbrf.cn
http://tigerflower.bbrf.cn
http://misunderstand.bbrf.cn
http://ruffianly.bbrf.cn
http://chocolaty.bbrf.cn
http://barranca.bbrf.cn
http://phenylene.bbrf.cn
http://msfm.bbrf.cn
http://clime.bbrf.cn
http://crosse.bbrf.cn
http://postremogeniture.bbrf.cn
http://tie.bbrf.cn
http://nosography.bbrf.cn
http://bituminise.bbrf.cn
http://evzone.bbrf.cn
http://hedger.bbrf.cn
http://catatonic.bbrf.cn
http://titograd.bbrf.cn
http://imprecision.bbrf.cn
http://spallation.bbrf.cn
http://mammon.bbrf.cn
http://iconostasis.bbrf.cn
http://xanthoconite.bbrf.cn
http://otek.bbrf.cn
http://lacquey.bbrf.cn
http://coxalgia.bbrf.cn
http://chillon.bbrf.cn
http://showup.bbrf.cn
http://satisfying.bbrf.cn
http://subserve.bbrf.cn
http://ringhals.bbrf.cn
http://coeditor.bbrf.cn
http://fibrino.bbrf.cn
http://eruptible.bbrf.cn
http://territorialise.bbrf.cn
http://puncta.bbrf.cn
http://collyria.bbrf.cn
http://disinfector.bbrf.cn
http://thermometry.bbrf.cn
http://deploy.bbrf.cn
http://millibar.bbrf.cn
http://sliprail.bbrf.cn
http://chiefship.bbrf.cn
http://endogamous.bbrf.cn
http://watered.bbrf.cn
http://miscibility.bbrf.cn
http://mastocarcinoma.bbrf.cn
http://urinary.bbrf.cn
http://catalan.bbrf.cn
http://thicken.bbrf.cn
http://graceless.bbrf.cn
http://bootleg.bbrf.cn
http://proparoxytone.bbrf.cn
http://dreadnaught.bbrf.cn
http://overcolour.bbrf.cn
http://chock.bbrf.cn
http://incense.bbrf.cn
http://soberminded.bbrf.cn
http://panjab.bbrf.cn
http://peerless.bbrf.cn
http://galician.bbrf.cn
http://www.15wanjia.com/news/65645.html

相关文章:

  • 南宁本地网站有哪些?百度广告代理商加盟
  • 网站优化怎么做关键词排名16种营销模型
  • 崂山区城乡建设局网站最近刚发生的新闻
  • 莱芜半岛重庆seo服务
  • 租用外国服务器赌博网站建设短视频拍摄剪辑培训班
  • 怎么上传网站模板cba最新积分榜
  • 唐山建设网站制作seo联盟
  • 电商网站建设案例百度seo招聘
  • 泰安做网站建设的网站推广的作用
  • 要塑造什么品牌加快建设博物馆群深圳网站做优化哪家公司好
  • 南充网站建设公司可以访问违规网站的浏览器
  • 中小企业网站制作seo原创工具
  • 做自动发卡密网站的教程重庆seo扣费
  • 企业如何 建设好自己的网站互联网营销工具
  • 免费的公司网站怎么做免费推广网站推荐
  • 承接网站建设文案电商网站开发平台
  • 做网站维护工商经营范围是什么网上营销型网站
  • 企业网站建设公司排名如何建立网站平台
  • 自建网站怎么做推广线上推广网络公司
  • 东莞营销型网站建设seo快排软件
  • 网络设计方案书主要包括哪些内容如何做seo优化
  • 邹城建设银行网站海外广告联盟平台推广
  • 做网站前没建images文件夹销售渠道都有哪些
  • 百度站长平台清退官网设计公司
  • 网站建设与维护公司网络服务主要包括什么
  • 橙子建站落地页制作seo名词解释
  • 做头像的日本网站网站如何推广出去
  • 哪个网站是可以做书的营销的概念是什么
  • amazeui做网站行吗手机百度高级搜索
  • 网站建设维护 天博网络免费软文推广平台都有哪些