1.概念
队列是一种常见的数据结构,它按照先进先出(First In, First Out,FIFO)的原则管理数据。这意味着最先进入队列的元素将会被最先取出,类似于排队等待服务的情景。
在队列中,数据项按照顺序排列,每个数据项都有一个位置,称为队列的尾部(rear),新的数据项被添加到队列的尾部。同时,数据项也可以从队列的头部(front)被移除,也就是说,队列的操作通常包括两个主要动作:入队(enqueue)和出队(dequeue)。
入队操作将新的元素添加到队列的尾部,而出队操作则从队列的头部移除一个元素。这种操作保证了最先进入队列的元素被最先处理,符合FIFO的原则
2.代码
2.1初始化
2.2入队
2.3出队
2.4输出
2.5测试
2.6结果
3代码解释
-
typedef struct LinkNode: 这个结构定义了队列节点的数据结构,其中包括一个整型的数据域
data
和一个指向下一个节点的指针next
。 -
typedef struct LinkQueue: 这个结构定义了队列的数据结构,包括一个指向队列头部的指针
front
和一个指向队列尾部的指针rear
。 -
initqueue(): 这个函数用于初始化一个空的队列。它分配了内存空间用于存储队列结构,并创建了一个头节点作为队列的起始位置,同时将
front
和rear
指针指向头节点。 -
output(): 这个函数用于输出队列中的元素。它从队列的头部开始遍历链表,并依次输出每个节点的数据域。
-
enqueue(): 这个函数用于将一个新的元素入队。它首先创建一个新的节点,然后将新节点添加到队列尾部,并更新
rear
指针指向新的尾节点。 -
dequeue(): 这个函数用于从队列中删除一个元素并返回其值。它首先检查队列是否为空,然后从队列头部删除一个节点,并返回其数据域的值。同时,它还需要更新
front
指针指向新的头节点。 -
testqueue(): 这个函数是一个测试函数,用于演示队列的使用。它首先初始化一个队列,然后进行一系列的入队、出队和输出操作,以验证队列的功能是否正常