二叉樹(shù)是n(n>=0)個(gè)結(jié)點(diǎn)的有限集,它或?yàn)榭諛?shù)(n=0),或由一個(gè)根結(jié)點(diǎn)和兩棵分別稱(chēng)為左子樹(shù)和右子樹(shù)的互不相交的二叉樹(shù)構(gòu)成(遞歸定義)特點(diǎn):
1)每個(gè)結(jié)點(diǎn)至多有二棵子樹(shù)(即不存在度大于2的結(jié)點(diǎn))
2)二叉樹(shù)的子樹(shù)有左、右之分,且其次序不能任意顛倒
二叉樹(shù)的二叉鏈表存儲(chǔ)結(jié)構(gòu)的定義
typedefstructBiTNode{//結(jié)點(diǎn)結(jié)構(gòu)TElemTypedata;structBiTNode*lchild,*rchild;//左右孩子指針}BiTNode,*BiTree;1234512345
構(gòu)建二叉樹(shù)
//構(gòu)建二叉樹(shù)voidCreateBiTree(BiTree&T){//按先序次序輸入二叉樹(shù)中結(jié)點(diǎn)的值,創(chuàng)建二叉鏈表表示的二叉樹(shù)TTElemTypen;scanf("%d",&n);if(n==0)//遞歸結(jié)束條件{T=NULL;}else{T=newBiTNode;//生成根節(jié)點(diǎn)T->data=n;CreateBiTree(T->lchild);//遞歸創(chuàng)建左子樹(shù)CreateBiTree(T->rchild);//遞歸創(chuàng)建右子樹(shù)}}