逆置顺序表数据结构(逆置顺序表数据结构怎么写)
逆置顺序表数据结构
简介
逆置顺序表,又称栈(Stack),是一种先进后出(LIFO)的数据结构。它类似于现实生活中的堆叠物品,后放入的物品总是最先被取出。
操作
顺序表有以下基本操作:
Push(x)
:向栈顶压入元素 x。
Pop()
:弹出并返回栈顶元素,如果栈为空则返回错误。
Peek()
:返回栈顶元素,但不弹出。
IsEmpty()
:检查栈是否为空。
实现
顺序表可以使用数组或链表实现。
数组实现
``` class Stack:def __init__(self):self.data = []def push(self, x):self.data.append(x)def pop(self):if self.is_empty():raise IndexError("Cannot pop from an empty stack")return self.data.pop()def peek(self):if self.is_empty():raise IndexError("Cannot peek an empty stack")return self.data[-1]def is_empty(self):return len(self.data) == 0 ```
链表实现
``` class Node:def __init__(self, x):self.data = xself.next = Noneclass Stack:def __init__(self):self.top = Nonedef push(self, x):new_node = Node(x)new_node.next = self.topself.top = new_nodedef pop(self):if self.is_empty():raise IndexError("Cannot pop from an empty stack")top = self.topself.top = top.nextreturn top.datadef peek(self):if self.is_empty():raise IndexError("Cannot peek an empty stack")return self.top.datadef is_empty(self):return self.top is None ```
应用场景
逆置顺序表在计算机科学中有广泛的应用,包括:
括号匹配检查
递归函数调用
表达式求值
调度算法