二叉樹的簡單操作

2021-12-29 21:02:00 字數 1874 閱讀 2053

#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 ...