zoukankan      html  css  js  c++  java
  • 栈和队列

    栈与队列

    栈和队列都是线性表。

    栈是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫作栈顶。

    对栈的基本操作有push(进栈)和pop(出栈),前者相当于插入,后者相当于删除最后一个元素。栈有时又叫作LIFO(Last In First Out)表,即后进先出。

    队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

    栈的实现:

    栈可以使用顺序表实现,也可以使用链表来实现

    这里使用顺序表来实现

    #栈的实现

    class Stack(Object):

           def __init__(self):

                  self.__list = []

           def push (self, item):

                  self.__list.append(item)

           def pop(self):

                  return self.__list.pop()

           def peek(self):

                  if self.__list:

                         return self.__list[-1]

                  else:

                         return None

           def is_empty(self):
                  return self.__list == []

           def size(self):

                  return len(self.__list)

    if __name__ == “__main__”:

           s = Stack()

           s.push(2)

           s.push(3)

           s.pop()

    #队列的实现

    class Queue(object):

           def __init__(self):

                  self.__list = []

           def enqueue (self, item):

                  self.__list.append(item)

           def dequeue(self):

                  return self.pop(0)

           def is_empty(self):

                  return self.__list == []

           def size(self):

                  return len(self.__list)

    if __name__ == “__main__”:

           s = Queue()

           s.enqueue(2)

           s.dequeue()

    #双端队列

    class DouQueue(object):

           def __init__(self):

                  self.__list = []

           def add_front (self, item):

                  self.__list.insert(0, item)

           def add_rear (self, item):

                  self.__list.append(item)

           def pop_front(self):

                  return self.pop(0)

           def pop_front(self):

                  return self.pop()

           def is_empty(self):

                  return self.__list == []

           def size(self):

                  return len(self.__list)

    if __name__ == “__main__”:

           s = DouQueue()

  • 相关阅读:
    如何进行有效沟通避免出现误会
    如何进行有效沟通
    怎样提高自己的团队合作能力
    javaScript简介
    css文本格式详解
    css简介及相关概念
    WebGL10---3D模型的加载与使用
    Canvas绘图与动画详解
    Canvas绘制时钟
    WebGL9----将canvas作为纹理,将动画作为纹理(2)
  • 原文地址:https://www.cnblogs.com/yongfuxue/p/10096612.html
Copyright © 2011-2022 走看看