• 【12】python 栈型数据结构模拟、队列型数据结构模拟


    一、压栈操作模拟

    #__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'])
    '''

  • 相关阅读:
    C#设计模式(2)——简单工厂模式
    C#设计模式(1)——单例模式
    静态变量与静态方法
    在服务器操作系统上使用TeamViewer
    51 nod 1439 互质对(Moblus容斥)
    51 nod 1495 中国好区间
    51nod 1103 N的倍数(抽屉原理)
    51 nod 1427 文明 (并查集 + 树的直径)
    51nod 1486 大大走格子(容斥原理)
    hihocoder 1388 fft循环矩阵
  • 原文地址:https://www.cnblogs.com/jiyongjia/p/9826029.html
Copyright © 2020-2023  润新知