二叉樹的基本操作

2021-09-29 11:27:49 字數 930 閱讀 3422

[問題描述]

建立一棵二叉樹,試程式設計實現二叉樹的如下基本操作:

按先序序列構造一棵二叉鍊錶表示的二叉樹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...