zoukankan      html  css  js  c++  java
  • 【DataStructure In Python】Python模拟栈和队列

    用Python模拟栈和队列主要是利用List,当然也可以使用collection的deque。
    以下内容为栈:

    #! /usr/bin/env python
    # DataStructure Stack
    
    class Stack:
    
        def __init__(self, data=None):
            if data is not None:    
                self.stk = [data]
                self.top = 0
            else:
                self.stk = []
                self.top = -1
    
        def __str__(self):
            return " ".join([str(x) for x in self.stk])
                        
        def push(self, data):
            self.stk.append(data)
            self.top += 1
        
        def pop(self):
            if self.top == -1:
                print "Stack is empty"
                return 
            return self.stk.pop()
        
        def isEmpty(self):
            if self.top == -1:
                return 1
            else :
                return 0
    
    if __name__ == "__main__":
        stack = Stack()
        for i in range(10):
            stack.push(i)
        print "push:",stack
        print "pop: ",
        for i in range(3):
            print stack.pop(),
        print ""
        print "left:",stack

    以下内容为队列:

    #! /usr/bin/env python
    # DataStructure Queue
    
    class Queue:
        
        def __init__(self, data=None):
            if data is not None:
                self.que = [data]
            else:
                self.que = []
    
        def __str__(self):
            return " ".join([str(x) for x in self.que])
    
        def isEmpty(self):
            if len(self.que):
                return 0
            else:
                return 1
    
        def enQueue(self, data):
            self.que.append(data)
    
        def deQueue(self):
            return self.que.pop(0)
    
    if __name__ == "__main__":
        queue = Queue()
        for i in range(10, 0, -1):
            queue.enQueue(i)
        print "enQueue:",queue
        print "deQueue:",
        for i in range(3):
            print queue.deQueue(),
        print ""
        print "left:   ",queue
  • 相关阅读:
    (转) c++ 迭代器
    (转) 学习C++ -> 向量(vector)
    latex 模版
    javascript继承篇
    ES6的Map和Set的使用,以及weakMap的一点理解
    JavaScript中的eval函数
    Node.js中的进程与线程
    普通函数与箭头函数的区别是什么?
    git 远程拉去代码 输入用户名密码
    npm 设置镜像
  • 原文地址:https://www.cnblogs.com/bombe1013/p/3587772.html
Copyright © 2011-2022 走看看