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

牛商网做网站要多少钱学校为什么要做网站

牛商网做网站要多少钱,学校为什么要做网站,网络公司实习报告,英文网站设计技术服务顺序队列与链式队列 1.队列的基本概念1.顺序存储的队列:循环队列3.链式存储的队列:链式队列 1.队列的基本概念 队列是一种逻辑结构,是一种特殊的线性表 只能在固定的两端操作线性表 只要满足上述条件,那么这种特殊的线性表就会…

顺序队列与链式队列

    • 1.队列的基本概念
    • 1.顺序存储的队列:循环队列
    • 3.链式存储的队列:链式队列

1.队列的基本概念

队列是一种逻辑结构,是一种特殊的线性表

  • 只能在固定的两端操作线性表

只要满足上述条件,那么这种特殊的线性表就会呈现一种“先进先出”的逻辑,这种逻辑就被称为队列。

由于约定了只能在线性表固定的两端进行操作,于是给队列这种特殊的线性表的插入删除,起个特殊的名称:

  • 队头:可以删除节点的一端
  • 队尾:可以插入节点的一端
  • 入队:将节点插入到队尾之后,函数名通常为enQueue()
  • 出队:将队头节点从队列中剔除,函数名通常为outQueue()
  • 取队头:取得队头元素,但不出队,函数名通常为front()

1.顺序存储的队列:循环队列

#include <stdio.h>
#include <stdlib.h>#define QUEUE_SIZE 10typedef struct sq_queue
{int data[QUEUE_SIZE];int tail;
}sq_queue_t;// 
sq_queue_t *sq_queue_init(void)
{sq_queue_t *my_sq_queue = malloc(sizeof(sq_queue_t));(my_sq_queue->tail) = -1;return my_sq_queue;
}// 入队
int en_queue(int new_data, sq_queue_t *sq_queue)
{// 判断队列是否满了if (sq_queue->tail > QUEUE_SIZE - 1){printf("队列已满!\n");return -1;}(sq_queue->tail)++;sq_queue->data[sq_queue->tail] = new_data;return 0;
}// 出队
int out_queue(sq_queue_t *sq_queue)
{int i;if (sq_queue->tail < 0){printf("队列已空!\n");return -1;}int temp = sq_queue->data[0];for (i = 0; i < sq_queue->tail; i++){ sq_queue->data[i] = sq_queue->data[i+1];}(sq_queue->tail)--;return temp;
}int main(int argc, char const *argv[])
{int i;sq_queue_t *my_sq_queue = sq_queue_init();if (!my_sq_queue){printf("[main] init fail\n");return -1;}for (i = 0; i < 12; i++){en_queue(i, my_sq_queue);}for (i = 0; i < 12; i++){printf("出队数据:%d\n", out_queue(my_sq_queue));}return 0;
}

3.链式存储的队列:链式队列

#include <stdio.h>
#include <stdlib.h>typedef struct list_queue
{int data;struct list_queue *tail;struct list_queue *next;
}list_queue_t;// 初始化链式队列, 定义结构体变量
list_queue_t *list_queue_init(void)
{list_queue_t *queue_head = malloc(sizeof(list_queue_t));queue_head->next = NULL;queue_head->tail = queue_head; // 对尾指针指向头节点,每次插入新的节点需要更新队尾指针return queue_head;
}// 入队--尾插
int in_queue(int new_data, list_queue_t *queue)
{list_queue_t *new_node = malloc(sizeof(list_queue_t));// 初始化数据域new_node->data = new_data;new_node->next = NULL;new_node->tail = NULL;// 把新的节点插入到队尾后面queue->tail->next = new_node; // 更新队尾---指向新的节点queue->tail = new_node;return 0;
}// 出队--把头节点的下一个节点删除,返回该节点的数据
int out_queue(list_queue_t *queue)
{// 判断队列是否为空if (!queue->next){printf("队列已空!\n");return -1;}// 定义指针p指向待删除的节点--也就是头节点的下一个节点list_queue_t *p = queue->next;// 备份待删除节点的数据int temp = p->data;// 将头节点的next指针指向待删除节点的下一个节点--删除队首queue->next = p->next;p->next = NULL;free(p);return temp;
}#define IN_QUEUE_NUM 5
int main(int argc, char const *argv[])
{unsigned char i;list_queue_t *head_queue = list_queue_init();for (i = 0; i < IN_QUEUE_NUM; i++){in_queue(i, head_queue);}for (i = 0; i < IN_QUEUE_NUM + 1; i++){printf("出队的数据:%d\n", out_queue(head_queue));}return 0;
}/*
执行结果:出队的数据:0出队的数据:1出队的数据:2出队的数据:3出队的数据:4队列已空!出队的数据:-1*/
http://www.yayakq.cn/news/432482/

相关文章:

  • 上海公司网站wordpress怎么建设网站
  • 如何自做自己的网站重庆必玩景点排名
  • 商城网站备案要求iapp用网站做软件代码
  • 野马视觉传媒网站建设装饰公司怎么做网站
  • wordpress两个网站同步中国建设银行app下载安卓版
  • 商城网站建设的优点网址缩短
  • 可以看国外网站的dns顺德做网站shundeit
  • 传动设备 技术支持 东莞网站建设网站设计公司列表
  • 哪里网站海报做的比较好婚介所网站开发费用
  • 海南省城乡和建设厅网站磁力搜索引擎下载
  • 网站现状如何分析支付网站建设费账务处理
  • 网站素材包括哪些昆明公司做网站
  • 企业网站开发研究现状百度指数的主要功能有
  • 上海做征信服务的公司网站山东手工活外发加工网
  • 宁夏 网站开发westte互联网100个创业项目
  • 网站建设需要注意哪些一卡2卡三卡4卡入口天堂
  • 做公司网站图片算是商用吗龙元建设陕西公司网站
  • 备案期间能否做网站解析做电商网站费用
  • 镜像别人网站做排名的好处网站服务器安装教程视频教程
  • 美团后台管理系统登录南宁网站建设公司seo优化
  • 网站页面模板有经验的邯郸网站建设
  • 个人网站建设流程猎头做单网站
  • 织梦 网站设计十大新媒体平台有哪些
  • 优秀设计师个人网站利用网站做蜘蛛池
  • 网站做全好吗建设摩托车官网整车验证系统
  • 拖拽式wordpress建站工程公司税率是多少
  • 九江网站优化优质网站建设在哪里
  • 付费下载网站源码国外高校实验室网站建设成果
  • 建设一个asp网站中国建设教育协会网站
  • 中国建设银行官网站贺岁产品十大免费不用收费的网站