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

盐城网盐城网站建设站建设网站建设与运营实训总结

盐城网盐城网站建设站建设,网站建设与运营实训总结,免费的个人网站空间,网站编辑招聘信息前言 队列是一种特殊的线性表,它只允许在一端对数据进行插入操作,在另一端对数据进行删除操作的特殊线性表,队列具有先进先出的(FIFO)的 特性,进行插入操作的一端称为队尾,进行删除操作的一端称…

前言

        队列是一种特殊的线性表,它只允许在一端对数据进行插入操作,在另一端对数据进行删除操作的特殊线性表,队列具有先进先出的(FIFO)的 特性,进行插入操作的一端称为队尾,进行删除操作的一端称为队头。

1.队列的特性

        队尾:元素在队尾入队。插入操作。

        队头:元素在队头出对。删除操作。

如图:

2.队列的实现

         队列可以用 数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低,需要挪动数据,因此这里采用链表的方式来进行队列的实现。

//queue.h

#include<stdlib.h>
#include<assert.h>
#include<stdio.h>
#include<stdbool.h>
typedef int QDataType;
typedef struct QueueNode
{struct QueueNode* _next;QDataType _data;
}QueueNode;
typedef struct  Queue//队列的结构
{QueueNode* _head;//头指针QueueNode* _tail;//尾指针
}Queue;void QueueInit(Queue* qu);//初始化栈void QueueDestory(Queue* qu);//摧毁栈void QueuePush(Queue* qu,QDataType data);//入队void QueuePop(Queue* qu);//出队QDataType QueueFront(Queue* qu);//返回队头元素
QDataType QueueBack(Queue* qu);//返回队尾元素size_t QueueSize(Queue* qu);//队列长度bool QueueEmpty(Queue* qu);//判断队列是否为空

//queue.c

void QueueInit(Queue* qu)//初始化栈
{qu->_head = qu->_tail = NULL;
}
void QueueDestory(Queue* qu)//摧毁栈
{//确保指针有效assert(qu);QueueNode* cur = qu->_head;while (cur){QueueNode* next = cur->_next;free(cur);}
}
void QueuePush(Queue* qu,QDataType data)//入队
{if (qu->_head == NULL){qu->_head = (QueueNode*)malloc(sizeof(QueueNode));qu->_tail = qu->_head;qu->_head->_next = NULL;qu->_head->_data = data;}else{//尾部入数据QueueNode* cur = qu->_tail;QueueNode* newNode = (QueueNode*)malloc(sizeof(QueueNode));cur->_next = newNode;newNode->_next = NULL;qu->_tail = newNode;newNode->_data = data;}
}
void QueuePop(Queue* qu)//出队
{//队头出数据QueueNode* head = qu->_head;qu->_head = head->_next;free(head);
}
QDataType QueueFront(Queue* qu)//返回队头元素
{return qu->_head->_data;
}
QDataType QueueBack(Queue* qu)//返回队尾元素
{return qu->_tail->_data;
}
size_t QueueSize(Queue* qu)//队列长度
{assert(qu);//确保指针存在QueueNode* cur = qu->_head;size_t size = 0;while (cur){++size;cur = cur->_next;}return size;
}
bool QueueEmpty(Queue* qu)//判断队列是否为空
{return !qu->_head;
}

 

3.测试部分

        

void TestQueue()
{Queue qu;QueueInit(&qu);QueuePush(&qu, 1);QueuePush(&qu, 2);QueuePush(&qu, 3);QueuePush(&qu, 4);QueuePush(&qu, 5);QueuePush(&qu, 6);QueuePush(&qu, 7);QueuePush(&qu, 8);while (!QueueEmpty(&qu)){printf("%d ", QueueFront(&qu));QueuePop(&qu);}QueueDestory(&qu);
}

 

http://www.yayakq.cn/news/585659/

相关文章:

  • 免费软件下载网站排行湘潭关键词优化公司
  • 网站制作的目的餐饮网站系统
  • 新媒体 网站建设 管理规范wordpress轻量主题
  • 郑州网站网络推广公司wordpress公告栏插件
  • 网站建设框架都有哪些梨树县住房和城乡建设局网站
  • 湛江网站制作多少钱科技类公司名称大全
  • 公司建设网站有什么好处动漫与游戏制作专业就业方向
  • 做蛋糕招聘网站温岭专业自适应网站建设
  • wordpress能做手机站吗做的时间长的网站制作公司
  • 美团招聘网站开发网站建设运营培训总结
  • 国外做美食视频网站自己想做个网站 费用
  • 医院网站管理办法做网站卖广告位赚钱
  • 网站建设创新成果wordpress 短信认证
  • asp商业网站源码学院网站建设的特色
  • 做彩票平台网站吗各种网站解决方案
  • 做羞羞事网站有哪些做包装设计网站好些
  • 做网站用电脑自带的建网站与发布网站
  • 做网站现在什么尺寸合适杭州建设网杭州建设工程招标平台
  • 如何做网站分析企业网站的优化
  • dz论坛识别手机网站自动跳转手机在线建站
  • 权威的岑溪网站开发网站logo名词解释
  • 网站开发的需求昌大建设集团大老板
  • 网站背景怎么设置深圳建设集团有限公司有分公司吗
  • 网站维护工程师薪酬国内最好的分销平台
  • 国外做黄漫的网站有哪些国内知名建筑设计公司
  • 打开上次浏览的网站模板商城网站开发网
  • 网站用ai做还是ps小兽wordpress
  • 不属于企业网站建设基本标准是网站页面优化公告
  • 建设服装网站的论文wordpress 模版 psd
  • 苏州纳米加工平台手机网站优化排名