首页 > 其他 > 详细

数据结构1 - 05-树7 堆中的路径

时间:2020-04-04 13:45:53      阅读:66      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 技术分享图片

 

 

技术分享图片

 

 

 1 #include<stdio.h>
 2 #define MAXN 1002
 3 int H[MAXN],N,M,r[MAXN];
 4 void inserth(int data);
 5 void read();
 6 void printr();
 7 int main(){
 8     read();
 9     printr();
10     return 0;
11 }
12 
13 void inserth(int data){
14     H[0]++;
15     H[H[0]] = data;
16     if(H[0]==1) return;
17     //根结点 
18     else{ //非根结点
19        int i;
20        for(i=H[0];i>1;i=i/2){
21            if(data < H[i/2]) H[i] = H[i/2];
22            else break;
23        }
24        H[i] = data;
25     }
26 }
27 void read(){
28     H[0] = 0;
29     scanf("%d %d",&N,&M);
30     int i,data;
31     for(i=1;i<=N;i++){
32         scanf("%d",&data);
33         inserth(data);
34     }
35     return;
36 }
37 void printr(){
38     int i,data,j;
39     for(i=0;i<M;i++){
40         scanf("%d",&r[i]);
41     }
42     for(i=0;i<M;i++){
43         if(r[i] <= H[0]){
44             data = r[i];
45             for(j=data;j>=1;j=j/2){
46                 printf("%d",H[j]);
47                 if(j!=1) printf(" ");
48             }
49             printf("\n");
50         }
51     }
52 }

总结:在完成的过程中,向小根堆中插入值后,进行调整出现了问题。

数据结构1 - 05-树7 堆中的路径

原文:https://www.cnblogs.com/Learn-Excel/p/12631024.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!