資料結構樹與二叉樹實驗報告

2021-03-03 23:54:00 字數 2109 閱讀 6292

樹和二叉樹上機實習

1、實驗目的

(1)熟悉二叉樹結點的結構。

(2)掌握對二叉樹基本操作的實現。

(3)理解遍歷的概念,會利用遞迴方法編寫對二叉樹結構進行遍歷的演算法。

(4)理解二叉樹的線索化過程是基於對二叉樹進行遍歷,而線索二叉樹上的線索又為相應的遍歷提供了方便。

2、實驗要求

(1)二叉樹的儲存及基本操作的實現。

(2)二叉樹及線索二叉樹的相關運算的實現。

3、實驗內容

(1)抽象資料型別定義

typedef struct bitnode

bitnode,*bitree定義結構體,同時定義其結構體指標

本次二叉樹上機中,首先定義二叉樹儲存結構,然後通過各子函式實現各種功能,子函式如下:

#include"queue.h佇列標頭檔案,層次遍歷時的基礎函式

#include"stack.h棧標頭檔案,中序線索二叉樹及遍歷時的基礎函式

void createbitree(bitree &t) // 生成二叉樹,鍵盤輸入,可生成任意的二叉樹

void preorder(bitree t遞迴先序遍歷二叉樹,並輸出

void midorder(bitree t遞迴中序遍歷二叉樹,並輸出

void lastorder(bitree t) // 遞迴後續遍歷二叉樹,並輸出

void levelorder(bitree t) //非遞迴層次遍歷二叉樹,並輸出

void nodgzhongxu(bitree t) //非遞迴中序遍歷二叉樹,並輸出

int count(bitree t,int &num) // 計算二叉樹所有節點數目

void searchk(bitree t,int k,int &a) //前序查詢第k個節點的值,同理可實現中

序後序節點值得查詢

(2)儲存結構定義及演算法思想

儲存結構如下:

void createbitree(bitree &t)

if(a=='y'||a=='n') break;

}while(1)

if(b=='y'||b=='n') break;

}} else t=null;

}層次遍歷函式:

void levelorder(bitree t)}

非遞迴的中序遍歷原理大致同層次遍歷相同,是通過入棧和退棧,實現結點的儲存與退棧輸出,通過查詢棧是否為空,判斷遍歷時候結束。

(3)實驗結果與分析

(4)實驗心得

本次二叉樹上機實習,因為層次遍歷與非遞迴中序遍歷用到了佇列和棧,複習了原來的知識,同時也嘗試將這兩類基礎函式作為標頭檔案使用,收貨頗豐。同時在寫線索二叉樹時,遇到了一些理解困難,因為上課時這個知識點沒怎麼聽,意識到了上課認真聽講的重要性,同時也要加強動手實踐,拓寬知識面。

源**見附錄:

源**:

#include

using namespace std;

typedef int telemtype;

typedef struct bitnode

bitnode,*bitree;

#include"queue.h"

#include"stack.h"

void createbitree(bitree &t)

if(a=='y'||a=='n') break;

}while(1)

if(b=='y'||b=='n') break;

}} else t=null;

}int count(bitree t,int &num)

return num;

}void preorder(bitree t)

}void midorder(bitree t)

}void lastorder(bitree t)

}void levelorder(bitree t)

}void nodgzhongxu(bitree t)

if(!stackempty(s))

}}void searchk(bitree t,int k,int &a)

{if(t)

{a++;

if(a==k) cout<<"該結點資料為:"

資料結構練習二叉樹

學號 31301374 姓名張一博班級軟體工程1301 一 選擇題 1 按照二叉樹定義,具有3個結點的二叉樹共有 c 種形態。a 3 b 4 c 5d 6 2 具有五層結點的完全二叉樹至少有 d 個結點。a 9 b 15 c 31 d 16 3 以下有關二叉樹的說法正確的是 b a 二叉樹的度為2b...

資料結構試驗 二叉樹

實驗報告名稱 姓名學號專業班級 日期實驗6 二叉樹的建立及遍歷 一 實驗目的 1 學會實現二叉樹結點結構和對二叉樹的基本操作。2 掌握對二叉樹每種操作的具體實現,學會利用遞迴方法編寫對二叉樹這種遞迴資料結構進行處理的演算法。二 實驗要求 1 認真閱讀和掌握和本實驗相關的教材內容。2 編寫完整程式完成...

資料結構實驗樹和二叉樹的應用

課程題目 資料結構實驗 學院 班級 姓名 學號 實驗題目 樹和二叉樹的應用 實驗內容 哈夫曼編碼設計 實驗目的 掌握樹和二叉樹的概念及工作原理,運用其原理及概念完成上述實驗題中的內容。實驗要求 為了使學生更好的掌握與理解課堂上老師所講的概念與原理,實驗前每個學生要認真預習所做的實驗內容及編寫源程式偽...