二叉樹的遍歷應用2

2021-09-01 05:32:04 字數 1009 閱讀 8198

若二叉樹為空,返回null;

若二叉樹只有乙個結點,直接刪除;

否則遞迴左右子樹。

void del(bitnode *&t)

else

}

設max是預先設定的最大值,初始值為0,判斷是否有比其更大的值並修改。

void maxvalue(bitnode *t,datatype &max)

maxvalue(t->lchild,max);

maxvalue(t->rchild,max);

}}

由於遞迴語句中,由函式引數表返回最大值,故max為引用型引數。

先對左子樹和右子樹進行遞迴調換,最後交換根的左右子女

void exchange(bitnode *t)

設前序序列pre[s1,…,t2],中序序列in[s2,…,t2],初始時s1=s2=0,t1=t2=n;以pre[s1]建立根節點,搜尋in[s1]=pre[s1]的位置i,把中序序列分為in[s2,…i-1]和in[i+1,…t2]兩個子串行,再遞迴構造左右子樹。

void createbitree(bitnode *t,datatype pre, datatype in, int s1,int s2,int t1,int t2)

與由前序序列和中序序列構造二叉樹類似,不過根結點為post[t1],即後序序列的最後一位

void createbitree(bitnode *t,datatype post, datatype in, int s1,int s2,int t1,int t2)

加入計數器count,在訪問的同時記錄結點序號

bitnode* pre_find_k(bitnode t,int &count,int k)

else return null;

}

二叉樹的應用 二叉樹遍歷的應用

在以上討論的遍歷演算法中,訪問結點的資料域資訊,即操作visite bt data 具有更一般的意義,需根據具體問題,對bt 資料進行不同的操作。下面介紹幾個遍歷操作的典型應用。search bt,x 在bt 為二叉樹的根結點指標的二叉樹中查詢資料元素x。查詢成功時返回該結點的指標 查詢失敗時返回空...

二叉樹及其應用 二叉樹遍歷

給定二叉樹的廣義表表示,構造二叉樹並輸出二叉樹的四種遍歷順序。輸入說明 輸入僅一行,該行僅由 以及大小寫字元構成的二叉樹的廣義表表示,字串長度不超過100。輸出說明 在接下來的四行中依行輸出二叉樹的四種遍歷 輸入樣列 a b d,c e,f h 輸出樣列 abdcefh dbaecfh dbehfc...

二叉樹遍歷的應用

二叉樹遍歷的應用。求二叉樹結點個數 int size binarytreenode t 求二叉樹葉子結點個數 int leaf binarytreenode t 求二叉樹的高度 int depth binarytreenode t 交換二叉樹 void exch binarytreenode t 求...