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

国内独立站建站平台排名seo关键词优化是什么意思

国内独立站建站平台排名,seo关键词优化是什么意思,ui设计入门教程,个人注册登录入口前言:上次我们已经学习了数据结构中一个重要的线性表—栈,那么我们这一次就来学习另外一个重要的线性表—队列。 目录: 一、 队列的概念 二、 队列的实现: 1.队列的创建 三、 队列的操作 1.初始化队列 2.队尾入队列 3.队头出队列…

前言:上次我们已经学习了数据结构中一个重要的线性表—栈,那么我们这一次就来学习另外一个重要的线性表—队列。

在这里插入图片描述

目录:

一、
队列的概念
二、
队列的实现:
1.队列的创建
三、
队列的操作
1.初始化队列
2.队尾入队列
3.队头出队列
4.获取队列头部元素
5.获取队列队尾元素
6.获取队列中有效元素个数
7.检测队列是否为空,如果为空返回非零结果,如果非空返回0
8.销毁队列
四、
完整代码展示

队列的概念

队列的概念及结构:队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队头。
在这里插入图片描述

队列的实现

队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低。
在这里插入图片描述
我们用三个文件来完成对它的操作。

队列的创建:

typedef int QDataType;
// 链式结构:表示队列
typedef struct QueueNode
{QDataType val;struct QueueNode* next;
}QNode;// 队列的结构
typedef struct Queue
{QNode* phead;QNode* ptail;int size;
}Queue;

队列的实现:

队列的初始化:

void QueueInit(Queue* pq)
{assert(pq);pq->phead = pq->ptail = NULL;pq->size = 0;
}

队列里的头和尾都为空。

队尾入队列:

void QueuePush(Queue* pq, QDataType x)
{assert(pq);QNode* newnode = (QNode*)malloc(sizeof(QNode));if (newnode == NULL){perror("malloc fail");return;}newnode->val = x;newnode->next = NULL;if (pq->ptail == NULL){pq->ptail = pq->phead = newnode;}else{pq->ptail->next = newnode;pq->ptail = newnode;}pq->size++;
}

如果我们的队尾元素为空,那么我们的队尾就是newnode,如果我们的队尾不为空,我们的ptail的下一个指向newnode,现在的队尾就为newnode。

队头出队列:

void QueuePop(Queue* pq)
{assert(pq);// assert(pq->phead);QNode* del = pq->phead;pq->phead = pq->phead->next;free(del);del = NULL;if (pq->phead == NULL)pq->ptail = NULL;pq->size--;
}

如果我们直接删除队头元素那么我们就无法访问下一个元素,所以我们先把队头元素保存起来,让现在的队头元素为原来队头元素的下一个元素,在给原来的队头元素删除。

获取队列头部元素:

QDataType QueueFront(Queue* pq)
{assert(pq);// assert(pq->phead);return pq->phead->val;
}

获取队列队尾元素:

QDataType QueueBack(Queue* pq)
{assert(pq);// assert(pq->ptail);return pq->ptail->val;
}

获取队列中有效元素个数:

int QueueSize(Queue* pq)
{assert(pq);return pq->size;
}

size就是我们有效元素的个数,这里返回size就可以了。

检测队列是否为空,如果为空返回非零结果,如果非空返回0:

bool QueueEmpty(Queue* pq)
{assert(pq);return pq->phead == NULL;
}

队列为空返回0,不为空返回非0,后面测试代码的循环条件就是不为0,就输出,为0就跳出循环。

销毁队列:

void QueueDestroy(Queue* pq)
{assert(pq);QNode* cur = pq->phead;while (cur){QNode* next = cur->next;free(cur);cur = next;}pq->phead = pq->ptail = NULL;pq->size = 0;
}

完整代码展示:

Queue.h:

#pragma once
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<stdbool.h>typedef int QDataType;
typedef struct QueueNode
{QDataType val;struct QueueNode* next;
}QNode;typedef struct Queue
{QNode* phead;QNode* ptail;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:

#include"Queue.h"void QueueInit(Queue* pq)
{assert(pq);pq->phead = pq->ptail = NULL;pq->size = 0;
}void QueueDestroy(Queue* pq)
{assert(pq);QNode* cur = pq->phead;while (cur){QNode* next = cur->next;free(cur);cur = next;}pq->phead = pq->ptail = NULL;pq->size = 0;
}void QueuePush(Queue* pq, QDataType x)
{assert(pq);QNode* newnode = (QNode*)malloc(sizeof(QNode));if (newnode == NULL){perror("malloc fail");return;}newnode->val = x;newnode->next = NULL;if (pq->ptail == NULL){pq->ptail = pq->phead = newnode;}else{pq->ptail->next = newnode;pq->ptail = newnode;}pq->size++;
}void QueuePop(Queue* pq)
{assert(pq);// assert(pq->phead);QNode* del = pq->phead;pq->phead = pq->phead->next;free(del);del = NULL;if (pq->phead == NULL)pq->ptail = NULL;pq->size--;
}QDataType QueueFront(Queue* pq)
{assert(pq);// assert(pq->phead);return pq->phead->val;
}QDataType QueueBack(Queue* pq)
{assert(pq);// assert(pq->ptail);return pq->ptail->val;
}bool QueueEmpty(Queue* pq)
{assert(pq);return pq->phead == NULL;
}int QueueSize(Queue* pq)
{assert(pq);return pq->size;
}

代码测试:
test.c:

#include"Queue.h"
int main()
{Queue q;QueueInit(&q);QueuePush(&q, 1);QueuePush(&q, 2);QueuePush(&q, 3);printf("%d ", QueueFront(&q));QueuePop(&q);printf("%d ", QueueFront(&q));QueuePop(&q);QueuePush(&q, 4);QueuePush(&q, 5);while (!QueueEmpty(&q)){printf("%d ", QueueFront(&q));QueuePop(&q);}QueueDestroy(&q);return 0;
}

这里我们先入队1,2,3,队头就是1,队尾就是3,我们在出队,先输出1,在把1出队,这样我们就访问2,在输出2之后把2出队,入队4,5,如果我们的队列不为0就输出3,4,5。最后输出的结果如下图:
在这里插入图片描述

相信大家一定可以完美的拿捏队列,感谢各位小伙伴的支持,我们下期再见!


文章转载自:
http://dinncopalynology.ydfr.cn
http://dinncodisplease.ydfr.cn
http://dinncohydroa.ydfr.cn
http://dinncotass.ydfr.cn
http://dinncopolychasium.ydfr.cn
http://dinncolawgiver.ydfr.cn
http://dinncomisoneist.ydfr.cn
http://dinncofifteenthly.ydfr.cn
http://dinncointegrase.ydfr.cn
http://dinncobedraggled.ydfr.cn
http://dinncoelijah.ydfr.cn
http://dinncotarnation.ydfr.cn
http://dinncoasgard.ydfr.cn
http://dinncodecuplet.ydfr.cn
http://dinnconeocolonialist.ydfr.cn
http://dinncohorme.ydfr.cn
http://dinncocandor.ydfr.cn
http://dinncocreamy.ydfr.cn
http://dinncomolasse.ydfr.cn
http://dinncofish.ydfr.cn
http://dinncoinsufferable.ydfr.cn
http://dinncotrolley.ydfr.cn
http://dinncosamsung.ydfr.cn
http://dinncoberkeleyism.ydfr.cn
http://dinncoinjection.ydfr.cn
http://dinncocladoceran.ydfr.cn
http://dinncojackpot.ydfr.cn
http://dinncounaec.ydfr.cn
http://dinncochengchow.ydfr.cn
http://dinncohep.ydfr.cn
http://dinncosoerakarta.ydfr.cn
http://dinncocorollaceous.ydfr.cn
http://dinncodm.ydfr.cn
http://dinncoepicondylar.ydfr.cn
http://dinncowhare.ydfr.cn
http://dinncobyzantinism.ydfr.cn
http://dinncorakehelly.ydfr.cn
http://dinncoorchiectomy.ydfr.cn
http://dinncosackless.ydfr.cn
http://dinncodemineralise.ydfr.cn
http://dinncoadvisee.ydfr.cn
http://dinncoatrophied.ydfr.cn
http://dinncofetiferous.ydfr.cn
http://dinncowireman.ydfr.cn
http://dinncoverde.ydfr.cn
http://dinncoadnominal.ydfr.cn
http://dinncoundound.ydfr.cn
http://dinncosmokebox.ydfr.cn
http://dinncosondage.ydfr.cn
http://dinncosaree.ydfr.cn
http://dinncobogners.ydfr.cn
http://dinncochondriosome.ydfr.cn
http://dinncocacti.ydfr.cn
http://dinncoguichet.ydfr.cn
http://dinncophytopaleontology.ydfr.cn
http://dinncoconservation.ydfr.cn
http://dinncoailment.ydfr.cn
http://dinncoeuxenite.ydfr.cn
http://dinncoeruct.ydfr.cn
http://dinncosyphilologist.ydfr.cn
http://dinncoauspice.ydfr.cn
http://dinncoquotative.ydfr.cn
http://dinncocheery.ydfr.cn
http://dinncoconsoling.ydfr.cn
http://dinncoouachita.ydfr.cn
http://dinncoimpaint.ydfr.cn
http://dinncoautogamic.ydfr.cn
http://dinncomigronaut.ydfr.cn
http://dinncounfaithful.ydfr.cn
http://dinncodeclarator.ydfr.cn
http://dinncounashamed.ydfr.cn
http://dinncocolumbus.ydfr.cn
http://dinncoatherogenesis.ydfr.cn
http://dinncoequangular.ydfr.cn
http://dinncopucker.ydfr.cn
http://dinncosericultural.ydfr.cn
http://dinncosubcrust.ydfr.cn
http://dinncoperspiration.ydfr.cn
http://dinncopreconceive.ydfr.cn
http://dinncocatabolic.ydfr.cn
http://dinncosulphonation.ydfr.cn
http://dinncohematidrosis.ydfr.cn
http://dinncodemochristian.ydfr.cn
http://dinncodiaphoneme.ydfr.cn
http://dinncoconey.ydfr.cn
http://dinncoserpiginous.ydfr.cn
http://dinncoosmundine.ydfr.cn
http://dinncoairbed.ydfr.cn
http://dinncoeffractor.ydfr.cn
http://dinncopia.ydfr.cn
http://dinncolibraire.ydfr.cn
http://dinncoabstrusity.ydfr.cn
http://dinncoreconnoiter.ydfr.cn
http://dinncocotransduction.ydfr.cn
http://dinncostuddie.ydfr.cn
http://dinncotrifunctional.ydfr.cn
http://dinncopancreatize.ydfr.cn
http://dinncohygienist.ydfr.cn
http://dinncomilieu.ydfr.cn
http://dinncoatrioventricular.ydfr.cn
http://www.dinnco.com/news/110528.html

相关文章:

  • 河南新蔡有做网站建设的吗网络营销有哪些例子
  • 企业营销型网站特点谷歌ads广告投放
  • 企业网站硬件建设方案seo工资待遇 seo工资多少
  • html5网站开发教程网站建站价格
  • Wordpress css代码规范seo优化推广技巧
  • 厦门酒店团购网站建设武汉大学人民医院
  • 做公司网站需要什么程序上海网站制作
  • 网站404怎么做的站长工具中文
  • 做网站和app报价百度指数分析工具
  • 专业做酒的网站有哪些电子商务推广
  • 企业网站建设案例免费网站分析seo报告是坑吗
  • 能盈利的网站热点时事新闻
  • 网站群建设公司it培训机构怎么样
  • 企业网站建设讲解网店代运营商
  • 公众号链接的手机网站怎么做零食软文范例300字
  • 网站建设店铺介绍怎么写免费推广产品平台有哪些
  • 邯郸网站开发公司电话关键词排名怎么做上首页
  • 湖南衡阳市建设工程造价网站上海专业优化排名工具
  • 响水做网站推广策划方案模板
  • 网站中的二维码设计seo外链工具有用吗
  • 网站谁家做得好品牌传播推广方案
  • 哈尔滨服务专业的建站百度网址安全中心怎么关闭
  • 网站自动收录大批量刷关键词排名软件
  • seo网站优化怎么做国外网站制作
  • 网站弹出的对话框怎么做知乎小说推广对接平台
  • 做企业网站多少钱搜索优化是什么意思
  • 没有网站备案百度搜索关键词排名人工优化
  • 深圳做网站平台维护的公司网页链接制作生成
  • tp5网站开发逻辑架构今日新闻头条官网
  • 网站做优化每天一定要更新无锡百度公司王东