`
Tonyguxu
  • 浏览: 278526 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Python练习】利用列表List构建栈和队列

 
阅读更多


栈是一个后进先出(LIFO)的数据结构,通常具有两个基本方法 push和pop,push负责将新元素添加到栈尾,pop负责将栈尾的元素删除。

 

#!/usr/bin/env python
""
stack = []
def push():
    stack.append(raw_input('Enter new string :').strip())

def pop():
    if len(stack) == 0:
        print 'Cannot pop from an empty stack!'
    else:
        print 'Removed [', `stack.pop()` , ']'
    
def viewStack():
    print stack     #
CMDs = {'u':push, 'o':pop, '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()[0].lower()
            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     
        else:
            CMDs[choice]()
if __name__ == '__main__':
    showMenu()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

队列

队列是一个先进先出(FIFO)的数据结构,通常具有两个基本方法 push和pop,en负责将新元素添加到队列尾部,de负责将队列首部的元素删除。

#!/usr/bin/env python
""
queue = []
def en():
    queue.append(raw_input('Enter new string :').strip())

def de():
    if len(queue) == 0:
        print 'Cannot delete from an empty queue!'
    else:
        print 'Removed [', `queue.pop(0)` , ']'
    
def viewQueue():
    print queue
 
分享到:
评论

相关推荐

    python入门-leetcode面试题解之第232题用栈实现队列.zip

    在Python中,我们可以使用`list`作为栈的实现,因为它们具有push(append)和pop(pop)方法,非常适合构建栈。下面是一个简单的示例代码实现: ```python class MyQueue: def __init__(self): """ Initialize ...

    《Python算法和数据结构问题解答》.zip

    而在JAVA中,可以利用`ArrayList`、`LinkedList`、`Deque`等接口和类来构建各种数据结构。这些语言也允许直接操作内存,因此可以自定义更高效的数据结构,但同时也需要开发者具备更高的内存管理能力。 这个压缩包...

    Python 中文数据结构和算法教程.zip

    在Python中实现这些数据结构和算法时,我们可以利用内置的容器类型,或者自定义类来构建。例如,使用列表模拟栈或队列,使用字典实现哈希表等。同时,Python的标准库`collections`提供了更多高级数据结构,如deque...

    邓俊辉-数据结构,python实现.zip

    Python中的列表(list)就是一种动态数组,支持随机访问和快速插入删除。 2. **链表**:链表是由一系列节点组成,每个节点包含数据和指向下一个节点的引用。Python中没有内置的链表数据结构,但可以通过类来实现。 ...

    算法与数据结构练习(主要是Python3)。.zip

    在Python3中,我们可以利用内置的`sorted()`函数和`list.sort()`方法进行排序,同时,Python标准库`heapq`提供了堆操作,`bisect`模块支持二分查找。 这个压缩包可能包含的练习和资料可能涵盖了这些概念的实例和...

    代码集和收藏项目目录。包括数据结构,算法,练习等的简单实现以及收藏项目列表。.zip

    这里可能包括了Python的list、tuple、dict、set等数据结构的讲解,以及如何利用Python的动态特性灵活构建复杂的数据结构。 6. **练习与实践**: 学习数据结构不仅仅是理论知识,还需要大量的编程练习来巩固和提升...

    数据结构大作业 By python.zip

    Python作为一种高级编程语言,内置了多种数据结构,如列表(List)、元组(Tuple)、集合(Set)和字典(Dictionary)。这些数据结构在实际编程中扮演着重要角色: 1. **列表(List)**:列表是最常用的数据结构,...

    通过Python学习数据结构和算法.zip

    在Python中,列表(list)就是一种动态数组,可以方便地添加、删除和访问元素。 2. **链表**:链表不同于数组,它的元素不是连续存储的,而是通过指针链接。Python中没有内置的链表,但可以通过定义类来实现单链表...

    对使用 Python 学习数据结构和算法的资料进行收集并学习.zip

    同时,利用在线平台进行互动式学习,例如Codecademy、Coursera、edX等,可以提供结构化的课程和实战练习。 总的来说,Python是学习数据结构和算法的理想工具,因为它具有易读性强、库支持丰富等优点。通过这个...

    Python教学-PPT

    PPT可能会包含一些实战练习,例如编写简单的脚本、处理数据集或构建小型应用程序,以帮助学习者将理论知识转化为实际技能。 6. **学习资源**: Python社区提供了丰富的学习资源,如官方文档、在线教程、论坛讨论等...

    常见数据结构与算法的Python实现及学习笔记.zip

    在Python中,列表(list)就是动态数组的实现,支持添加、删除和索引操作。 2. **链表**:链表由一系列节点组成,每个节点包含元素和指向下一个节点的引用。Python中没有内置链表,但可以通过创建类来模拟链表,...

    Python编程实践gwpy2-code

    - 栈与队列:Python内置的`collections`模块提供了`deque`双端队列,可用于实现栈和队列。 - 排序算法:如快速排序、归并排序等,Python内置的`sorted()`函数和`list.sort()`方法可用于排序。 - 图书馆搜索算法:...

    大学复习资料-数据结构(python).rar

    Python的list可以模拟栈操作,如append()用于压栈,pop()用于弹栈。 4. **队列**:先进先出(FIFO)的数据结构,常用于任务调度和消息传递。Python的collections模块提供了deque(双端队列)类,支持两端的插入和...

    Python 开源项目之「自学编程之路」

    在Python中,常用的数据结构有列表(List)、元组(Tuple)、集合(Set)和字典(Dictionary)。列表是最通用的序列类型,可以容纳任何类型的对象,支持索引、切片和动态增删元素。元组与列表类似,但一旦创建就不能...

    蓝桥杯python第5天,python-Day05.rar

    10. **数据结构高级应用**:可能讨论了堆栈(使用list模拟)、队列(使用collections.deque实现)、树和图等复杂数据结构的构建和操作。 11. **算法和问题解决**:通过实例教学了如何运用Python解决实际问题,例如...

    算法和数据结构的实现_C++_Python_下载.zip

    - **Python实现**:Python的内置数据结构如list、dict、set等已经实现了常见的数据结构,同时可以利用numpy、pandas等库进行高级数据分析。 - **在线学习平台**:LeetCode、HackerRank等提供大量的算法练习题,...

    双向列表--适合初学者

    双向列表是一种数据结构,它与普通列表...在实际项目中,双向列表常用于实现高效的栈、队列或实现需要快速访问相邻元素的复杂数据结构。通过练习和实践,初学者可以更好地掌握这一概念,并将其应用到自己的编程实践中。

    操作系统,数据结构,网络,python,go,web.zip

    在Python中,有内置的数据结构如list、tuple、dict和set,以及Numpy和Pandas等库,用于处理大规模的数值计算和数据分析。 Go语言是由Google开发的,设计目的是提高开发者的生产力和系统的可维护性。Go语言的数据...

Global site tag (gtag.js) - Google Analytics