美文网首页
一点微小的用前面的链表实现的动态队列和栈

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

作者: 1b64efc60009 | 来源:发表于2016-12-03 23:06 被阅读10次

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

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

相关文章

  • 实现链表_链表实现栈和队列_3

    之前用数组实现栈和队列,虽然有resize操作,但是其实还是静态数组,不是真正的动态。当我们用链表实现栈和队列的时...

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

    动态队列, 单纯的从两头入出入出入出入出. 在一个洞口进进出出的动态栈

  • C语言第七次作业:链表

    707. 设计链表 空指针 空节点 225. 用队列实现栈 链式存储栈 双队列实现栈 232. 用栈实现队列 链式...

  • 数据结构-链表

    章节 动态数组 & 栈 & 队列 与 链表的不同 链表特性 & 图示 链表实现 & 各操作时间复杂度分析 动态数组...

  • ARTS-第三周

    Algorithm 这周实现了最基本的动态数据结构链表,并用数组和链表分别实现了栈和队列。 git代码地址 数组和...

  • 数据结构——栈和队列

    用数组实现栈和队列 用栈实现队列 用队列实现栈 栈和队列的经典算法题最小间距栈宠物收养所 数组实现栈和队列 用数组...

  • 用数组实现栈、队列

    用数组实现一个栈 用数组实现一个队列 用单链表实现给队列

  • 基础算法学习与实践

    数组&链表 1. 快慢指针的方式实现判断链表是否有环 栈和队列 1. 栈实现队列(负负得正) ...

  • 数据结构java描述

    接口 栈 队列 集合 并查集 映射 数组 链表 栈 数组实现 链表实现 队列 数组实现 链表实现 二分搜索树 集合...

  • 7天练|Day2:栈、队列和递归

    关于栈、队列和递归的几个必知必会的代码实现栈用数组实现一个顺序栈用链表实现一个链式栈编程模拟实现一个浏览器的前进、...

网友评论

      本文标题:一点微小的用前面的链表实现的动态队列和栈

      本文链接:https://www.haomeiwen.com/subject/zaocmttx.html