我为什么要敲代码 2016-07-19 02:29 采纳率: 0%
浏览 1623

C++构造哈夫曼树,运行时只能输入一个节点的初值,怎么回事,求指点

如题,C++构造哈夫曼树,运行时只能输入一个节点的初值,然后就是 process exited with return value 3221225477,怎么回事,求指点。
代码如下:
#include
#define Maxval 10000
using namespace std;
typedef char Datatype;
typedef struct
{
Datatype data;
float weight;
int lchild,rchild,parent;
}HufmanTree;

void ConstHufmanTree(HufmanTree HTree[],int n)
{
int p1,p2,i,j;
float small1,small2;
for(i=0;i<=2*n-1;i++)
{
HTree[i].weight=0.0;
HTree[i].data='0';
HTree[i].parent=0;
HTree[i].lchild=0;
HTree[i].rchild=0;
}//对所有2*n-1个节点进行赋初值;
for(i=0;i {
cin>>HTree[i].data;
cin>>HTree[i].weight;
} //对前n个节点的data和权值进行赋值;

for(i=n;i<2*n-1;i++)
{
p1=p2=0;
small1=small2=Maxval;
for(j=0;j<i;j++)
{
if(HTree[j].parent==0)
{
if(HTree[j].weight<small1)
{
small2=small1;
small1=HTree[j].weigh;
p2=p1;
p1=j;
}
else if(HTree[j].weight<small2)
{
small2=HTree[j].weight;
p2=j;
}
}

 }
HTree[p1].parent=i;
HTree[p2].parent=i;
HTree[i].lchild=p1;
HTree[i].rchild=p2;
HTree[i].weight=HTree[p1].weight+HTree[p2].weight;

}
}

int main()
{
int n;
HufmanTree *HTree;
void ConstHufmanTree(HufmanTree HTree[],int n);
cout<<"please input the number of the leaf:"< cin>>n;

HTree=new HufmanTree[2*n-1];

ConstHufmanTree(HTree,n);

return 0;

}

  • 写回答

1条回答

  • 我为什么要敲代码 2016-07-19 02:36
    关注

    单步调试的时候可以输入多个,但最后出现提示 program received signal SIGTRAP,Trace/breakpoint trap,是怎么回事。

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!