python :通过列表模拟栈以及队列

(1)栈的特点

  • 先进后出
    在这里插入图片描述

(1.1)栈的实现 :通过数组模拟栈

  • length() :表示栈的长度
  • is_empty() :栈是否为空,为空返回True,非空返回False
  • push(element) :向栈中添加元素
  • top () :返回栈顶的元素
  • pop() :删除入栈的元素

#栈的实现

class ArryPush(object) :
    def __init__(self):
        self._stack =[]
    def __len__(self):
        return len(self._stack)
    def is_empty(self):
        return len(self._stack) == 0
    def push(self,element):  #入栈
        self._stack.append(element)
    def top(self):   #返回栈顶元素
        if self.is_empty() :
            return False
        return self._stack[-1]
    def pop(self):  # 出栈
        if self.is_empty():
           return False
        val = self._stack[-1]
        del self._stack[-1]
        return val
    def get_push(self):
        return self._stack

(2 ) 队列的特点

  • 先进先出
    在这里插入图片描述

(2.1)队列的方法

  • length() :表示队列的长度
  • is_empty() :队列是否为空,为空返回True,非空返回False
  • enquene(element) :入队
  • first () :返回队列中的元素
  • dequene() : 出队
    #队列的实现
class Arry(object) :
    def __init__(self):
        self.queue = []
    def get_arry(self):
        return self.queue
    def is_empty(self):
        return len(self.queue)== 0
    def __len__(self):
        if self.is_empty() :
            return False
        return len(self.queue)
    def enqueue(self,arg):
        self.queue.append(arg)
    def first(self):
        return self.queue[0]
    def dequeue(self):   #出队
        val  = self.queue[0]    #注意这里的方法
        del self.queue[0]
        return val

(3)双端队列
(3.1)在这里插入图片描述
(3.2)双端队列的实现

class deque(object) :
    def __init__(self):
        self.deque = []
    def self_deque(self):
       return self.deque
    def __len__(self):
        return len(self.deque)
    def first(self):
        return self.deque[0]
    def last(self):
        return self.deque[-1]
    def add_first(self,element):   #左添加
        return self.deque.insert(0,element)
    def add_last(self,element):
        return self.deque.insert(-1,element)
    def delete_first(self):
        del self.deque[0]
    def delete_last(self):
        del self.deque[-1]

猜你喜欢

转载自blog.csdn.net/Mr_zhangbz/article/details/84429112