我为什么要敲代码 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,是怎么回事。

    评论

报告相同问题?

悬赏问题

  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3