一点微小的用前面的链表实现的动态队列和栈

动态队列, 单纯的从两头入出入出入出入出.

from linkedlist import *

class Queue(LinkedList):
    def __init__(self):
        LinkedList.__init__(self)
        self.init_list(data = [0])
        
        self.qhead = 0
        self.qtail = 0

        self.qt_post = self.qhead

    def is_empty(self):
        if self.qhead == self.qtail:
            return True
        else:
            return False

    def get_qt_post(self):
        p = self.qhead
        while p.next != 0:
            p =  p.next

        self.qt_post = p

    def enqueue(self, item):

        if self.is_empty():
            self.qhead = self.head
            self.qhead.data = item

        else:
            self.get_qt_post()

            node = Node(item)

            self.qt_post.next = node
            node.next = self.qtail


    def dequeue(self):
        #qwhen qhead.next == qtail, queue empty
        if self.is_empty():
            print("the queue is empty, no element to dequeue\n")
            return 
        
        else:
            dequeue_val = self.qhead.data
            self.qhead = self.qhead.next
            return dequeue_val

在一个洞口进进出出的动态栈

from linkedlist import *

class Stack(LinkedList):
    def __init__(self, data=[0]):
        LinkedList.__init__(self)
        self.top = self.get_length()
        self.init_list(data)


    def push(self, item):   
        self.append(item)
        self.top += 1

            
    def pop(self):  
        if self.top < 0:
            print ("no element to pop\n")
            return 

        else:
            p = self.head

            while p.next != 0:
                p = p.next
            pop_val = p.data

            self.delete(self.get_length()-1)
            self.top -= 1

            return pop_val


    def peek(self):
        p = self.head

        while p.next != 0:
            p = p.next

        return p.data

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

推荐阅读更多精彩内容

  • 栈 栈的英文单词是Stack,它代表一种特殊的线性表,这种线性表只能在固定一端(通常认为是线性表的尾端)进行插入,...
    Jack921阅读 1,521评论 0 5
  • 栈 栈是限定仅在表尾进行插入和删除操作的线性表。 栈又称为后进先出(Last In First Out )的线性表...
    jtsky阅读 664评论 0 0
  • 亲爱的家人们!生活中我们会遇到各种各样困难,这很正常并且一定也是暂时,除非我们自己向困难低头,人的一生,不可能永远...
    若凝常一阅读 517评论 0 0
  • 文:半夏 金秋,朔风 踏上旅程 目的地 古都开封 大宋的东京汴梁城 瞬间,穿...
    llz半夏阅读 313评论 0 2
  • 隔河相望尚有年, 唯把相思埋心间。 天上佳期纵有时, 人间难得觅红颜。
    爱上奋斗阅读 135评论 0 0