栈和队列是两种常用的,重要的数据结构。
栈和队列是限定插入和删除只能在表的“端点”进行的线性表。
【栈】
特点:后进先出
1,创建栈(借助列表)
stack = list()
print(stack)
[]
2,判断是否为空栈
stack = list()
print(stack)
if not stack:
print('为空栈')
else:
print('不是空栈')
[]
为空栈
3,添加元素(进栈)
stack = list()
print(stack)
if not stack:
print('为空栈')
else:
print('不是空栈')
stack.append(1)
stack.append(2)
stack.append(3)
print('进栈之后:',stack)
[]
为空栈
进栈之后: [1, 2, 3]
4,删除元素(出栈)
stack = list()
print(stack)
if not stack:
print('为空栈')
else:
print('不是空栈')
stack.append(1)
stack.append(2)
stack.append(3)
print('进栈之后:',stack)
stack.pop() #从右向左删除
print("出栈之后:",stack)
[]
为空栈
进栈之后: [1, 2, 3]
出栈之后: [1, 2]
【队列】
特点:先进先出。
1,入队
queue =[1,2,3]
print("进队之前:",queue)
queue.append(4)
print("进队之后:",queue)
进队之前: [1, 2, 3]
进队之后: [1, 2, 3, 4]
2,出队
queue =[1,2,3]
print("进队之前:",queue)
queue.append(4)
print("进队之后:",queue)
queue.pop(0)
print("出队之后:",queue)
进队之前: [1, 2, 3]
进队之后: [1, 2, 3, 4]
出队之后: [2, 3, 4]
【注意】
无论是出栈还是出队,都要提前判断一下,栈或者队是不是空的(用 if not判断),如果是空的,不能出栈或者出队,会提示索引错误。