zoukankan      html  css  js  c++  java
  • 【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'])
    '''

  • 相关阅读:
    php mysql基本操作
    php之curl的使用
    linux下操作php和apache
    ThinkPHP_目录结构和初始化
    ubuntu下计划任务cron的使用
    linux下操作mysql
    php操作csv文件
    HTML5基础一:常用布局标签
    liunx下shell脚本的创建和使用
    一个完整的ajax登陆实例
  • 原文地址:https://www.cnblogs.com/jiyongjia/p/9826029.html
Copyright © 2011-2022 走看看