算法学习day16----Python数据结构--模拟队列

发布于:2025-07-16 ⋅ 阅读:(19) ⋅ 点赞:(0)

久违的更新,主包也是终于回到家里了

输入样例

10
push 6
empty
query
pop
empty
push 3
push 4
pop
query
push 6

输出样例

NO
6
YES
4

解决代码(今天没写笔记了,题目比较简单,可以仿写之前写过的模拟栈)

class Queue:
    def __init__(self):
        self.queue = []
    
    def push(self, x):
        self.queue.append(x)
    
    def pop(self):
        if not self.queue:
            return "queue is empty"
        return self.queue.pop(0) #头部弹出
    
    def query(self):
        if not self.queue:
            return "queue is empty"
        return self.queue[0]
    
    def is_empty(self):
        return "YES" if not self.queue else "NO"


def main():
    import sys
    input = sys.stdin.readline  
    m = int(input().strip())    
    queue = Queue()
    output = []
    
    for _ in range(m):          
        parts = input().split() 
        if not parts:
            continue  # 跳过空行
        
        op = parts[0]
        
        if op == 'push':
            if len(parts) < 2:
                output.append("error: missing value")
                continue
            try:
                x = int(parts[1])
                queue.push(x)
            except ValueError:
                output.append("error: invalid number")
        
        elif op == 'pop':
            res = queue.pop()
            if res == "queue is empty":
                output.append(res)
            #  pop 成功,不输出
        
        elif op == 'query':
            res = queue.query()
            output.append(str(res))
        
        elif op == 'empty':
            output.append(queue.is_empty())
    
    print('\n'.join(output))  # 统一输出结果


if __name__ == "__main__":
    main()

算是一个回顾题吧


网站公告

今日签到

点亮在社区的每一天
去签到