#include
using namespace std;
/*定義二叉樹的資料結構
*/ int maxsize = 100;
typedef struct node*bittree,bitnode;
//宣告與二叉樹相關的操作函式
//1.初始化二叉樹
void initbittree(bittree &t);
//2.建立二叉樹的操作
void createbittree(bittree &t);
//3.先序遍歷二叉樹
void preorderbittree(bittree &t);
//4.中序遍歷二叉樹
void inorderbittree(bittree &t);
// 5.後序遍歷二叉樹
void postorderbittree(bittree &t);
//6.二叉樹的層次遍歷
void levelorderbittree(bittree &t);
//8.返回二叉樹的葉子節點的個數
int leafnum(bittree &t);
//7.求二叉樹的高度
int bittreedepth(bittree &t);
//1.初始化二叉樹
void initbittree(bittree &t)
//2.建立二叉樹的操作
void createbittree(bittree &t)
else
t->data = ch;
createbittree(t->lchild);
createbittree(t->rchild);
}
}//3.先序遍歷二叉樹,採用非遞迴的方式遍歷二叉樹
void preorderbittree(bittree &t)
if(top>0)
}cout<0)
if(top>0)
}cout<0)
if(top>0)else
}
}coutif(p->lchild!=null)
if(p->rchild!=null)
}coutrchild))
return 1;
else
return leafnum(t->lchild)+leafnum(t->rchild);
}//7.求二叉樹的高度
int bittreedepth(bittree &t)
int main()
二叉樹基本操作
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...