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()
  • 相关阅读:
    5/14 补沙
    5/21 购填缝剂
    5/30 购水不漏
    6/1 购防水
    6/4 补防水
    5/21 人工
    5/7 增购电线
    6/2 补防水
    5/4 瓦工进场
    5/31 补瓷砖
  • 原文地址:https://www.cnblogs.com/itdyb/p/5382492.html
Copyright © 2011-2022 走看看