#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)/*交換每個結點的左右子樹*/
}
二叉樹的簡單操作
一,定義 在電腦科學中,二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱作 左子樹 left subtree 和 右子樹 right subtree 二叉樹常被用於實現二叉查詢樹和二叉堆。二,特點 1,二叉樹的每個結點至多只有二棵子樹 不存在度大於2的結點 2,二叉樹的子樹有左右之分,次序不能顛...
二叉樹的簡單操作
define crt secure no warnings define m 100 typedef char datatype typedef struct node 二叉鍊錶的結構體 bitnode,bitree define queue size 100 typedef bitree queu...
二叉樹 二叉樹的相關操作
遞迴實現 建立求樹高 求葉子數 求節點數 統計度為2的結點個數 後序輸出 先序輸出 中序輸出 交換左右子樹 include include include define true 1 define false 0 define ok 1 define error 0 define overflow ...