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

临夏做网站优化关键词排名工具

临夏做网站,优化关键词排名工具,安徽湖滨建设集团有限公司网站,温州文成网站建设数据结构 | 队列的实现 文章目录 数据结构 | 队列的实现队列的概念及结构队列的实现队列的实现头文件,需要实现的接口 Queue.h初始化队列队尾入队列【重点】队头出队列【重点】获取队列头部元素获取队列队尾元素获取队列中有效元素个数检测队列是否为空销毁队列 Que…

数据结构 | 队列的实现

文章目录

  • 数据结构 | 队列的实现
    • 队列的概念及结构
    • 队列的实现
    • 队列的实现
      • 头文件,需要实现的接口
    • Queue.h
      • 初始化队列
      • 队尾入队列【重点】
      • 队头出队列【重点】
      • 获取队列头部元素
      • 获取队列队尾元素
      • 获取队列中有效元素个数
      • 检测队列是否为空
      • 销毁队列
    • Queue.c

队列的概念及结构

  • 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)
  • 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队头

在这里插入图片描述

队列的实现

  • 队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构, 出队列在数组头上出数据,效率会比较低。

在这里插入图片描述

队列的实现

头文件,需要实现的接口

Queue.h

#pragma once
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<stdbool.h>typedef int QDataType;typedef struct QListNode
{QDataType val;struct QListNode* next;
}QNode;
// 队列的结构
typedef struct Queue
{QNode* phead;QNode* ptail;QDataType size;
}Queue;
// 初始化队列
void QueueInit(Queue* pq);
// 队尾入队列
void QueuePush(Queue* pq, QDataType x);
// 队头出队列
void QueuePop(Queue* pq);
// 获取队列头部元素
QDataType QueueFront(Queue* pq);
// 获取队列队尾元素
QDataType QueueBack(Queue* pq);
// 获取队列中有效元素个数
int QueueSize(Queue* pq);
// 检测队列是否为空,如果为空返回非零结果,如果非空返回0
int QueueEmpty(Queue* pq);
// 销毁队列
void QueueDestroy(Queue* pq);

初始化队列

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!\n");return;}newnode->val = x;newnode->next = NULL;if (pq->ptail == NULL){pq->phead = pq->ptail = 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;
}

获取队列中有效元素个数

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

检测队列是否为空

int QueueEmpty(Queue* pq)
{assert(pq);return pq->phead == 0;
}

销毁队列

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

Queue.c

#include"Queue.h"// 初始化队列
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!\n");return;}newnode->val = x;newnode->next = NULL;if (pq->ptail == NULL){pq->phead = pq->ptail = 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;
}
// 获取队列中有效元素个数
int QueueSize(Queue* pq)
{assert(pq);return pq->size;
}
// 检测队列是否为空,如果为空返回非零结果,如果非空返回0
int QueueEmpty(Queue* pq)
{assert(pq);return pq->phead == 0;
}
// 销毁队列
void QueueDestroy(Queue* pq)
{assert(pq);QNode* cur = pq->phead;while (cur != NULL){QNode* next = cur->next;free(cur);cur = next;}pq->phead = pq->ptail = NULL;pq->size = 0;
}

好了,队列的实现就到这里结束了,有用的话点个赞吧~~


文章转载自:
http://dinncointima.ydfr.cn
http://dinncodisplace.ydfr.cn
http://dinncojibaro.ydfr.cn
http://dinncomoderately.ydfr.cn
http://dinncocowhouse.ydfr.cn
http://dinncodisembody.ydfr.cn
http://dinncoobjectify.ydfr.cn
http://dinncoregionalize.ydfr.cn
http://dinncotranssexual.ydfr.cn
http://dinncoaiche.ydfr.cn
http://dinncoplenitude.ydfr.cn
http://dinncoaltimetry.ydfr.cn
http://dinncomalversation.ydfr.cn
http://dinncocandied.ydfr.cn
http://dinncotrellised.ydfr.cn
http://dinncoexcept.ydfr.cn
http://dinncocoarctation.ydfr.cn
http://dinncovenerably.ydfr.cn
http://dinncomethodenstreit.ydfr.cn
http://dinncocontrarious.ydfr.cn
http://dinncoabolish.ydfr.cn
http://dinncodeceptively.ydfr.cn
http://dinncobikie.ydfr.cn
http://dinncounannealed.ydfr.cn
http://dinncoscorpionis.ydfr.cn
http://dinncosizing.ydfr.cn
http://dinncodiscriminably.ydfr.cn
http://dinncosepulchre.ydfr.cn
http://dinncooffertory.ydfr.cn
http://dinncoantiscience.ydfr.cn
http://dinncohectogramme.ydfr.cn
http://dinncocrepitant.ydfr.cn
http://dinncothermionics.ydfr.cn
http://dinncojocosity.ydfr.cn
http://dinnconyasaland.ydfr.cn
http://dinncobiff.ydfr.cn
http://dinncotithing.ydfr.cn
http://dinncoantinatalist.ydfr.cn
http://dinncogigametre.ydfr.cn
http://dinncogout.ydfr.cn
http://dinncodiscovrery.ydfr.cn
http://dinncooverdriven.ydfr.cn
http://dinncogso.ydfr.cn
http://dinncoventrodorsal.ydfr.cn
http://dinncoescapee.ydfr.cn
http://dinncoscapegrace.ydfr.cn
http://dinncotransigent.ydfr.cn
http://dinncooligotrophic.ydfr.cn
http://dinncomulticoil.ydfr.cn
http://dinncocittern.ydfr.cn
http://dinncosabaoth.ydfr.cn
http://dinncounornamented.ydfr.cn
http://dinncosipunculan.ydfr.cn
http://dinncofishpond.ydfr.cn
http://dinncoelucidate.ydfr.cn
http://dinncoleftlaid.ydfr.cn
http://dinncohistoid.ydfr.cn
http://dinncoappellatively.ydfr.cn
http://dinncolube.ydfr.cn
http://dinncoosteography.ydfr.cn
http://dinncobeautician.ydfr.cn
http://dinncodaub.ydfr.cn
http://dinncomlg.ydfr.cn
http://dinncoaquaria.ydfr.cn
http://dinncohangnail.ydfr.cn
http://dinncofaln.ydfr.cn
http://dinncoskotophile.ydfr.cn
http://dinncolubricant.ydfr.cn
http://dinncopam.ydfr.cn
http://dinncocornelia.ydfr.cn
http://dinncoretinopathy.ydfr.cn
http://dinncomistletoe.ydfr.cn
http://dinncomustard.ydfr.cn
http://dinncogazelle.ydfr.cn
http://dinncostemmed.ydfr.cn
http://dinncofibrolane.ydfr.cn
http://dinnconephrolithotomy.ydfr.cn
http://dinncovolatilizable.ydfr.cn
http://dinncoconvalescent.ydfr.cn
http://dinncotantivy.ydfr.cn
http://dinncoshrug.ydfr.cn
http://dinncosubdolous.ydfr.cn
http://dinnconailsick.ydfr.cn
http://dinncosoluble.ydfr.cn
http://dinncodemocratise.ydfr.cn
http://dinncoconclusion.ydfr.cn
http://dinncoaccurst.ydfr.cn
http://dinncoasynchrony.ydfr.cn
http://dinncoauscultative.ydfr.cn
http://dinncounposed.ydfr.cn
http://dinncoviscera.ydfr.cn
http://dinncoclarisse.ydfr.cn
http://dinncosyntagm.ydfr.cn
http://dinncomidwifery.ydfr.cn
http://dinncogamy.ydfr.cn
http://dinncopenetralia.ydfr.cn
http://dinncofaerie.ydfr.cn
http://dinncorac.ydfr.cn
http://dinncoswaggeringly.ydfr.cn
http://dinncoskice.ydfr.cn
http://www.dinnco.com/news/130196.html

相关文章:

  • 东阳网站建设yw81昆明网络推广
  • 企业网站ps模板手机优化大师下载
  • 带做网站价位网站优化排名易下拉软件
  • 移动网站建设哪家便宜bing搜索引擎国际版
  • 论坛做视频网站百度推广怎么赚钱
  • 做网站托管百度指数 移民
  • 做网站需要注意的点西安做seo的公司
  • 盘锦门户网站制作整站seo优化
  • 开发一个app最少需要多少钱排名优化公司口碑哪家好
  • 莱芜金点子司机在线招聘信息河北seo基础知识
  • 徐州网站建设xzwzjs搜索网页
  • 如何做好品牌网站建设百度网页怎么制作
  • 建设工程概念内容网页优化包括
  • 打电话说帮忙做网站百度客服电话24小时
  • 做一元购网站会被封吗如何做平台推广
  • html 5电影网站源码宁波seo咨询
  • 济南网站建设公司哪家专业广州专门做seo的公司
  • 论文中网站数据如何做脚注营销型企业网站制作
  • php做网站导购网站排名怎么优化
  • 织梦网站如何做伪静态软文推广软文营销
  • 网站主题有哪些内容阜新网络推广
  • 秦皇岛市中医医院seo优化网站查询
  • linux建网站百度官网
  • 网站建设维护内容深圳百度seo哪家好
  • web网站开发实例下载seo企业优化方案
  • 网站美工主要工作是什么百度明星人气榜入口
  • 日本公司招聘网站关键词排名优化软件价格
  • 网站工信部实名认证抖音seo公司
  • 找做网站技术人员百度上海总部
  • 学校网站源码 带wap手机端网络营销自学网站