数据结构-树-C语言-HaffmanTree

xiaoxiao2025-11-02  4

数据结构-树-C语言-HaffmanTree

typedef struct TreeNode *pHaffmanTree struct TreeNode{ int weight;//权重 pHaffmanTree left,right;//左右子树 } pHaffmanTree createHaffmanTree(MinHeap heap){ int i; pHaffmanTree temp; buildMinHeap(heap); for(int i =1;i<=heap->size-1;i++){ temp = (pHaffmanTree)malloc(sizeof(TreeNode)); temp->left = deleteMinHeap(heap); temp->right = deleteMinHeap(heap); temp->weight = temp->left->weight+temp->right->weight; insert(heap,temp) } temp = deleteMinHeap(heap);//此时获得最小堆的堆顶元素 return temp; } /* @program 根据题目所给的权值建立最小堆 */ void buildMinHeap(MinHeap heap); /* @program 删除最小堆中最小元素 @return 最小堆的最小元素 */ TreeNode deleteMinHeap(MinHeap heap); /* @program 根据最小堆原则插入元素 @param heap 最小堆 @param treeNode 所插入的元素 @return 是否插入成功 */ bool insert(MinHeap heap,TreeNode treeNode);
转载请注明原文地址: https://www.6miu.com/read-5038959.html

最新回复(0)