这个程序那里不对了? 高手来帮忙啊

来源:百度知道 编辑:UC知道 时间:2024/06/05 11:09:30
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#define n 4

typedef struct _bin{
int i;
struct _bin *lift;
struct _bin *right;
}hfmbin;

void select(int num[],int size){
int i, j,min, temp;
for (i = 0;i<size-1;i++){
min = i;
for (j = i+1; j < size; j++){
if (num[j] < num[min])
min = j;
}
temp = num[i];
num[i] = num[min];
num[min] = temp;
}
}

void dis(int g[]){
int i;
for(i=0;i<n;i++)
printf("%d",g[i]);
printf("\n");
}

int init(hfmbin &node){
node.lift=NULL;
node.right=NULL;
return 1;
}

char *code(hfmbin **node,int db){
hfmbin *p=*node;
char ch,*q;
int i=0;
q=&ch;
if(p->right->i==db)
ch='1';
else
{
ch='0';
}

大哥写程序就要它有点可读性啊!给点注释啊!还有什么地方有问题啊??
int init(hfmbin &node)??&什么意思啊 ?我好像不是很懂啊,好像没见过的啊 !是 “*”吧!你实参是init(*p)*p;形参是 &node 肯定不对啊 !
还有什么地方错了你写下来啊!看得话很麻烦的啊!

楼上的 这就是你的不对了 C++没学好吧?

我这里有一个可以用的 你看看

// manhafu.cpp : Defines the entry point for the console application.
//

//#include "stdafx.h"

#include <stdio.h>
#define MAXBIT 10 /*定义哈夫曼编码的最大长度*/
#define MAXVALUE 10000 /*定义最大权值*/
#define MAXLEAF 30 /*定义哈夫曼树中最多叶子节点个数*/
#define MAXSIZE 100

#define MAXNODE MAXLEAF*2-1 /*哈夫曼树最多结点数*/
typedef struct { /*哈夫曼编码信息的结构*/
int bit[MAXBIT];
int start;
}Hcodetype;

typedef struct { /*哈夫曼树结点的结构*/
char ch;
int weight;
int parent;
int lchild;
int rchild;
}Hnodetype;

void huffmantree(Hnodetype huffnode[MAXNODE],int n) /*构造哈夫曼树的函数*/
{
int i,j,m1,m2,x1,x2;
for(i=0;i<2*n-1;i++) /*存放哈夫曼树结点的数组huffnode[]初