C++ 按排序顺序打印二叉树级别

C++ 按排序顺序打印二叉树级别,c++,data-structures,queue,priority-queue,C++,Data Structures,Queue,Priority Queue,给定一个数组arr[],它以级别顺序包含完整二叉树的N节点的数据。任务是按排序顺序打印级别顺序遍历 输入: 输入的第一行包含整数T,表示测试用例的数量。对于每个测试用例,第一行取一个表示数组大小的整数n,即节点数,然后是表示树节点的n个空间分隔整数,以级别顺序排列 输出: 对于每个测试用例,输出是级别顺序排序树。 注意:对于每个级别,我们只打印不同的元素 输入: 2 7 7 6 5 4 3 2 1 6 5 6 4 9 2 1 输出: 7 5 6 1 2 3 4 5 4 6 1 2 9 代码:

给定一个数组
arr[]
,它以级别顺序包含完整二叉树的
N
节点的数据。任务是按排序顺序打印级别顺序遍历

输入: 输入的第一行包含整数T,表示测试用例的数量。对于每个测试用例,第一行取一个表示数组大小的整数n,即节点数,然后是表示树节点的n个空间分隔整数,以级别顺序排列

输出: 对于每个测试用例,输出是级别顺序排序树。 注意:对于每个级别,我们只打印不同的元素

输入:

2
7
7 6 5 4 3 2 1
6
5 6 4 9 2 1
输出:

7
5 6
1 2 3 4
5
4 6
1 2 9
代码:

#包括
#包括
使用名称空间std;
int main(){
//代码
int t;
cin>>t;
而(t--)
{优先级队列m;
INTA;
cin>>a;
int k=1;
int-arr[a];
排队等候;
对于(int i=0;i>arr[i];
s、 推(arr[i]);
}
while(s.empty()==false)
{
如果(m.size()==k)
{
while(m.empty()==false)
{
不能这个代码

          while(m.empty()==false)
            {
                cout<<m.top()<<" ";
            }
while(m.empty()==false)
{

coutyeah!!你说对了,这是导致错误的原因!!
          while(m.empty()==false)
            {
                cout<<m.top()<<" ";
            }
          while (!m.empty())
          {
              cout << m.top() << " ";
              m.pop();
          }