12python 栈型数据结构模拟队列型数据结构模拟

Posted 北鼻coder

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12python 栈型数据结构模拟队列型数据结构模拟相关的知识,希望对你有一定的参考价值。

一、压栈操作模拟

#__author:"吉*佳"
#date: 2018/10/21 0021
#function:栈

# 栈:即是先进后出的一种数据结构

# (1)模拟压栈操作
stack=[]
flag=True
while flag:
    temp = input("请输入压栈元素[输入0代表退出]:")
    if temp!=str(0):
        stack.append(temp)
    else:
        print(\'压栈结束,栈内元素为:\', stack)
        # 借助flag退出while循环
        flag=False

\'\'\'
输出操作:
请输入压栈元素[输入0代表退出]:1
请输入压栈元素[输入0代表退出]:2
请输入压栈元素[输入0代表退出]:3
请输入压栈元素[输入0代表退出]:4
请输入压栈元素[输入0代表退出]:5
请输入压栈元素[输入0代表退出]:0
压栈结束,栈内元素为: [\'1\', \'2\', \'3\', \'4\', \'5\']
\'\'\'

 

二、出栈模拟

#__author:"吉勇佳"
#date: 2018/10/21 0021
#function:栈

# 栈:即是先进后出的一种数据结构

# (1)模拟压栈操作
stack=[]
flag=True
while flag:
    temp = input("请输入压栈元素[输入0代表退出]:")
    if temp!=str(0):
        stack.append(temp)
    else:
        print(\'压栈结束,栈内元素为:\', stack)
        # 借助flag退出while循环
        flag=False

\'\'\'
输出操作:
请输入压栈元素[输入0代表退出]:1
请输入压栈元素[输入0代表退出]:2
请输入压栈元素[输入0代表退出]:3
请输入压栈元素[输入0代表退出]:4
请输入压栈元素[输入0代表退出]:5
请输入压栈元素[输入0代表退出]:0
压栈结束,栈内元素为: [\'1\', \'2\', \'3\', \'4\', \'5\']
\'\'\'
print("************************分隔符*******************")
tt=stack.pop()
print("出栈元素",tt)
print("栈内元素信息:",stack)
tt=stack.pop()
print("出栈元素",tt)
print("栈内元素信息:",stack)
tt=stack.pop()
print("出栈元素",tt)
print("栈内元素信息:",stack)

\'\'\'
输出
请输入压栈元素[输入0代表退出]:1
请输入压栈元素[输入0代表退出]:2
请输入压栈元素[输入0代表退出]:3
请输入压栈元素[输入0代表退出]:4
请输入压栈元素[输入0代表退出]:5
请输入压栈元素[输入0代表退出]:0
压栈结束,栈内元素为: [\'1\', \'2\', \'3\', \'4\', \'5\']
************************分隔符*******************
出栈元素 5
栈内元素信息: [\'1\', \'2\', \'3\', \'4\']
出栈元素 4
栈内元素信息: [\'1\', \'2\', \'3\']
出栈元素 3
栈内元素信息: [\'1\', \'2\']
\'\'\'

 

入队与出队操作

队列:

即是先进先出的一种数据结构
在python中,可以通过 collections模块。 queue = collections.deque()来实现入队操作 。相应的出队操作可以用queue.leftpop()即可

#__author:"吉*佳"
#date: 2018/10/21 0021
#function:队列

import collections

# 队列:即是先进先出的一种数据结构

# (1)模拟入队操作。队列有如下模块可以实现
queue = collections.deque()

# 入队
flag=True
while flag:
    temp = input("请输入入队元素[输入0代表退出]:")
    if temp!=str(0):
        queue.append(temp)
    else:
        print(\'入队结束,队内元素为:\', queue)
        # 借助flag退出while循环
        flag=False


\'\'\'
输出:
请输入入队元素[输入0代表退出]:1
请输入入队元素[输入0代表退出]:2
请输入入队元素[输入0代表退出]:3
请输入入队元素[输入0代表退出]:4
请输入入队元素[输入0代表退出]:5
请输入入队元素[输入0代表退出]:0
入队结束,队内元素为: deque([\'1\', \'2\', \'3\', \'4\', \'5\'])
\'\'\'


# 出队模拟
print("************************分隔符*******************")
tt=queue.popleft()
print("出队元素",tt)
print("队内元素信息:",queue)
tt=queue.popleft()
print("出队元素",tt)
print("队内元素信息:",queue)
tt=queue.popleft()
print("出队元素",tt)
print("队内元素信息:",queue)

\'\'\'
输出:
请输入入队元素[输入0代表退出]:1
请输入入队元素[输入0代表退出]:2
请输入入队元素[输入0代表退出]:3
请输入入队元素[输入0代表退出]:4
请输入入队元素[输入0代表退出]:5
请输入入队元素[输入0代表退出]:0
入队结束,队内元素为: deque([\'1\', \'2\', \'3\', \'4\', \'5\'])
************************分隔符*******************
出队元素 1
队内元素信息: deque([\'2\', \'3\', \'4\', \'5\'])
出队元素 2
队内元素信息: deque([\'3\', \'4\', \'5\'])
出队元素 3
队内元素信息: deque([\'4\', \'5\'])
\'\'\'

 

 

 

以上是关于12python 栈型数据结构模拟队列型数据结构模拟的主要内容,如果未能解决你的问题,请参考以下文章

数组结构和算法--2环绕队列

4,泛型环形队列

只懂机器学习就 OUT 了,下一代数据科学家得是“全栈型”

python中用队列模拟递归(广度遍历)

堆栈模拟队列

7-22 堆栈模拟队列