当前位置:实例文章 » 其他实例» [文章]王道考研数据结构--4.1.顺序队列

王道考研数据结构--4.1.顺序队列

发布人:shili8 发布时间:2025-03-05 06:42 阅读次数:0

**顺序队列**

顺序队列是一种线性数据结构,元素按照先进先出的原则排列。它的基本操作包括入队、出队和查看队首元素。

###4.1.1 定义和特点顺序队列的定义如下:

* 队列中的元素按顺序存储在一块连续的内存空间中。
* 队列的头部指向当前队首元素,尾部指向当前队尾元素。

###4.1.2 基本操作#### 入队(Enqueue)

入队是将新元素添加到队列末尾的过程。具体步骤如下:

1. 检查队列是否已满。如果队列已满,则需要扩容队列。
2. 将新元素添加到队列末尾。

class OrderQueue:
 def __init__(self, max_size):
 self.max_size = max_size self.queue = [None] * max_size self.head =0 self.tail = -1 def enqueue(self, value):
 if self.is_full():
 print("队列已满")
 return False self.tail +=1 if self.tail >= self.max_size:
 self.tail =0 self.queue[self.tail] = value return True


#### 出队(Dequeue)

出队是将队首元素移除并返回的过程。具体步骤如下:

1. 检查队列是否为空。如果队列为空,则需要扩容队列。
2. 移除队首元素。

def dequeue(self):
 if self.is_empty():
 print("队列已空")
 return None value = self.queue[self.head]
 self.queue[self.head] = None self.head +=1 if self.head >= self.max_size:
 self.head =0 return value


#### 查看队首元素查看队首元素是返回当前队首元素的过程。具体步骤如下:

1. 检查队列是否为空。如果队列为空,则需要扩容队列。
2. 返回队首元素。

def peek(self):
 if self.is_empty():
 print("队列已空")
 return None return self.queue[self.head]


###4.1.3 实现下面是一个完整的顺序队列实现:

class OrderQueue:
 def __init__(self, max_size):
 self.max_size = max_size self.queue = [None] * max_size self.head =0 self.tail = -1 def enqueue(self, value):
 if self.is_full():
 print("队列已满")
 return False self.tail +=1 if self.tail >= self.max_size:
 self.tail =0 self.queue[self.tail] = value return True def dequeue(self):
 if self.is_empty():
 print("队列已空")
 return None value = self.queue[self.head]
 self.queue[self.head] = None self.head +=1 if self.head >= self.max_size:
 self.head =0 return value def peek(self):
 if self.is_empty():
 print("队列已空")
 return None return self.queue[self.head]

 def is_full(self):
 return self.tail == (self.max_size -1)

 def is_empty(self):
 return self.head > self.tail# 测试order_queue = OrderQueue(5)
print(order_queue.enqueue(1)) # Trueprint(order_queue.enqueue(2)) # Trueprint(order_queue.enqueue(3)) # Trueprint(order_queue.dequeue()) #1print(order_queue.peek()) #2


###4.1.4 总结顺序队列是一种线性数据结构,元素按照先进先出的原则排列。它的基本操作包括入队、出队和查看队首元素。通过实现这些基本操作,可以构建一个完整的顺序队列。

相关标签:队列
其他信息

其他资源

Top