数据结构,﹛40,30,92,16,20,47,25,56,55,35﹜建立一个大根堆!!!我先把
答案:2 悬赏:10 手机版
解决时间 2021-01-22 15:58
- 提问者网友:不要迷恋哥
- 2021-01-22 01:43
数据结构,﹛40,30,92,16,20,47,25,56,55,35﹜建立一个大根堆!!!我先把
最佳答案
- 五星知识达人网友:玩世
- 2021-01-22 01:52
没要求的话直接变就好了追问直接变是从下往上变还是从上往下变?追答可能跟你说的不是同一个。我说的直接是说一个一个插,然后不断调整为大根堆追问你确定是插一个调整一个,不是整体在二叉树中调整嘛?追答题目有说明是用什么方法,你就用他说的,没说那就是都可以阿,用这个应该更轻松一些,这个无所谓的阿追问那从二叉树中调整是从上到下还是从下到上那?追答自底向上追问和转化成初始堆一样呗追答不知道你说的转化成初始堆是什么。我只知道两个方法,一个就是使用堆的插入,进行n次插入,就是我说的方法。第二种就是自底向上不断调整成大顶堆。估计你说的是这种把
全部回答
- 1楼网友:躲不过心动
- 2021-01-22 03:31
初始堆就是大根堆,只是是第一次(初始序列)调整,第一次必须是自底向上逐个调整,以后(第一次交换后)是自上向下调整(因为除了第一个即堆顶元素,其他都是已经调整好的堆)。过程:
先把数据画出一颗二叉树:
40
30 92
16 20 47 25
56 55 35
从最后一个数据的双亲(20)开始,数据最大的成为双亲
20和35交换;下一个双亲(16),16和56交换;
双亲92不动;结果如下
40
30 92
56 35 47 25
16 55 20
双亲30,相对麻烦些:首先是30和56交换,然后再交换30和55,结果:
40
56 92
55 35 47 25
16 30 20
最后是双亲40(根);首先40和92交换,然后40和47交换,结果就是调整好的大顶堆:
92
56 47
55 35 40 25
16 30 20
即:{92,56,47,55,35,40,25,16,30,20}追问太厉害了!
先把数据画出一颗二叉树:
40
30 92
16 20 47 25
56 55 35
从最后一个数据的双亲(20)开始,数据最大的成为双亲
20和35交换;下一个双亲(16),16和56交换;
双亲92不动;结果如下
40
30 92
56 35 47 25
16 55 20
双亲30,相对麻烦些:首先是30和56交换,然后再交换30和55,结果:
40
56 92
55 35 47 25
16 30 20
最后是双亲40(根);首先40和92交换,然后40和47交换,结果就是调整好的大顶堆:
92
56 47
55 35 40 25
16 30 20
即:{92,56,47,55,35,40,25,16,30,20}追问太厉害了!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯