当前位置: 首页 > 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/284412/

相关文章:

  • 怎么开个人网站电影网站怎么做的
  • 修改网站源码连接数据库怎么做自己做的网址如何推广
  • redhat7做网站过程wordpress怎么使用固定连接
  • 东莞高端网站建设费网络推广专员百度百聘
  • 集团网站建设的要求临汾做网站电话
  • 网站报价明细表佛山顺德容桂做网站的公司
  • 做装饰画的行业网站外贸网站推广机构
  • 长沙市网站推广公司上海网络推广团队
  • 做棋牌网站要什么源码山东住房城乡建设厅网站
  • 设计的网站如何做音乐分享类网站
  • 商城网站前台模板免费下载如何注册网页网址
  • 网站建设收费标准效果群晖ds218+做网站
  • h5响应式网站外贸英文网站
  • 嘉兴专业做网站的公司专业网络推广公司
  • 厦门网站做的比较好wordpress去除更新
  • 哪家企业网站做的好国外优秀app设计网站有哪些
  • 网站发帖做业务制作网站能挣钱
  • 做网站微信群凡科建站小程序制作
  • 网站搭建策略与方法是什么绵阳欣城建设
  • 上海网站建设网络公司wordpress 3.9 漏洞
  • 遵义制作公司网站的公司网站展示怎么做
  • 有框架有模板怎么做网站seo自然优化排名
  • 法制教育网站网站 备案 在哪
  • 网站建设与设计ppt模板深圳优秀网站建设公司
  • 哪个行业该做网站但是没有做网站建设的优势
  • 群站优化之链轮模式江阴网站建设哪家好
  • 贵州西能电力建设有限公司网站wordpress主题和模板下载
  • 免费做商城网站长兴县住房建设局网站
  • 江苏国龙翔建设网站.黄埔五屏网站建设
  • asp.net 网站开发框架东软集团