当前位置:实例文章 » 其他实例» [文章]数据结构【栈和队列】

数据结构【栈和队列】

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

**数据结构之栈和队列**

在计算机科学中,数据结构是指组织和存储数据的方式。栈和队列是两种常见的线性数据结构,它们都有特定的插入和删除顺序。

### 栈栈是一种后进先出(LIFO)的数据结构,即最后添加的元素将最先被移除。栈可以用数组或链表来实现。

#### 栈的基本操作1. **push**: 将元素添加到栈顶。
2. **pop**: 移除栈顶元素。
3. **peek**: 查看栈顶元素,但不移除。
4. **isEmpty**: 检查栈是否为空。

#### 栈的实现我们可以使用数组或链表来实现栈。下面是使用数组实现栈的示例代码:

class Stack:
 def __init__(self, max_size):
 self.max_size = max_size self.stack = [None] * max_size self.top = -1 def push(self, element):
 if self.top == self.max_size -1:
 print("Stack is full.")
 return self.top +=1 self.stack[self.top] = element def pop(self):
 if self.isEmpty():
 print("Stack is empty.")
 return None top_element = self.stack[self.top]
 self.stack[self.top] = None self.top -=1 return top_element def peek(self):
 if self.isEmpty():
 print("Stack is empty.")
 return None return self.stack[self.top]

 def isEmpty(self):
 return self.top == -1# 示例使用stack = Stack(5)
stack.push(1)
stack.push(2)
print(stack.peek()) # 输出:2print(stack.pop()) # 输出:2print(stack.isEmpty()) # 输出: False


### 队列队列是一种先进先出(FIFO)的数据结构,即最先添加的元素将最先被移除。队列可以用数组或链表来实现。

#### 队列的基本操作1. **enqueue**: 将元素添加到队尾。
2. **dequeue**: 移除队首元素。
3. **peek**: 查看队首元素,但不移除。
4. **isEmpty**: 检查队列是否为空。

#### 队列的实现我们可以使用数组或链表来实现队列。下面是使用链表实现队列的示例代码:

class Node:
 def __init__(self, value):
 self.value = value self.next = Noneclass Queue:
 def __init__(self):
 self.front = None self.rear = None def enqueue(self, value):
 node = Node(value)
 if not self.front:
 self.front = self.rear = node else:
 self.rear.next = node self.rear = node def dequeue(self):
 if not self.front:
 print("Queue is empty.")
 return None value = self.front.value self.front = self.front.next if not self.front:
 self.rear = None return value def peek(self):
 if not self.front:
 print("Queue is empty.")
 return None return self.front.value def isEmpty(self):
 return not self.front# 示例使用queue = Queue()
queue.enqueue(1)
queue.enqueue(2)
print(queue.peek()) # 输出:1print(queue.dequeue()) # 输出:1print(queue.isEmpty()) # 输出: False


### 总结栈和队列是两种常见的线性数据结构,它们都有特定的插入和删除顺序。栈是一种后进先出(LIFO)的数据结构,队列是一种先进先出(FIFO)的数据结构。通过使用数组或链表来实现栈和队列,我们可以轻松地进行基本操作,如push、pop、peek和isEmpty等。

相关标签:数据结构
其他信息

其他资源

Top