이 글은 주로 Python 데이터 구조의 queue 구현에 대한 관련 정보를 소개합니다. 필요한 친구는 이를 참고할 수 있습니다.
Python Queue
Queue Queue는 FIFO(선입선출) 데이터 유형입니다. 대기열에 추가하면 대기열 끝에 새 요소가 추가되고, 대기열에서 빼는 것은 대기열의 선두에서 요소를 삭제하는 것입니다. >목록을 사용하여 대기열 만들기:
queue = [] # 初始化一个列表数据类型对象, 作为一个队列 def enQ(): # 定义一个入栈方法 queue.append(raw_input('Enter New String: ').strip()) # 提示输入一个入队的 String 对象, 调用 Str.strip() 保证输入的 String 值不包含多余的空格 def deQ(): # 定义一个出队方法 if len(queue) == 0: print "Cannot pop from an empty queue!" else: print 'Remove [', `queue.pop(0)`, ']' # 使用反单引号(` `)来代替 repr(), 把 String 的值用引号扩起来, 而不仅显示 String 的值 # queue.pop(0) 总是将在队列中最前面的元素弹出 def viewQ(): # 定义一个显示队列中的内容的方法 print queue CMDs = {'u':enQ, 'o':deQ, 'v':viewQ} # 定义一个 Dict 类型对象, 将字符映射到相应的 function .可以通过输入字符来执行相应的操作 def showmenu(): # 定义一个操作菜单提示方法 pr = """ (E)nqueue (D)equeue (V)iew (Q)uit Enter choice: """ while True: while True: try: choice = raw_input(pr).strip()[0].lower() # Str.strip() 去除 String 对象前后的多余空格 # Str.lower() 将多有输入转化为小写, 便于后期的统一判断 # 输入 ^D(EOF, 产生一个 EOFError 异常) # 输入 ^C(中断退出, 产生一个 keyboardInterrupt 异常) except (EOFError, KeyboardInterrupt, IndexError): choice = 'q' print '\nYou picked: [%s]' % choice if choice not in 'uovq': print 'Invalid option, try again' else: break if choice == 'q': break CMDs[choice]() # 获取 Dict 中字符对应的 functionName, 实现函数调用 if __name__ == '__main__': showmenu()
큐와 스택의 구현은 매우 유사하지만 차이점은 대기열이 항상 첫 번째 요소를 먼저 팝한다는 것입니다. 스택은 항상 마지막 요소를 먼저 팝합니다.
읽어주셔서 감사합니다. 모두에게 도움이 되기를 바랍니다. 이 사이트를 지원해 주셔서 감사합니다!
Python 데이터 구조 대기열 구현과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!