本地正确输出提交输出错误
我要提问
发布于2024年3月27日 02:05
阅读数 1.3k
题号1382 哈夫曼树在输入为
2
2 8
3
5 11 30
的情况下在本地跑输出 为10 62 提交后错误答案显示我输出为10 78是为什么呢
- #include<stdio.h>
- #include<stdlib.h>
- typedef struct tr{
- int num;
- int leaf;
- int high;
- int father;
- struct tr* left;
- struct tr* right;
- }tr;
- void sort(int* a,int num){
- int i,j,t=num-1;int flag;
- while(t>=0){
- i=0;flag=0;
- while(i<t){
-
- if(a[i]>a[i+1]){
- j=a[i+1];
- a[i+1]=a[i];
- a[i]=j;
- flag=1;
- }
- i++;
- }
- if(flag==0)
- break;
- t--;
- }
- }
- int search(tr *a,int b,int num){
- for(int i=0;i<num*2-1;i++){
- if(a[i].father==1)
- continue;
- if(a[i].num==b){
- a[i].father=1;
- return i;
- }
- }
- }
- void high(tr *p,int i){
- if(p!=NULL){
- p->high=i;
- i++;
- high(p->left,i);
- high(p->right,i);
- }
- }
- int sum(tr *a){
- if(a!=NULL){if(a->leaf==1){
- return a->num*a->high+sum(a->left)+sum(a->right);
- }else
- return sum(a->left)+sum(a->right);
- }
- return 0;
- }
- int main(){
- int num;
- while(sc...
登录后发布评论
这里的定义不符合标准语法,改为
tr a[2000];int b[1000];