python 实现堆栈和队列

# -*- coding:utf-8 -*-
# auther="金木水火"
class stack():
    '''
    堆栈数据结构
    1.只有一个出/入口尽心改数据添加
    2.没有位置概念
    3.后进先出
    '''
    def __init__(self):
        #禁止外部调用
        self.__st=list()
    def inStack(self,Value):
        self.__st.append(Value)
    def outStack(self):
        self.__st.pop()
    def sizeStack(self):
        return  len(self.st)
class queue():
    '''
    队列数据结构
    1.队列只允许一端进,另外一端出的线性表
    2.先进先出
    3.增加只能在队尾,删除只能在队首
    '''
    def __init__(self):
        # 禁止外部调用
        self.__q=list()
    def inQueue(self,Vaue):
        self.__q.append(Vaue)
        return  self.__q
    def outQueue(self):
        return  self.__q.pop(0)
    def deleteIteam(self):
        del self.__q[0]
        return self.__q
class Dqueue():
    '''
    双端队列数据结构
    1.双端队列可以在队尾和队首入队和出队
    2.可以先进先出也可以先进后出
    '''
    def __init__(self):
        self.__dq=list()
    def inFromHead(self,Value):
        self.__dq.insert(0,Value)
        return self.__dq
    def inFromEnd(self,Value):
        self.__dq.append(Value)
        return self.__dq
    def outFronHead(self):
        return  self.__dq.pop(0)
    def outFronEnd(self):
        return self.__dq.pop()
if  "__main__" ==  __name__:
    dq=Dqueue()
    d=dq.inFromEnd(1)
    d = dq.inFromEnd(2)
    d = dq.outFronEnd()
    print(d)

    # q=queue()
    # d=q.inQueue(1)
    # print(d)
    # d=q.inQueue(2)
    # print(d)
    # d=q.outQueue()
    # print(d)
    # d = q.deleteIteam()
    # print(d)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容