栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

给定一个数字数组,返回哈夫曼树的头指针?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

给定一个数字数组,返回哈夫曼树的头指针?

struct BTreeNode* CreateHuffman(ElemType a[], int n){int i, j;struct BTreeNode **b, *q;b = malloc(n*sizeof(struct BTreeNode));for (i = 0; i < n; i++){b[i] = malloc(sizeof(struct BTreeNode));b[i]->data = a[i];b[i]->left = b[i]->right = NULL;}for (i = 1; i < n; i++){int k1 = -1, k2;for (j = 0; j < n; j++){if (b[j] != NULL && k1 == -1){k1 = j;continue;}if (b[j] != NULL){k2 = j;break;}}for (j = k2; j < n; j++){if (b[j] != NULL){if (b[j]->data < b[k1]->data){k2 = k1;k1 = j;}else if (b[j]->data < b[k2]->data)k2 = j;}}q = malloc(sizeof(struct BTreeNode));q->data = b[k1]->data + b[k2]->data;q->left = b[k1];q->right = b[k2];b[k1] = q;b[k2] = NULL;}free(b);return q;}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/363197.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号