数据结构4树与二叉树学习教案.pptx
上传人:王子****青蛙 上传时间:2024-09-13 格式:PPTX 页数:21 大小:250KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

数据结构4树与二叉树学习教案.pptx

数据结构4树与二叉树学习教案.pptx

预览

免费试读已结束,剩余 11 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

会计学结点(jiédiǎn)结构-线索(xiànsuǒ)化二叉树voidInThreading(BiThrTreep){if(p){InThreading(p->lchild);if(!p->lchild){p->LTag=Thread;p->lchild=pre;}if(!pre->rchild){pre->RTag=Thread;pre->rchild=p;}pre=p;InThreading(p->rchild);}}例:求中序线索树中给定(ɡěidìnɡ)结点的后继结点BiThrTreeinordernext(BiThrTreep){if(p->RTag==Thread)return(p->rchild);else{q=p->rchild;while(q->LTag==Link)q=q->lchild;return(q);}}6.6赫夫曼(Huffman)树及其应用(yìngyòng)最优二叉树或Huffman树——设有n个权值w1w2……wn,构造(gòuzào)一棵有n个叶子结点的二叉树,每个叶子的权值为wi,则wpl最小的那棵二叉树叫最优二叉树或Huffman树.例有4个结点(jiédiǎn),权值分别为7,5,2,4,构造有4个叶子结点(jiédiǎn)的二叉树例:将百分制成绩(chéngjì)转换成5级分制成绩(chéngjì)一棵n个叶子(yèzi)结点的Huffman树共有2n-1个结点voidHuffmanCoding(HuffmanTree&HT,HuffmanCode&HC,int*w,intn){if(n<=1)return;m=2*n–1;HT=(HuffmanTree)malloc((m+1)*sizeof(HTNode));for(p=HT,i=1;i<=n;++i,++p,++w)*p={*w,0,0,0};for(;i<=m;++i;++p)*p={0,0,0,0};for(i=n+1;i<=m;++i){select(HT,i–1,s1,s2);HT[s1].parent=i;HT[s2].parent=i;HT[i].lchild=s1;HT[i].rchild=s2;HT[i].weight=HT[s1].weight+HT[s2].weight;}HC=(HuffmanCode)malloc((n+1)*sizeof(char*));cd=(char*)malloc(n*sizeof(char));cd[n–1]=‘\0’;for(i=1;i<=n;++i){start=n–1;for(c=i,f=HT[i].parent;f!=0;c=f,f=HT[f].parent)if(HT[f].lchild==c)cd[--start]=‘0’;elsecd[--start]=‘1’;HC[i]=(char*)malloc((n–start)*sizeof(char));strcpy(HC[i],&cd[start]);}free(cd);}HT