实现链式队列

挑战介绍

实现链式队列入队,出队的方法。链式队列的介绍如下:

  • 链式队列是使用链表实现的队列存储结构。

链式队列结构图解

在这里插入图片描述

内容

  • Node 类是定义的结点。
  • Node 中的 init 方法用于初始化结点,结点包含数据元素 data 和指向下一个结点地址的指针 next。
  • Queue 类是定义的链栈。
  • Queue 中的 init 方法用于初始化链式队列。
  • Queue 中的 enqueue 方法用于进行入队操作,参数 data 用于指定入队的数据元素,它没有返回值。
  • Queue 中的 dequeue 方法用于进行出队操作,它没有参数,需要返回出队的那个数据元素。如果队列是空的,返回 None。

思路

使用链表结构实现队列
在这里插入图片描述

解答

class Node(object):
'''定义Node节点类'''
    def __init__(self, data):
        self.data = data
        self.next = None


class Queue(object):

    def __init__(self):
        self.head = None

    def enqueue(self, data): # data入队
        if self.head is None:
            self.head = Node(data)
        node = self.head
        while node.next:
            node = node.next
        node.next = Node(data)

    def dequeue(self): # 出队
        if self.head is None:
            return None
        node = self.head
        if node.next is None:
            self.head = None
        else:
            self.head = node.next
        return self.head.data # 返回出队数据

参考

题目来源于实验楼在线,思路和解答为我自己编写的。
如有侵权,请联系我删除,邮箱:zheng_zhouxia@qq.com
水平有限,有不当之处烦请批评指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值