zoukankan      html  css  js  c++  java
  • Python列表操作——模拟实现栈和队列

    1.实现栈:

    stack=[]
    
    def pushit():
        stack.append(raw_input('Enter New String:').strip())
    def popit():
        if len(stack)==0:
            print 'can not pop anything from a empty stack'
        else:
            print 'Remove[',repr(stack.pop()),']'
    def viewstack():
        print stack
    
    CMDs={'u':pushit,'o':popit,'v':viewstack}
    
    def showmenu():
        pr="""
        p(U)sh
        p(O)p
        (V)iew
        (Q)uit
    
        Enter choice:"""
        while True:
            while True:
                try:
                    choice=raw_input(pr).strip().lower()
                except (EOFError,KeyboardInterrupt,IndexError):
                    choice='q'
                print '
    You picked:[%s]' %choice
                if choice  not in 'uovq':
                    print'Invaild option,try again'
                else:
                    break
            if choice=='q':
                break
            CMDs[choice]()
            
    
    
    if __name__=='__main__':
        showmenu()

    2.实现队列

    queue=[]
    
    def enQ():
        queue.append(raw_input('Please enter a new element:').strip())
    
    def deQ():
        if len(queue)==0:
            print "Error: cannot pop anything from a empty queue"
        else:
            print 'Remove [',queue.pop(0),']'
    
    def viewshow():
        print queue
    CMDs={'e':enQ,'d':deQ,'v':viewshow}
    def showmenu():
        pr='''
          (E)nQ
          (D)eQ
          (V)iewshow
          (Q)uit
    
          Enter your choice: 
        '''
        while True:
            while True:
                try:
                    choice=raw_input(pr).strip()[0].lower()
                except (EOFError,KeyboardInterrupt,IndexError):
                    choice='q'
                print 'You picked [%s]' % choice
                if choice not in 'edvq':
                    print 'Invail option, Try again'
                else:
                    break
            if choice=='q':
                break
            CMDs[choice]()
    if __name__=='__main__':
        showmenu()
  • 相关阅读:
    第一个爬虫和测试
    数学规律
    自定义手绘
    tqqqy的成绩表
    Linux常用命令-netstat
    文档查看命令 cat more less tail head
    Linux三剑客-常用命令
    IO多路复用模型
    redis 的线程模型
    为什么需要缓存?
  • 原文地址:https://www.cnblogs.com/itdyb/p/5382492.html
Copyright © 2011-2022 走看看