数据结构树-大神,请问哪里不对啊?

问题描述

大神,请问哪里不对啊?

#include"iostream"
#define n 8
using namespace std;
//如何·建立哈夫曼树是一大·难点
typedef struct
{
int weight;
int parent, lchild, rchild;
}HTNode, *HuffmanTree;
//初始化数组
void Initial_HT(HTNode a[])
{
for (int i = 1; i < 2 * n; i++){
a[i].weight = a[i].parent = a[i].lchild = a[i].rchild = 0;
}
}

//挑选其中两个权值最小的
void Select_HT(HTNode a[], int K, int &M, int &N)
{
int min = a[1].weight;
int i = 1;
for (; i < K; i++){
if (min>=a[i].weight&&a[i].parent == 0)
min = a[i].weight;
}
M = i;
cout << i << endl;;
int min2 = a[1].weight;
int j = 1;
for (; j < K+1; j++){
if (min2>a[j].weight&&a[j].weight != min&&a[i].parent == 0)
min2 = a[j].weight;
}
N = j;
}
//创建一哈夫曼树
void Create_HT(HTNode a[])
{
cout << "输进叶子结点的权值:" << endl;
for (int i = 1; i < n + 1; i++){
cin >> a[i].weight;
}
int M = 0, N = 0;
for (int j = n + 1; j < 2 * n + 1; j++){
Select_HT(a, j - 1, M, N);//其作用将实现的功能有返回最小的两个下标//忘了除去已有的父母的结点了
a[M].parent = a[N].parent = j;
a[N + 1].lchild = M;
a[N + 1].rchild = N;
a[j].weight = a[N].weight + a[M].weight;
}
}
void Print_HT(HTNode a[])
{
for (int i = 1; i < 2 * n; i++){
cout << a[i].weight;
}
}
int main()
{
HTNode a[2 * n];
Initial_HT(a);
Create_HT(a);
Print_HT(a);
return 0;
}

解决方案

代码有问题,调试下看看吧。

解决方案二:

就是因为调试不来啊,所以才来这里问的

时间: 2024-08-02 23:02:24

数据结构树-大神,请问哪里不对啊?的相关文章

json-各位大神 请问我序列化时数据库数据应该做成什么格式的呢?帮帮忙 小弟初学

问题描述 各位大神 请问我序列化时数据库数据应该做成什么格式的呢?帮帮忙 小弟初学 我要从数据库中将数据放到datetable中然后序列化成下边这种json格式的数据 请问我数据库中数据应该怎么存贮呢? . json数据 [{"CountryName": "阿拉伯联合酋长国","Province": [{"ProvinceName": "Bahrani","City": [{"

各位大神: 请问怎么查询domino中WebService使用者所指向的WSDL文件的URL?

问题描述 各位大神:请问怎么查询domino中WebService使用者所指向的WSDL文件的URL? 解决方案 解决方案二:你可以查一下WebService的属性,新建WebService时要用到,后边基本都用不到了,没注意过,一般都会有文档...

c++ 数据结构-求大神教这个该怎么写!!

问题描述 求大神教这个该怎么写!! bool containAll(SinglyList &list) 解决方案 求大神教我如何挽回他 解决方案二: 参考:http://my.oschina.net/readerlhx/blog/286374

java-Java新手请教各位大神

问题描述 Java新手请教各位大神 请问如何给一个泛型为double的arraylist求和?那个类型转化什么的好复杂. 解决方案 用加强版的for循环吧.我好久没用了不知道对不对,你试试.double sum=0;for(double d:dArray){sum+=d;}*****其中dArray是list的名字. 解决方案二: 请教各位大神!!! 解决方案三: 定义一个Double的产量,遍历集合,将集合里面的值加到Double变量上 解决方案四: double ds = arraylist

c++-C++文档输出,求助各位大神

问题描述 C++文档输出,求助各位大神 请问一下,在C++中,如何通过输入计算机中文档名在运行屏幕上输出文档内容 解决方案 要看文档什么格式,如果是文本文件,直接读取输出就可以了.如果是word等复杂格式,就比较复杂了. 解决方案二: http://blog.csdn.net/pud_zha/article/details/20121265http://blog.csdn.net/huangshizeng/article/details/7317626参考这个 解决方案三: 还有个简单的办法,就

求大神解答一下-求教汇编引导程序大神

问题描述 求教汇编引导程序大神 请问一般这样的引导程序 是什么汇编? 为什么没有伪指令?也不能编译?请问直接jmp那是干什么? 还有nasm 又是什么呢? 重要在U盘上面是这怎么变成引导的程序? 简单的引导程序 jmp dword 0x07c0:go ;第一种 go: org 07c00h ;第二种 mov ax,cs mov es,ax mov bp,msgstr mov cx,13 mov dh,12 mov dl,33 mov bh,0 mov al,1 mov bl,0ch mov ah

c++ python-C++ 调用Python 请教各位大神

问题描述 C++ 调用Python 请教各位大神 请问大神们 我配置C++调用Python 总是出现下面问题 ,请教各位大神: 1>test.obj : error LNK2019: 无法解析的外部符号 _Py_Finalize,该符号在函数 _main 中被引用 1>test.obj : error LNK2019: 无法解析的外部符号 __Py_Dealloc,该符号在函数 _main 中被引用 1>test.obj : error LNK2019: 无法解析的外部符号 __Py_N

oracle-大神请问 把表A更新过的数据实时同步update到表B相应的那条数据的触发器应该怎么写啊,急!!

问题描述 大神请问 把表A更新过的数据实时同步update到表B相应的那条数据的触发器应该怎么写啊,急!! CREATE OR REPLACE TRIGGER tr_upd_js BEFORE insert or update ON JNLS ---把jnls的改动update到sh表jnls FOR EACH ROW BEGIN IF INSERTING THEN INSERT INTO SH_JNLS( TRANSID, FEE, CRD_MEDIUM, CRD_TYPE) VALUES(

编码-哈夫曼树,请问大神们,下面的译码部分怎么没有输出?请大神们帮我修改下~~~(最好再加个能有个文件输出)

问题描述 哈夫曼树,请问大神们,下面的译码部分怎么没有输出?请大神们帮我修改下~~~(最好再加个能有个文件输出) #include #include #include #define maxsize 100 #define max 100 typedef struct { char data; int weight; int parent; int lchild; int rchild; }huffnode; typedef struct { char cd[max]; int start; }