编程题
优先级队列 ## 题目描述 已知进入优先级队列的各结点的优先级(为<20的正整数,该值越小,则表示优先级越高),以及各结点入队列和出队列的操作序列,要求输出各结点的出队列顺序(输出编号)。注意,结点的编号为入队列时的序号,且从1开始计起。任何时刻如果存在优先级相同的结点,最先进入队列的结点先出队列。 ## 输入描述 输入文件中包含多个测试数据。每个测试数据描述了一个优先级队列的操作序列:第一行为一个自然数n,5≤n≤20,表示结点数;接下来有2*n行,描述了这n个结点的入队列和出队列操作序列,如果为push,则表示为入队列,后面有一个正整数表示该结点的优先级,如果为pop,则表示当前优先级最高的结点出队列。输入文件最后一行为0,表示输入结束。 输入数据确保不会出现队列为空时执行pop操作。 ## 输出描述 对每个测试数据,输出n个结点出队列的顺序(序号),相邻两个结点之间用符号“->”连接。 ## 样例输入 ```txt 6 push 17 push 14 push 15 pop pop push 5 pop push 18 push 9 pop pop pop 0 ``` ## 样例输出 ```txt 2->3->4->6->1->5 ```
查看答案
赣ICP备20007335号-2