#define _crt_secure_no_warnings
#define m 100
typedef char datatype;
typedef struct node /*二叉鍊錶的結構體*/
bitnode, *bitree;
#define queue_size 100
typedef bitree queueelement;
typedef struct //定義順序佇列的結構體
seqqueue;
bitree createbitree(void);//建立二叉鍊錶
void inorder(bitree root);//中序遞迴遍歷二叉樹
void inoeder(bitree root); //中序非遞迴遍歷二叉樹
int layerorder(bitree bt);/*層次遍歷二叉樹*/
int posttreedepth(bitree bt); /*後序遍歷二叉樹求高度的遞迴演算法*/
int leaf(bitree root); /*後序遍歷統計葉子結點的個數*/
int preorder(bitree root);/*先序求二叉樹中結點的個數*/
void changebit(bitree root);/*交換每個結點的左右子樹*/
void enterqueue(seqqueue * s, queueelement x); //順序入隊函式
void deletequeue(seqqueue * s); //順序出隊函式
#include
#include
int main()
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 0:
default:
}} while (choose != 0);
system("pause");
return 0;}
void enterqueue(seqqueue * s, queueelement x) //順序入隊函式
void deletequeue(seqqueue * s) //順序出隊函式
s->top--;
}} void vist(char p)
bitree createbitree(void)//建立二叉鍊錶
else
return bt;}
void inorder(bitree root)//中序遞迴遍歷二叉樹}
void inoeder(bitree root) //中序非遞迴遍歷二叉樹
/*遍歷左子樹*/
if (top != 0)
/*遍歷右子樹*/
} while (p != null || top != 0);}
int layerorder(bitree bt)/*層次遍歷二叉樹*/
enterqueue(q, bt);
while (q->top > -1)
if (p->rchild)
}return 1;}
int posttreedepth(bitree bt) /*後序遍歷二叉樹求高度的遞迴演算法*/
else
} int leaf(bitree root) /*後序遍歷統計葉子結點的個數*/
}return leafcount;}
int preorder(bitree root)/*先序求二叉樹中結點的個數*/
return (bitcount);}
void changebit(bitree root)/*交換每個結點的左右子樹*/
}
二叉樹的簡單操作
define crt secure no warnings define m 100 typedef char datatype typedef struct node 二叉鍊錶的結構體 bitnode,bitree define queue size 100 typedef bitree queu...
二叉樹的簡單操作
一,定義 在電腦科學中,二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱作 左子樹 left subtree 和 右子樹 right subtree 二叉樹常被用於實現二叉查詢樹和二叉堆。二,特點 1,二叉樹的每個結點至多只有二棵子樹 不存在度大於2的結點 2,二叉樹的子樹有左右之分,次序不能顛...
二叉樹 二叉樹的相關操作
遞迴實現 建立求樹高 求葉子數 求節點數 統計度為2的結點個數 後序輸出 先序輸出 中序輸出 交換左右子樹 include include include define true 1 define false 0 define ok 1 define error 0 define overflow ...