同步开奖直播:二叉樹遍歷實驗報告

來源:百度  [  文檔由 uvxwn78 貢獻   ]  責編:從大磊  |  侵權/違法舉報

049期双色球开奖直播 www.lvelns.com.cn

1.實驗題目

二叉樹的建立與遍歷

[問題描述]

  建立一棵二叉樹,并對其進行遍歷(先序、中序、后序),打印輸出遍歷結果。

2.需求分析

(1)輸入的形式和輸入值的范圍:以字符形式按先序遍歷輸入

(2)輸出的形式:依次按遞歸先序、中序、后序遍歷,非遞歸先序、中序、后序遍歷結果輸出

(3) 程序所能達到的功能:從鍵盤接受輸入(先序)進行遍歷(先序、中序、后序),將遍歷結果打印輸。

(4) 測試數據:

ABCффDEфGффFффф(其中ф表示空格字符)

  則輸出結果為 先序:ABCDEGF

  中序:CBEGDFA

  后序:CGBFDBA

3.概要設計

(1)struct btnode{

char data; 數據

struct btnode *Lchild;左子數指針

struct btnode *Rchild; 右子數指針

};

struct btnode *createbt(struct btnode *bt )

初始條件:空二叉樹存在

操作結果:先序建立二叉樹

void preOrder(struct btnode *bt)

初始條件:二叉樹存在

遞歸先序遍歷二叉樹

void preOrder1(struct btnode *bt)

初始條件:二叉樹存在

操作結果:非遞歸先序遍歷

void midOrder(struct btnode *bt)

初始條件:二叉樹存在

操作結果:遞歸中序遍歷

void midOrder1(struct btnode *bt)

初始條件:二叉樹存在

操作結果:非遞歸中序遍歷

void postOrder(struct btnode *bt)

初始條件:二叉樹存在

操作結果:遞歸后序遍歷

void postOrder1 (struct btnode *bt)

初始條件:二叉樹存在

操作結果:非遞歸后序遍歷

void main() 主函數

(2)void main() 主函數

{

*createbt

preOrder

preOrder1

midOrder

midOrder1

postOrder

postOrder1

}

4.詳細設計

struct btnode{

char data;

struct btnode *Lchild;

struct btnode *Rchild;

};

struct btnode *createbt(struct btnode *bt ){

輸入結點數據c

檢查存儲空間

將c賦給結點參數p

遞歸建立左子樹

遞歸建立右子樹

}

void preOrder(struct btnode *bt){

判斷樹是否為空

輸出根結點數data

遞歸遍歷左子樹

遞歸遍歷右子樹

}

void preOrder1(struct btnode *bt){

定義棧,結點參數p

While(棧或p是否為空){

While(p!=null){

輸出根結點數data

將根結點壓棧

遍歷左子樹

}

提取棧頂元素值

棧頂元素出棧

訪問右子樹

}

void midOrder(struct btnode *bt)

{判斷樹是否為空

遞歸遍歷左子樹

輸出根結點數data

遞歸遍歷右子樹}

void midOrder1(struct btnode *bt){

定義棧,結點參數p

While(棧或p是否為空){

While(p!=null){

將根結點壓棧

遍歷左子樹

}

提取棧頂元素值

輸出根結點數data

棧頂元素出棧

訪問右子樹

}

void postOrder(struct btnode *bt){

判斷樹是否為空

遞歸遍歷左子樹

遞歸遍歷右子樹

輸出根結點數data

}

void postOrder1 (struct btnode *bt){

定義棧,結點參數p,pre

bt入棧

While(棧或p是否為空){

提取棧頂元素值

if判斷p是否為空或是pre的根結點

輸出根結點數data

棧頂元素出棧

棧頂元素p賦給pre記錄

else if右結點非空將右結點壓棧

if左結點將左結點壓棧}

}

void main(){

struct btnode *root=NULL;

root=createbt(root);

preOrder(root); midOrder(root); postOrder(root);

preOrder1(root); midOrder1(root); postOrder1(root);

}

5.調試分析

(1)

先序建立二叉樹時,雖用到遞歸建左右子樹,但沒有把他們賦值給根節點的左右指針,造成二叉樹脫節。

(2)

非遞歸后序遍歷時,未考慮到所有條件,只考慮節點的左右結點是否為空,而未考慮結點是否是前一個遍歷結點的根節點且不為空。

(3)

用棧實現非遞歸遍歷。

6.用戶使用說明

運行環境為vc6.0

程序執行后在命令窗口中輸入測試數據

然后enter

7.測試結果

8、附錄

#include

#include

#include

#include

#include

using namespace std;

struct btnode{

char data;

struct btnode *Lchild;

struct btnode *Rchild;

};

struct btnode *createbt(struct btnode *bt )//先序建立二叉樹

{

char c;

c=getchar();

if(c==' ')//如果輸入為空,則子樹為空

{

bt=NULL;

}

else

{

if(!(bt=(struct btnode *)malloc(sizeof(struct btnode))))//檢驗bt空間分配是否成功

printf(\

bt->data=c;

bt->Lchild=createbt(bt->Lchild);//遞歸建立左子樹

bt->Rchild=createbt(bt->Rchild); //遞歸建立右子樹

}

return(bt);

}

void preOrder(struct btnode *bt)//遞歸先序遍歷

{

if(bt!=NULL)

{

printf(\

preOrder(bt->Lchild);

preOrder(bt->Rchild);

}

}

void preOrder1(struct btnode *bt)//非遞歸先序遍歷

{

int i=0;

struct btnode *p;

stack s;定義棧

p=bt;

while(p!=NULL||!s.empty())

{

while(p!=NULL)

{

printf(\

s.push(p);//將根結點壓棧

p=p->Lchild;//遍歷左子樹

}

if(!s.empty())

{

p=s.top();//提取棧頂元素值

s.pop();//棧頂元素出棧

p=p->Rchild;//訪問右子樹

}

}

}

void midOrder(struct btnode *bt)//遞歸中序遍歷

{

if(bt!=NULL)

{

midOrder(bt->Lchild);

printf(\

midOrder(bt->Rchild);

}

}

void midOrder1(struct btnode *bt)//非遞歸中序遍歷

{

int i=0;

struct btnode *p;

stack s;

p=bt;

while(p!=NULL||!s.empty())

{

while(p!=NULL)

{

s.push(p);

p=p->Lchild;

}

if(!s.empty())

{

p=s.top();

printf(\

s.pop();

p=p->Rchild;

}

}

}

void postOrder(struct btnode *bt)//遞歸后序遍歷

{

if(bt!=NULL)

{

postOrder(bt->Lchild);

postOrder(bt->Rchild);

printf(\

}

}

void postOrder1 (struct btnode *bt)//非遞歸后序遍歷

{

struct btnode *p,*pre=NULL;

stack s;

s.push(bt);

while(!s.empty())

{

p=s.top();

if((p->Lchild==NULL&&p->Rchild==NULL)||(pre!=NULL&&(pre==p->Lchild||pre==p->Rchild)))//判斷p是否為空或是pre的根結點

{

printf(\

s.pop();

pre=p;

}

else

{

if(p->Rchild!=NULL)

s.push(p->Rchild);//先將右結點壓棧

if(p->Lchild!=NULL)

s.push(p->Lchild);//后將左結點壓棧,因為先入后出

}

}

}

void main() //主函數

{

struct btnode *root=NULL;

root=createbt(root);

printf(\

preOrder(root);

printf(\

midOrder(root);

printf(\

postOrder(root);

printf(\

preOrder1(root);

printf(\

midOrder1(root);

printf(\

postOrder1(root);

}

二叉樹的建立及遍歷實驗報告.doc

二叉樹的建立及遍歷實驗報告 - 實驗三:二叉樹的建立及遍歷 【實驗目的】 (1) 掌握利用先序序列建立二叉樹的二叉鏈表的過程。 (2) 掌握二叉樹的先序、中序和......

二叉樹遍歷實驗報告.doc

二叉樹遍歷實驗報告 - 1.實驗題目 二叉樹的建立與遍歷 [問題描述] 建立一棵...

二叉樹的遍歷實驗報告.doc

二叉樹的遍歷實驗報告 - 數據結構的程序設計方案,即二叉樹的遍歷實驗報告... 二叉樹的遍歷實驗報告 一、需求分析在二叉樹的應用中, 常常要求在樹中查找具有某種特征......

二叉樹的建立及其遍歷實驗報告.doc

二叉樹的建立及其遍歷實驗報告 - 數據結構實驗報告 ———二叉樹的建立及其遍歷 一、 實驗目的 1、 了解二叉樹的建立的方法及其遍歷的順序,熟悉二叉樹的三種遍歷 ......

數據結構 二叉樹遍歷實驗報告.doc

數據結構 二叉樹遍歷實驗報告_工學_高等教育_教育專區。數據結構 二叉樹遍歷 實驗報告 數據結構之二叉樹 實 驗 報 告 題目:二叉樹的遍歷和子樹交換 指導老師:......

二叉樹遍歷 實驗報告.doc

二叉樹遍歷 實驗報告 - 數據結構實驗報告 報告題目: 二叉樹的基本操作 學生班...

數據結構二叉樹遍歷實驗報告.doc

數據結構二叉樹遍歷實驗報告_電腦基礎知識_IT/計算機_專業資料。二叉輸遍歷實驗...

實現二叉樹的各種遍歷算法實驗報告.doc

實現二叉樹的各種遍歷算法實驗報告_計算機軟件及應用_IT/計算機_專業資料。數據結構實驗報告模板之實現二叉樹的各種遍歷算法實驗報告 實現二叉樹的各種遍歷算法實驗報告......

數據結構實驗報告-二叉樹的實現與遍歷.doc

數據結構實驗報告-二叉樹的實現與遍歷 - 《數據結構》 第六次實驗報告 學生姓名...

二叉樹的建立和遍歷實驗報告.doc

二叉樹的建立和遍歷實驗報告 - 實驗四 二叉樹的建立和遍歷 學院 學號 姓名 專...

二叉樹的遍歷及其應用實驗報告.doc

實驗報告 題目: 院系: 專業: 學號: 姓名: 二叉樹的遍歷及應用 數學系 數學與應用數學 2010114036 郭奇瑞 一、 實驗名稱:二叉樹的遍歷及應用 二、 實驗日期:......

C++二叉樹遍歷實驗報告.doc

C++二叉樹遍歷實驗報告 - 華大計科學院 課程設計說明書 題目: 專業: 班級...

二叉樹的存儲與遍歷實現實驗報告_圖文.doc

二叉樹的存儲與遍歷實現實驗報告 - 數據結構實驗報告 實驗五 學院 軟件學院 班級 13 級 .NET 班 學號 132862 4 0 0 4 姓名 劉振龍 .. .. 二叉樹......

二叉樹的存儲遍歷實現實驗報告_圖文.doc

二叉樹的存儲遍歷實現實驗報告 - . 數據結構實驗報告 實驗五 學院 軟件學院 班級 13 級 .NET 班 學號 132862 4 0 0 4 姓名 劉振龍 . . 二叉樹的存......

二叉樹的遍歷(先序遍歷、中序遍歷、后序遍歷全)實驗報告.doc

二叉樹的遍歷(先序遍歷、中序遍歷、后序遍歷全)實驗報告 - 實驗目的 編寫一個程序,實現二叉樹的先序遍歷,中序遍歷,后序遍歷。 實驗內容 編程序并上機調試運行......

二叉樹的建立和遍歷的實驗報告.doc

二叉樹的建立和遍歷的實驗報告 - 竭誠為您提供優質文檔/雙擊可除 二叉樹的建立和遍歷的實驗報告 篇一:二叉樹遍歷實驗報告 數據結構實驗報告 報告題目:二叉樹的......

二叉樹的建立與遍歷實驗報告(c語言編寫,附源代碼).doc

二叉樹的建立與遍歷實驗報告(c語言編寫,附源代碼) - 程序用VC編寫,實現建立一棵二叉樹的功能,并對其進行遍歷(先序、中序、后序),并且打印輸出遍歷結果。...

數據結構二叉樹遍歷實驗報告.doc

數據結構二叉樹遍歷實驗報告 - . 問題一: 二叉樹遍歷 1. 問題描述 設輸入...

1-二叉樹的建立及遍歷-實驗報告.doc

1-二叉樹的建立及遍歷-實驗報告 - 數據結構 二叉樹的實驗,幫助同學更好的學習... 1-二叉樹的建立及遍歷-實驗報告_計算機軟件及應用_IT/計算機_專業資料。數據結構......

二叉樹的建立和遍歷實驗報告.doc

二叉樹的建立和遍歷實驗報告 - 數據結構課程設計報告 [題目] 建立二叉樹并求指...

數據結構習題及答案 - 百度文庫.txt

A. 只有根結點的二叉樹 B. 所有非葉子結點只有右子樹的二叉樹 C. 根結點無右孩子的二叉樹 D. 根結點無左孩子的二叉樹 6.27 樹的基本遍歷策略可分為先......

2016廣工AnyView數據結構 第6-8章答案 - 百度文庫.txt

【題目】編寫遞歸算法,求對二叉樹T先序遍歷時 第k個訪問的結點的值。 二叉鏈...

數據結構C語言版_二叉樹的三叉鏈表存儲表示.txt

0(1:是 0:否) 樹的深度=2 二叉樹的根為: a 中序遞歸遍歷二叉樹: b是a的左孩子 a是根結點后序遞歸遍歷二叉樹: b是a的左孩子 a是根結點層序遍歷二叉......

無向圖的DFS和BFS - 百度文庫.txt

DFS遍歷圖連通及環 8頁 幾幅圖弄清DFT、DTFT和D... 2頁 同時...

實現平衡二叉排序樹的各種算法代碼.txt

后序遍歷的非遞歸算法 (4) 層次遍歷二叉樹 (5) 在二叉樹中查找給定關鍵字(...平衡二叉排序樹實驗報告 16頁 1下載券 二叉排序樹與平衡二叉排... 9頁 免費......

楊輝三角C++編程 - 百度文庫.txt

c++程序設計譚浩強 西南交通大學 二叉樹遍歷 數據結構一元多項式 c++經典...

平衡二叉樹c語言代碼.txt

平衡二叉樹c語言代碼 - [ /* 程序作者: monkeylee 程序名稱: 二叉樹平衡因子 程序功能: 隨機生成用戶要求個數的整數,生成二叉樹(無重復), 可以進行生成、遍歷......

=數據結構導論.實驗 (05 - 建立二叉樹).2012.10縮編版.txt

=數據結構導論.實驗 (05 - 建立二叉樹).2012.10縮編版 - 請填寫“儀器設備使用登記本” 實驗登記本上寫:建立二叉樹 1、實驗內容: 建立一棵二叉樹并進行相關......

課程設計 - 百度文庫.txt

課程設計題目四:二叉樹的操作 對任意給定的二叉樹(定點數自定)建立他的二叉鏈表...(3)實現圖的廣度優先遍歷; 實驗及課程設計報告書要求 實驗報告是學生實驗過......

二叉樹的建立及遍歷實驗報告.doc

二叉樹的建立及遍歷實驗報告 - 實驗三:二叉樹的建立及遍歷 【實驗目的】 (1) 掌握利用先序序列建立二叉樹的二叉鏈表的過程。 (2) 掌握二叉樹的先序、中序和......

二叉樹遍歷實驗報告.doc

二叉樹遍歷實驗報告 - 1.實驗題目 二叉樹的建立與遍歷 [問題描述] 建立一棵...

二叉樹的遍歷實驗報告.doc

二叉樹的遍歷實驗報告 - 數據結構的程序設計方案,即二叉樹的遍歷實驗報告... 二叉樹的遍歷實驗報告 一、需求分析在二叉樹的應用中, 常常要求在樹中查找具有某種特征......

二叉樹的建立及其遍歷實驗報告.doc

二叉樹的建立及其遍歷實驗報告 - 數據結構實驗報告 ———二叉樹的建立及其遍歷 一、 實驗目的 1、 了解二叉樹的建立的方法及其遍歷的順序,熟悉二叉樹的三種遍歷 ......

數據結構 二叉樹遍歷實驗報告.doc

數據結構 二叉樹遍歷實驗報告_工學_高等教育_教育專區。數據結構 二叉樹遍歷 實驗報告 數據結構之二叉樹 實 驗 報 告 題目:二叉樹的遍歷和子樹交換 指導老師:......

二叉樹遍歷 實驗報告.doc

二叉樹遍歷 實驗報告 - 數據結構實驗報告 報告題目: 二叉樹的基本操作 學生班...

數據結構二叉樹遍歷實驗報告.doc

數據結構二叉樹遍歷實驗報告_電腦基礎知識_IT/計算機_專業資料。二叉輸遍歷實驗...

實現二叉樹的各種遍歷算法實驗報告.doc

實現二叉樹的各種遍歷算法實驗報告_計算機軟件及應用_IT/計算機_專業資料。數據結構實驗報告模板之實現二叉樹的各種遍歷算法實驗報告 實現二叉樹的各種遍歷算法實驗報告......

數據結構實驗報告-二叉樹的實現與遍歷.doc

數據結構實驗報告-二叉樹的實現與遍歷 - 《數據結構》 第六次實驗報告 學生姓名...

二叉樹的建立和遍歷實驗報告.doc

二叉樹的建立和遍歷實驗報告 - 實驗四 二叉樹的建立和遍歷 學院 學號 姓名 專...

二叉樹的遍歷及其應用實驗報告.doc

實驗報告 題目: 院系: 專業: 學號: 姓名: 二叉樹的遍歷及應用 數學系 數學與應用數學 2010114036 郭奇瑞 一、 實驗名稱:二叉樹的遍歷及應用 二、 實驗日期:......

C++二叉樹遍歷實驗報告.doc

C++二叉樹遍歷實驗報告 - 華大計科學院 課程設計說明書 題目: 專業: 班級...

二叉樹的存儲與遍歷實現實驗報告_圖文.doc

二叉樹的存儲與遍歷實現實驗報告 - 數據結構實驗報告 實驗五 學院 軟件學院 班級 13 級 .NET 班 學號 132862 4 0 0 4 姓名 劉振龍 .. .. 二叉樹......

二叉樹的存儲遍歷實現實驗報告_圖文.doc

二叉樹的存儲遍歷實現實驗報告 - . 數據結構實驗報告 實驗五 學院 軟件學院 班級 13 級 .NET 班 學號 132862 4 0 0 4 姓名 劉振龍 . . 二叉樹的存......

二叉樹的遍歷(先序遍歷、中序遍歷、后序遍歷全)實驗報告.doc

二叉樹的遍歷(先序遍歷、中序遍歷、后序遍歷全)實驗報告 - 實驗目的 編寫一個程序,實現二叉樹的先序遍歷,中序遍歷,后序遍歷。 實驗內容 編程序并上機調試運行......

二叉樹的建立和遍歷的實驗報告.doc

二叉樹的建立和遍歷的實驗報告 - 竭誠為您提供優質文檔/雙擊可除 二叉樹的建立和遍歷的實驗報告 篇一:二叉樹遍歷實驗報告 數據結構實驗報告 報告題目:二叉樹的......

二叉樹的建立與遍歷實驗報告(c語言編寫,附源代碼).doc

二叉樹的建立與遍歷實驗報告(c語言編寫,附源代碼) - 程序用VC編寫,實現建立一棵二叉樹的功能,并對其進行遍歷(先序、中序、后序),并且打印輸出遍歷結果。...

數據結構二叉樹遍歷實驗報告.doc

數據結構二叉樹遍歷實驗報告 - . 問題一: 二叉樹遍歷 1. 問題描述 設輸入...

1-二叉樹的建立及遍歷-實驗報告.doc

1-二叉樹的建立及遍歷-實驗報告 - 數據結構 二叉樹的實驗,幫助同學更好的學習... 1-二叉樹的建立及遍歷-實驗報告_計算機軟件及應用_IT/計算機_專業資料。數據結構......

數據結構習題及答案 - 百度文庫.txt

A. 只有根結點的二叉樹 B. 所有非葉子結點只有右子樹的二叉樹 C. 根結點無右孩子的二叉樹 D. 根結點無左孩子的二叉樹 6.27 樹的基本遍歷策略可分為先......

2016廣工AnyView數據結構 第6-8章答案 - 百度文庫.txt

【題目】編寫遞歸算法,求對二叉樹T先序遍歷時 第k個訪問的結點的值。 二叉鏈...

數據結構C語言版_二叉樹的三叉鏈表存儲表示.txt

0(1:是 0:否) 樹的深度=2 二叉樹的根為: a 中序遞歸遍歷二叉樹: b是a的左孩子 a是根結點后序遞歸遍歷二叉樹: b是a的左孩子 a是根結點層序遍歷二叉......

無向圖的DFS和BFS - 百度文庫.txt

DFS遍歷圖連通及環 8頁 幾幅圖弄清DFT、DTFT和D... 2頁 同時...

實現平衡二叉排序樹的各種算法代碼.txt

后序遍歷的非遞歸算法 (4) 層次遍歷二叉樹 (5) 在二叉樹中查找給定關鍵字(...平衡二叉排序樹實驗報告 16頁 1下載券 二叉排序樹與平衡二叉排... 9頁 免費......

楊輝三角C++編程 - 百度文庫.txt

c++程序設計譚浩強 西南交通大學 二叉樹遍歷 數據結構一元多項式 c++經典...

平衡二叉樹c語言代碼.txt

平衡二叉樹c語言代碼 - [ /* 程序作者: monkeylee 程序名稱: 二叉樹平衡因子 程序功能: 隨機生成用戶要求個數的整數,生成二叉樹(無重復), 可以進行生成、遍歷......

=數據結構導論.實驗 (05 - 建立二叉樹).2012.10縮編版.txt

=數據結構導論.實驗 (05 - 建立二叉樹).2012.10縮編版 - 請填寫“儀器設備使用登記本” 實驗登記本上寫:建立二叉樹 1、實驗內容: 建立一棵二叉樹并進行相關......

  • 本文相關:
  • 二叉樹的建立及遍歷實驗報告"},{"
  • 二叉樹遍歷實驗報告"},{"
  • 二叉樹的遍歷實驗報告","isRecommend"
  • 二叉樹的建立及其遍歷實驗報告"},{"
  • 數據結構 二叉樹遍歷實驗報告","isPraise
  • 二叉樹遍歷 實驗報告"},{"
  • 數據結構二叉樹遍歷實驗報告"},{"
  • 實現二叉樹的各種遍歷算法實驗報告","isHot"
  • 數據結構實驗報告-二叉樹的實現與遍歷"},{"
  • 二叉樹的建立和遍歷實驗報告"}]
  • 049期双色球开奖直播 www.lvelns.com.cn true //www.lvelns.com.cn/wendangku/z7s/f73g/j47c62c7ed1v/k84254b35eefdc8d376eeaeaa1723l.html report 17115 1.實驗題目二叉樹的建立與遍歷[問題描述]  建立一棵二叉樹,并對其進行遍歷(先序、中序、后序),打印輸出遍歷結果。2.需求分析(1)輸入的形式和輸入值的范圍:以字符形式按先序遍歷輸入(2)輸出的形式:依次按遞歸先序、中序、后序遍歷,非遞歸先序、中序、后序遍歷結果輸出(3) 程序所能達到的功能:從鍵盤接受輸入(先序)進行遍歷(先序、中序、后序),將遍歷結果打印輸。(4) 測試數據:ABCффDEфGффFффф(其中ф表示空格字符)  則輸出結果
    • 猜你喜歡
      • 24小時熱文
      • 本周熱評
        圖文推薦
        • 最新添加
        • 最熱文章
          精彩推薦
          讀過此文的還讀過