当前位置:   article > 正文

数据结构队列(C语言实现)_数据结构 队列的应用 c语言

数据结构 队列的应用 c语言

1、队列的概念及结构

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

2、队列的实现

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

3、结构体的设计

// 链式结构:表示队列 
typedef struct QListNode 
{
    
	struct QListNode* _next; 
	QDataType _data; 
}QNode; 
 
// 队列的结构 
typedef struct Queue 
{
    
	QNode* _front; 
	QNode* _tail; 
}Queue; 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

这里呢,和之前数据结构的设计不太一样,QNode结构体是用来存放数据的,而Queue结构体是用来存放QNode结构体的指针的,这里有两个指针,因为QNode的结构是单链表,而队列是只有尾插的,单链表结构的尾插效率跟数组相比比较低,所以定义了一个tail指针,指向队列的尾指针,从而达到O(1)的插入效率。

4、初始化队列

void QueueInit(Queue* q)

{
   
    assert(q)
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/656999
推荐阅读
相关标签
  

闽ICP备14008679号