实现队列的基本运算算法思想
时间: 2024-03-18 19:35:45 浏览: 58
队列的基本运算算法思想是先进先出(FIFO)的原则。队列有两个基本操作:入队和出队。
入队操作将元素添加到队列的末尾,出队操作将队列的第一个元素移除并返回。
队列的算法实现可以使用数组或链表。
使用数组实现队列时,可以使用两个指针front和rear分别指向队列的头部和尾部。入队操作时,将元素添加到rear指针所指的位置,并将rear指针后移一位;出队操作时,将front指针后移一位,并返回front指针所指的元素。
使用链表实现队列时,可以使用一个指针front指向队列的头部,一个指针rear指向队列的尾部。入队操作时,创建一个新节点,并将其添加到rear指针所指的位置,并将rear指针后移一位;出队操作时,将front指针后移一位,并返回front指针所指的节点的值。
以下是使用数组和链表实现队列的基本运算算法思想的示例:
1. 使用数组实现队列的基本运算算法思想:
```python
class Queue:
def __init__(self):
self.queue = []
self.front = 0
self.rear = 0
def enqueue(self, item):
self.queue.append(item)
self.rear += 1
def dequeue(self):
if self.front == self.rear:
return None
item = self.queue[self.front]
self.front += 1
return item
```
2. 使用链表实现队列的基本运算算法思想:
```python
class Node:
def __init__(self, value):
self.value = value
self.next = None
class Queue:
def __init__(self):
self.front = None
self.rear = None
def enqueue(self, item):
new_node = Node(item)
if self.rear is None:
self.front = new_node
self.rear = new_node
else:
self.rear.next = new_node
self.rear = new_node
def dequeue(self):
if self.front is None:
return None
item = self.front.value
self.front = self.front.next
if self.front is None:
self.rear = None
return item
```
阅读全文