堆栈(英语:stack)又称为栈或堆叠,是计算机科学中的一种抽象数据类型,只允许在有序的线性数据集合的一端(称为堆栈顶端,英语:top)进行加入数据(英语:push)和移除数据(英语:pop)的运算。因而按照后进先出(LIFO, Last In First Out)的原理运作。
常与另一种有序的线性数据集合队列相提并论。
堆栈常用一维数组或链表来实现。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
""" @author:yzk13 @time: 2018/04/19 栈 """
class Stack(object): """ 栈 """ def __init__(self): """ 初始化 """ self.items = []
def is_empty(self): """ 栈是否为空 :return: """ return self.items == []
def peek(self): """ 返回栈顶元素 :return: """ return self.items[-1]
def size(self): """ 返回栈的大小 :return: """ return len(self.items)
def push(self, item): """ 进栈 :return: """ self.items.append(item)
def pop(self): """ 删除栈最顶层的元素,并返回这个元素 出栈 :return: """ return self.items.pop()
def print(self): """ 打印 :return: """ print(self.items)
def sort(self): """ 排序 :return: """ self.items.sort()
if __name__ == '__main__': s = Stack() s.push(3) s.push(-2) s.push(7) s.push(6) s.push(1) s.print()
print('栈大小为: ', s.size())
print('出栈元素为: ', s.pop()) s.print()
print('栈顶为: ', s.peek())
s.sort()
s.print()
|