這個作業屬於哪個課程
這個作業要求在**
/homework/11430
這個作業的目標
理解建樹過程
學號2018204299
一、實驗目的
1、掌握二叉樹的基本特性
2、掌握二叉樹的先序、中序、後序的遞迴遍歷演算法
3、理解二叉樹的先序、中序、後序的非遞迴遍歷演算法
4、通過求二叉樹的深度、葉子結點數和層序遍歷等演算法,理解二叉樹的基本特性
二、實驗預習
說明以下概念
1、二叉樹:是樹形結構的乙個重要型別。許多實際問題抽象出來的資料結構往往是二叉樹形式,即使是一般的樹也能簡單地轉換為二叉樹,而且二叉樹的儲存結構及其演算法都較為簡單,因此二叉樹顯得特別重要。二叉樹特點是每個結點最多只能有兩棵子樹,且有左右之分 。
2、遞迴遍歷:函式中採用遞迴實現三種遍歷過程。
3、 非遞迴遍歷:函式直接實現書的遍歷,不進行遞迴呼叫。
4、層序遍歷:實現二叉樹的層序遍歷--從根開始,依次向下,對於每一層從左向右遍歷。
三、實驗內容和要求
1、閱讀並執行下面程式,根據輸入寫出執行結果,並畫出二叉樹的形態。
#include#define max 20
#include#includeusing namespace std;
typedef struct btnode*bitree;
void createbitree(bitree *t)
q=(bitree)malloc(sizeof(struct btnode));
if(q==null)
q->data=s;
*t=q;
createbitree(&q->lchild); /*遞迴建立左子樹*/
createbitree(&q->rchild); /*遞迴建立右子樹*/
}void preorder(bitree p)
}void inorder(bitree p)
}void postorder(bitree p)
}void preorder_n(bitree p)
}void release(bitree t)
}int main()
執行程式
輸入:abc##de#g##f###
執行結果:
createbitree(&q->lchild); /*遞迴建立左子樹*/
createbitree(&q->rchild); /*遞迴建立右子樹*/
4、在上題中補充求二叉樹深度演算法,並在主函式中補充相應的呼叫驗證正確性。
演算法**:
第六次作業 二叉樹
這個作業屬於哪個課程 這個作業要求在 homework 11430 這個作業的目標 掌握二叉樹的基本特性,掌握二叉樹的先序 中序 後序的遞迴遍歷演算法,理解二叉樹的先序 中序 後序的非遞迴遍歷演算法,通過求二叉樹的深度 葉子結點數和層序遍歷等演算法,理解二叉樹的基本特性 學號 2018204195 ...
第六次作業 二叉樹
這個作業屬於哪個課程 這個作業要求在 這個作業的目標 掌握二叉樹的基本特性 二叉樹的先序 中序 後序的遞迴遍歷演算法 理解二叉樹的先序 中序 後序的非遞迴遍歷演算法。通過求二叉樹的深度 葉子結點數和層序遍歷等演算法,理解二叉樹的基本特性 學號2018204254 一 實驗目的 1 掌握二叉樹的基本特...
第六次作業 二叉樹
這個作業屬於哪個課程 這個作業要求在 homework 11392 這個作業的目標 二叉樹的特點,二叉樹的歷遍演算法 深度演算法 學號2018204261 1 掌握二叉樹的基本特性 2 掌握二叉樹的先序 中序 後序的遞迴遍歷演算法 3 理解二叉樹的先序 中序 後序的非遞迴遍歷演算法 4 通過求二叉樹...