要学习一下哈夫曼编码,顺便把二叉树源代码放在这边.这东西,我以前在学校就没怎么认真学.还真有点摸不着头脑. void CHumanDlg::OnBtnCode() { // TODO: Add your control notification handler code here BTREE root,pL,pR; BTInit(&root); BTInit(&pL); BTInit(&pR); pL=BTCreate(3,NULL,NULL); pL=BTCreate(4,NULL,pL); pR=BTCreate(5,NULL,NULL); pR=BTCreate(6,pR,NULL); root=BTCreate(7,pL,pR); CString str; str.Format("%d",pR->data); MessageBox(str); BTClear(&root); } void CHumanDlg::BTInit(BTREE *ppR) { *ppR=NULL; } void CHumanDlg::BTClear(BTREE *ppR) { if (*ppR!=NULL) { BTClear(&((*ppR)->lchild)); BTClear(&((*ppR)->rchild)); free(*ppR); *ppR=NULL; } } BTREE CHumanDlg::BTCreate(Element item, BTREE ltree, BTREE rtree) { BTREE pR; pR = (NODE*) malloc(sizeof(NODE)); if (pR==NULL) return NULL; pR->data = item; pR->lchild = ltree; pR->rchild = rtree; return pR; } 当然,对二叉树来说还有很多操作这里没有记录.原因很简单,忘了,老师以前的课件也找不到了.