栈结构实现
栈可以用顺序表实现,也可以用链表实现。
栈的操作
- Stack() 创建一个新的空栈
- push(item) 添加一个新的元素item到栈顶
- pop() 弹出栈顶元素
- peek() 返回栈顶元素
- is_empty() 判断栈是否为空
- size() 返回栈的元素个数
class Stack(object):
'''栈,用顺序表实现'''
def __init__(self):
# Python中,list列表就是顺序表
self.__list = []
def push(self, item):
'''压栈,加入元素'''
self.__list.append(item)
def pop(self):
'''弹出元素'''
return self.__list.pop()
def peek(self):
'''返回栈顶元素,不删除元素'''
if self.is_empty():
return None
else:
return self.__list[-1]
def is_empty(self):
'''判断是否为空'''
return not self.__list
def length(self):
'''返回栈的长度'''
return len(self.__list)
if __name__ == '__main__':
stack = Stack()
print(stack.is_empty())
stack.push(1)
stack.push(2)
stack.push(3)
stack.push(4)
stack.push(5)
print(stack.pop())
print(stack.pop())
print(stack.peek())
print(stack.peek())
print(stack.is_empty())
print(stack.length())
运行结果:
/home/longhui/Desktop/数据结构与算法/venv/bin/python /home/longhui/Desktop/数据结构与算法/venv/MyCode/4_stack/my_stack.py
True
5
4
3
3
False
3
Process finished with exit code 0