二叉樹的基本操作

2021-08-11 11:58:21 字數 947 閱讀 7669

#include

typedef struct nodebitnode,*bitree;

void createbitree(bitree *bitree)

}void preorder(bitree root)

}inorder(bitree root)

/*中序遍歷二叉樹, root為指向二叉樹(或某一子樹)根結點的指標*/

}void  postorder(bitree root)

/* 後序遍歷二叉樹,root為指向二叉樹(或某一子樹)根結點的指標*/

}void  preorder1(bitree root) /* 先序遍歷輸出二叉樹結點, root為指向二叉樹根結點的指標 */

}void  preorder2(bitree root) /* 先序遍歷輸出二叉樹中的葉子結點 , root為指向二叉樹根結點的指標 */

}/*採用遞迴演算法,如果是空樹,返回0;如果只有乙個結點,返回1;否則為左右子樹的葉子結點數之和。*/

int leaf(bitree root)

int posttreedepth(bitree bt)   /* 後序遍歷求二叉樹bt高度的遞迴演算法 */

else return(0);             /* 如果是空樹,則返回0 */

}int hmax=0;

// 先序遍歷求二叉樹bt高度的遞迴演算法,h為bt指向結點所在層次,初值為1

//depth為當前求得的最大層次,為全域性變數,呼叫前初值為0

void pretreedepth(bitree bt, int h)

pretreedepth(bt->lchild, h+1);  /* 遍歷左子樹 */

pretreedepth(bt->rchild, h+1);  /* 遍歷右子樹 */

}int main()

/*abde..f...cgi...hj..k.l..*/

二叉樹基本操作

tree.h ifndef tree h define tree h include typedef int element 定義二叉樹 typedef struct nodetreenode void preorder treenode root 遞迴前序遍歷 void inorder treen...

二叉樹基本操作

一.二叉樹的定義 二.二叉樹的建立 定義一棵無資料的二叉樹 6 int left size 7 int right size 為了操作簡便,我們定義一棵不需要儲存資料的二叉樹,只要能儲存節點之間的邏輯關係就行,所以用兩個陣列來表示。left i 第i個節點的左子節點的序號 right i 第i個節點...

二叉樹基本操作

include include define maxsize 100 typedef char elemtype typedef struct node btnode void createbtnode btnode b,char str 由str串建立二叉鏈 j ch str j btnode f...