文章

2

粉丝

50

获赞

0

访问

2.2k

头像
本地正确输出提交输出错误
我要提问
发布于2024年3月27日 02:05
阅读数 1.1k

题号1382 哈夫曼树在输入为

2
2 8
3
5 11 30

的情况下在本地跑输出 为10 62 提交后错误答案显示我输出为10 78是为什么呢

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. typedef struct tr{
  4. int num;
  5. int leaf;
  6. int high;
  7. int father;
  8. struct tr* left;
  9. struct tr* right;
  10. }tr;
  11. void sort(int* a,int num){
  12. int i,j,t=num-1;int flag;
  13. while(t>=0){
  14. i=0;flag=0;
  15. while(i<t){
  16.  
  17. if(a[i]>a[i+1]){
  18. j=a[i+1];
  19. a[i+1]=a[i];
  20. a[i]=j;
  21. flag=1;
  22. }
  23. i++;
  24. }
  25. if(flag==0)
  26. break;
  27. t--;
  28. }
  29. }
  30. int search(tr *a,int b,int num){
  31. for(int i=0;i<num*2-1;i++){
  32. if(a[i].father==1)
  33. continue;
  34. if(a[i].num==b){
  35. a[i].father=1;
  36. return i;
  37. }
  38. }
  39. }
  40. void high(tr *p,int i){
  41. if(p!=NULL){
  42. p->high=i;
  43. i++;
  44. high(p->left,i);
  45. high(p->right,i);
  46. }
  47. }
  48. int sum(tr *a){
  49. if(a!=NULL){if(a->leaf==1){
  50. return a->num*a->high+sum(a->left)+sum(a->right);
  51. }else
  52. return sum(a->left)+sum(a->right);
  53. }
  54. return 0;
  55. }
  56. int main(){
  57. int num;
  58. while(sc...
登录查看完整内容


登录后发布评论

1 条评论
snake VIP
2024年3月27日 08:38

这里的定义不符合标准语法,改为

tr a[2000];int b[1000];

赞(0)