#3903. 【模板】链式队列

【模板】链式队列

题目描述

实现链式队列的基本操作:判断队列是否为空、入队、出队。

输入格式

第一行输入一个正整数 tt,表示接下来有 tt 个操作。

接下来 tt 行,每行一个操作,为以下几种之一,具体请查看样例:

  • 11 判断队列是否为空,如果为空输出 truetrue,不为空输出 falsefalse
  • 22 xx 入队一个元素 xx
  • 33 出队一个元素,如果出队成功输出它的值,出队失败输出 falsefalse

输出格式

每个操作需要换行,具体请查看样例。

样例

15
1
2 301
2 407
3
2 64
3
3
3
2 38
2 17
2 69
3
3
3
1
true
301
407
64
false
38
17
69
true

示例代码

  1. Python3Python3
# Author: guke

class Node(object):
    
    def __init__(self, elem):
        self.data = elem
        self.next = None

class SqQueue(object):

    def __init__(self):
        node = Node(None)
        self.front = self.rear = node

    def EnQueue(self, x):
        node = Node(x)
        self.rear.next = node
        self.rear = node

    def DeQueue(self):
        if self.rear == self.front:
            return 'false'
        node = self.front.next
        x = node.data
        self.front.next = node.next
        if self.rear == node:
            self.rear = self.front
        return x

    def is_empty(self):
        if self.rear == self.front:
            return 'true'
        else:
            return 'false'


if __name__ == "__main__":
    q = SqQueue()
    t = int(input())
    for _ in range(t):
        ali = [int(__) for __ in input().split()]
        if ali[0] == 1:
            print(q.is_empty())
        elif ali[0] == 2:
            q.EnQueue(ali[1])
        else:
            print(q.DeQueue())