C++打印二叉堆

笔者在学习算法导论中的堆排序和优先队列时,迫切的想要实时打印二叉堆

上网找代码时发现大家都是基于这种数据类型写的

可我的堆排序和优先队列用的是数组

偶然找到一个也是用数组的,结果调半天调不明白,有莫名其妙的bug

干脆自己写了个头文件

引用案例1

输出:(对了最好用等宽字体)

C:\test_heap.exe
---------------------------------------------------------------
                              3
                             / \
                            /   \
                           /     \
                          /       \
                         /         \
                        /           \
                       /             \
                      /               \
                     /                 \
                    /                   \
                   /                     \
                  /                       \
                 /                         \
                /                           \
               /                             |
              6                              8
             / \                            / \
            /   \                          /   \
           /     \                        /     \
          /       \                      /       \
         /         \                    /         \
        /           \                  /           |
       /             |                /            |
      |              |               /             |
      5              9              7              4
     / \            / \            / |            /|
    /   \          /   |          /  |           / |
   /     |        /    |         /   |          /  |
  |      |       /     |        /    |         /   |
  |      |      |      |       /     |        /    |
  |      |      |      |      |      |       /     |
  1      26     35     67     49     16     54     85
 / |    /|     /
|  |   / |    /
|  |  |  |   /
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
12 34 20 10 20
---------------------------------------------------------------
---------------------------------------------------------------
                              3
                              |
              6 ------------------------------8
              |                               |
      5 --------------9               7 --------------4
      |               |               |               |
  1 ------26      35------67      49------16      54------85
  |       |       |
12--34  20--10  20-
---------------------------------------------------------------

进程已结束,退出代码0

引用案例2

输出:

C:\Users\msiadmin\CLionProjects\ye++\sf_heap_priority_queue.exe
input length :>10
1 23 4 5 6 7 8 9 6 2
---------------------------------------------------------------
                              23
                              |
              9 ------------------------------8
              |                               |
      6 --------------6               7 --------------4
      |               |
  5 ------1       2 ---
---------------------------------------------------------------
now the no.2 element(9) has been moved!
---------------------------------------------------------------
                              23
                              |
              6 ------------------------------8
              |                               |
      5 --------------6               7 --------------4
      |
  2 ------1
---------------------------------------------------------------
now insert a new element with the value of 50.
the no.10 element has been increased!
previous:-1000000->now:50
---------------------------------------------------------------
                              50
                              |
              23------------------------------8
              |                               |
      5 --------------6               7 --------------4
      |               |
  2 ------1       6 ---
---------------------------------------------------------------

the element with max key is :>50
---------------------------------------------------------------
                              50
                              |
              23------------------------------8
              |                               |
      5 --------------6               7 --------------4
      |               |
  2 ------1       6 ---
---------------------------------------------------------------
the no.7 element has been increased!
previous:4->now:60
---------------------------------------------------------------
                              60
                              |
              23------------------------------50
              |                               |
      5 --------------6               7 --------------8
      |               |
  2 ------1       6 ---
---------------------------------------------------------------

the element with max key is :>60
now it has been moved.
---------------------------------------------------------------
                              50
                              |
              23------------------------------8
              |                               |
      5 --------------6               7 --------------6
      |
  2 ------1
---------------------------------------------------------------
now the no.2 element(23) has been moved!
---------------------------------------------------------------
                              50
                              |
              6 ------------------------------8
              |                               |
      5 --------------1               7 --------------6
      |
  2 ---
---------------------------------------------------------------

进程已结束,退出代码0

头文件:(删掉了没用的)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值