1、顺序栈的建立、取栈顶元素、入栈、出栈、求栈的长度、清空等操作。 2、循环队列的建立、取队中元素、入队、出队基本操作的实现。
时间: 2023-09-26 20:14:22 浏览: 131
1、顺序栈的建立、取栈顶元素、入栈、出栈、求栈的长度、清空等操作:
顺序栈是基于数组实现的栈,它的特点是先进后出。下面是顺序栈的基本操作:
建立栈:
```python
class SeqStack:
def __init__(self, max_size=10):
self.max_size = max_size
self.stack = [None] * max_size
self.top = -1
```
取栈顶元素:
栈顶元素就是最后一个入栈的元素,所以可以直接返回栈顶指针指向的元素。
```python
def get_top(self):
if self.top == -1:
return None
return self.stack[self.top]
```
入栈:
入栈操作就是将元素插入到栈顶指针的下一个位置,然后将栈顶指针加1。
```python
def push(self, value):
if self.top == self.max_size - 1:
return False
self.top += 1
self.stack[self.top] = value
return True
```
出栈:
出栈操作就是将栈顶指针指向的元素弹出,然后将栈顶指针减1。
```python
def pop(self):
if self.top == -1:
return None
value = self.stack[self.top]
self.top -= 1
return value
```
求栈的长度:
栈的长度就是栈顶指针加1。
```python
def size(self):
return self.top + 1
```
清空栈:
清空栈就是将栈顶指针重置为-1。
```python
def clear(self):
self.top = -1
```
2、循环队列的建立、取队中元素、入队、出队基本操作的实现:
循环队列是基于数组实现的队列,它的特点是先进先出。下面是循环队列的基本操作:
建立队列:
```python
class CircularQueue:
def __init__(self, max_size=10):
self.max_size = max_size
self.queue = [None] * max_size
self.head = 0
self.tail = 0
```
取队中元素:
取队中元素就是返回队头指针指向的元素。
```python
def get_front(self):
if self.head == self.tail:
return None
return self.queue[self.head]
```
入队:
入队操作就是将元素插入到队尾指针的下一个位置,然后将队尾指针加1。
```python
def enqueue(self, value):
if (self.tail + 1) % self.max_size == self.head:
return False
self.queue[self.tail] = value
self.tail = (self.tail + 1) % self.max_size
return True
```
出队:
出队操作就是将队头指针指向的元素弹出,然后将队头指针加1。
```python
def dequeue(self):
if self.head == self.tail:
return None
value = self.queue[self.head]
self.head = (self.head + 1) % self.max_size
return value
```
阅读全文