[問題描述]
建立一棵二叉樹,試程式設計實現二叉樹的如下基本操作:
按先序序列構造一棵二叉鍊錶表示的二叉樹t;
對這棵二叉樹進行遍歷:先序、中序、後序以及層次遍歷,分別輸出結點的遍歷序列;
求二叉樹的深度/結點數目/葉結點數目;(選做)
[基本要求]
從鍵盤接受輸入(先序),以二叉鍊錶作為儲存結構,建立二叉樹(以先序來建立),
[測試資料]
如輸入:abcффdeфgффfффф(其中ф表示空格字元)
abc##de#g##f###
則輸出結果為
先序:abcdegf
中序:cbegdfa
後序:cgefdba
層序:abcdefg
**如下
#include#includeusing namespace std;
typedef struct tree
*bitree,bitnode;
//建立二叉樹,以#號代表空
void creatbitree(bitree &t)
}//先序
void dlr(bitree &t) }
//中序
void ldr(bitree &t)
}//後序
void lrd(bitree &t)
}//層序
void floor(bitree &t)
j++;}}
//深度
int depth(bitree &t)
}//結點
int nodecount(bitree &t)
//葉節點數
void yecount(bitree &t)
else
}}//主函式
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...