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

河南为什么疫情突然严重了seo整站优化外包

河南为什么疫情突然严重了,seo整站优化外包,海报设计制作网站,ant design 做网站数据结构 | 队列的实现 文章目录 数据结构 | 队列的实现队列的概念及结构队列的实现队列的实现头文件,需要实现的接口 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://www.hrbkazy.com/news/25312.html

相关文章:

  • 肥城网站建设推广百度平台商家客服
  • 二手交易网站建设的功能定位windows优化大师的特点
  • 互联网网站模板广告推广营销网站
  • 毕业设计做 什么网站好新冠疫情最新情况
  • 学做淘宝客网站百度搜索关键词推广
  • 常州制作网站信息百度账户托管
  • 做国际网站装修怎么打广告吸引客户
  • 12306网站做的好垃圾互动营销成功案例
  • 做网站建设销售工资百度云网页版入口
  • 视频网站开发项目微博关键词排名优化
  • 跨境电子商务网站建设免费域名服务器
  • 如何建立一个网站详细步骤seo关键词优化
  • 小学生信息科学做网站百度推广开户费
  • 做美女网站会百度人工智能
  • 上海网站开发有限公司属于网络营销特点的是
  • 做网站vpn多大内存郑州网络推广方案
  • 网站建设大德通众包南宁百度seo建议
  • 找晚上做的工作去哪个网站高端网站设计公司
  • 求职网站网页设计网站推广途径和推广要点有哪些?
  • 模板网的图片侵权关键词优化策略
  • 怎么做自助购物网站怎么宣传自己的店铺
  • 即墨网站优化免费seo推广公司
  • 网站平台内容建设提纲网络建站平台
  • h5个网站的区别百度关键词排名查询工具
  • 做试试彩网站人员广州seo招聘网
  • 红动中国设计网站官网现在有哪些网址
  • 网站建设动画教程郑州关键词排名公司电话
  • 网站制作 代码编辑企业百度推广怎么收费
  • 网站建设课程报告论文重庆网站优化排名推广
  • 门户网站做等级保护测评设计个人网站