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

怎么提高百度权重企业seo职位

怎么提高百度权重,企业seo职位,外贸网站如何做的好,姓名域名目录 一、队列的概念和结构 ​二、队列的实现 2.1队列的初始化QueueInit 2.2队列的摧毁QueueDestroy 2.3插入结点QueuePush 2.4删除结点QueuePop 2.5返回队头QueueFront 2.6返回队尾QueueBack 2.7判断队列为空QueueEmpty 2.8统计队列数目QueueSize 一、队列的概念和…

目录

一、队列的概念和结构

​二、队列的实现 

2.1队列的初始化QueueInit 

2.2队列的摧毁QueueDestroy

2.3插入结点QueuePush

 2.4删除结点QueuePop

2.5返回队头QueueFront

2.6返回队尾QueueBack

2.7判断队列为空QueueEmpty

2.8统计队列数目QueueSize


一、队列的概念和结构

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

                                        出队列:进行删除操作的一端称为队头

 二、队列的实现 

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

当用链表实现时,我们布置的结构体肯定要包含一个val,还需要一个next。

typedef int QDataType;
typedef struct QueueNode
{QDataType val;struct QueueNode* next;
}QNode;

但结构体的布置并非到这里就结束了,当我们有数据要入队时,我们是不是需要让头指针遍历一遍链表找到队尾呢?而且要改变队尾前一个结点next的指向,是不是要传入二级指针呢?同样,当我们布置其他函数体时也会遇到类似的问题。那么如何让我们的代码量化到最简呢?

我们再设置一个结构体来存储相关的数据,这样修改指向时不用再用二级指针,而是只需要修改结构体的值即可。我们用phead指向队列的头结点,便于出队;用ptail指向队列的尾结点,便于入队

typedef struct Queue
{QNode* phead;QNode* ptail;int size;
}Queue;

2.1队列的初始化QueueInit 

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

2.2队列的摧毁QueueDestroy

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;
}

2.3插入结点QueuePush

首先我们要新开结点,其次我们要判断链表是否为空,如果为空,那么ptail和phead都指向新结点;如果不为空,phead的指向不用改变,而ptail的next要只想newnode,然后再把ptail向后移

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++;
}

 2.4删除结点QueuePop

首先先让队头指向next结点,接着我们就要判断删除的是不是整个队列的最后一个结点,如果删除的是最后一个结点,那么就会影响到我们ptail的指向,所以我们通过判断避免ptail变成野指针。

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--;
}

2.5返回队头QueueFront

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

2.6返回队尾QueueBack

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

2.7判断队列为空QueueEmpty

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

2.8统计队列数目QueueSize

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

http://www.15wanjia.com/news/33905.html

相关文章:

  • 新乡企业网站建设武汉大学人民医院地址
  • 孝感有做网站的公司吗百度seo关键词排名优化软件
  • 哈尔滨优质官网建站企业重庆seo网络优化咨询热线
  • 一般网站开发用什么笔记本百度 官网
  • 黔东南州两学一做教育网站免费制作网站的平台
  • 软件培训机构哪家好石家庄抖音seo
  • 抄袭wordpress主题抖音seo是什么意思
  • 有哪些网站用vue做的软文网站名称
  • app在线生成网站宁波seo外包方案
  • 网站建设 模板中心软文营销文章
  • 网站建设多少钱专业淘宝店铺买卖交易平台
  • 怎么做外汇返佣的网站杭州seo推广公司
  • 教育网站 怎么做吸引人上海网站推广服务公司
  • 国精产品w灬源码1688说明seo网站优化服务合同
  • wordpress基于什么娄底地seo
  • 蔬菜基地做网站合适吗南宁网站建设网络公司
  • 做网站工作职责谷歌搜索引擎免费入口
  • 网站公安备案查询员工培训内容
  • 网站开发开源架构bt磁力猪
  • 高端汽车网站建设深圳seo优化方案
  • 六安网站制作哪家好长沙做网站推广
  • 有什么网站可以自己做书新闻源软文发布平台
  • wordpress 添加搜索引擎搜索seo神器
  • 湘潭找工作网站搜索优化师
  • ui网上接单网站株洲最新今日头条
  • 网络营销推广方法包括有哪些?沈阳seo合作
  • 网站做虚假广告b2b平台营销
  • 微信h5页面制作免费巢湖seo推广
  • 网站制作公司 首推万维科技发布推广信息的网站
  • 怎么设计一个网站深圳网络推广网络