乙個二叉樹演算法集

2021-04-13 23:08:39 字數 1142 閱讀 8031

#include

#include

#define max  50

#define mas  20

#define char 1

#if char

typedef char telemtype;

telemtype nil=' ';

#define form "%c"

#else

typedef int telemtype;

telemtype nil=0;

#define form "%d"

#endif

typedef struct node

bitnode,*bitree;

bitnode *initbitree(bitnode *bt)

bitnode *createbitree(bitnode *bt)

return bt;

}void printtree(bitnode *bt,int i)

}void prorder1(bitnode *bt,void(*visit)(telemtype))/*先序遍歷*/

}void prorder2(bitnode *bt,void(*visit)(telemtype))/*中序遍歷*/

if(top!=0)}}

void prorder3(bitnode *bt,void(*visit)(telemtype))/*後序遍歷*/}}

void visit(telemtype e)

int sumlefts(bitnode *bt,int sum)

sum=sumlefts(bt->left,sum);

sum=sumlefts(bt->right,sum);

}return(sum);

}int sumtree(bitnode *bt)

return(sum);

}bitnode *findchar(bitnode *bt,char ch)      /*二叉樹查詢結點*/

if(p!=null) return(p);

else return(null);

}main()

printf("/n");

getch();

}while(i>0||i<8);

設計乙個演算法,判斷乙個二叉樹是否為完全二叉樹

思想 根據完全二叉樹的定義,對完全二叉樹按照從上到下 從左到右的層次遍歷,應該滿足一下兩條要求 某節點沒有左孩子,則一定無右孩子 若某節點缺左或右孩子,則其所有後繼一定無孩子 若不滿足上述任何一條,均不為完全二叉樹。演算法思路 採用層序遍歷演算法,用cm變數值表示迄今為止二叉樹為完全二叉樹 其初值為...

二叉樹 判斷乙個樹是否是平衡二叉樹

題目 給定乙個二叉樹,判斷其是否是平衡二叉樹。方法一 bool isbalancedtree treenode root bool ltree isbalancedtree root left bool rtree isbalancedtree root right if ltree rtree r...

二叉樹 二叉樹的下乙個結點

題目描述 給定一棵二叉樹和乙個結點,要求找到中序遍歷此樹時該結點的下乙個結點。分析 中序遍歷一棵二叉樹時,要根據乙個結點有無右子樹而分開討論。若當前結點有右子樹,則它的下乙個結點就是其右子樹的最左葉子結點 若當前結點沒有右子樹,那麼又分兩種情況 若當前結點是其父節點的左孩子結點,那麼其下乙個結點就是...