Preorder traversal(中->左->右)

template<class T>

void PreOrder(BinaryNode<T>* t) // preorder traversal of *t.

{if(t)

{visit(t);

PreOrder(tàLeft);

PreOrder(tàRight);}

Inorder traversal(左->中->右)

//遞歸算法

template<class T>

void InOrder(BinaryNode<T>* t)

{if(t)

InOrder(tàLeft);

visit(t);

InOrder(tàRight);

//非遞歸算法

void Inorder(BinaryNode <T> * t)

Sack<BinaryNode<T>*> s(10);

BinaryNode<T> * p = t;

for ( ; ; )

while(p!=NULL)

s.push(p);

p = p->Left;

if (!s.IsEmpty( ))

p = s.pop( );

cout << p->element;

p = p->Right;

else

return

Postorder traversal(左->右->中)

//遞歸算法

template<class T>

void PostOrder(BinaryNode<T>* t)

if(t)

PostOrder(tàLeft);

PostOrder(tàRight);

visit(t)

//非遞歸算法

struct StkNode

BinaryNode <T> * ptr;

int tag;

vid Postorder(BinaryNode <T> * t)

Stack <StkNode<T>>s(10);

StkNode<T> Cnode;

BinaryNode<T> * p = t;

for( ; ; )

while (p!=NULL)

Cnode.ptr = p;

Cnode.tag = 0;

s.push(Cnode);

p = p->Left;

Cnode = s.pop( );

p = Cnode.ptr;

while ( Cnode.tag = = 1) //從右子樹回來(lái)

cout << p->element;

if ( !s.IsEmpty( ))

Cnode = s.pop( );

p = Cnode.ptr;

else

return;

4)Cnode.tag = 1;

s.push(Cnode);

p = p->Right; //從左子樹回來(lái)//for

Level order: it is a non-recursive function and a queue is used.

template<class T>

void LevelOrder(BinaryNode<T>* t)

LinkedQueue<BinaryNode<T>*> Q;

while(t)

visit(t); //visit t

if(tàLeft)

Q.Add(tàLeft);

if(tàRight)

Q.Add(tàRight);

try

Q.Delete(t);

}catch(OutOfBounds){return;}

二叉數(shù)的遍歷造價(jià)信息

市場(chǎng)價(jià) 信息價(jià) 詢價(jià)
材料名稱 規(guī)格/型號(hào) 市場(chǎng)價(jià)
(除稅)
工程建議價(jià)
(除稅)
行情 品牌 單位 稅率 供應(yīng)商 報(bào)價(jià)日期
二叉 S-8 查看價(jià)格 查看價(jià)格

13% 大連東方泰陶建材經(jīng)銷部
二叉 200X120X100mm 查看價(jià)格 查看價(jià)格

金九方

13% 佛山市金九方陶瓷有限公司
二叉(四類色) S-8 查看價(jià)格 查看價(jià)格

比特利

13% 重慶比特利建材有限公司
二叉類色) S-8 查看價(jià)格 查看價(jià)格

比特利

13% 重慶比特利建材有限公司
二叉(一類色(紅胎)) S-8 查看價(jià)格 查看價(jià)格

比特利

13% 重慶比特利建材有限公司
二叉(三類色) S-8 查看價(jià)格 查看價(jià)格

比特利

13% 重慶比特利建材有限公司
類色) S-四 查看價(jià)格 查看價(jià)格

比特利

13% 重慶比特利建材有限公司
類色) T四 查看價(jià)格 查看價(jià)格

比特利

13% 重慶比特利建材有限公司
材料名稱 規(guī)格/型號(hào) 除稅
信息價(jià)
含稅
信息價(jià)
行情 品牌 單位 稅率 地區(qū)/時(shí)間
日本瓦[J-四] 查看價(jià)格 查看價(jià)格

韶關(guān)市2009年11月信息價(jià)
日本瓦[J-四] 查看價(jià)格 查看價(jià)格

韶關(guān)市2009年7月信息價(jià)
日本瓦[J-四] 查看價(jià)格 查看價(jià)格

韶關(guān)市2008年9月信息價(jià)
日本瓦[J-四] 查看價(jià)格 查看價(jià)格

韶關(guān)市2008年8月信息價(jià)
日本瓦[J-四] 查看價(jià)格 查看價(jià)格

韶關(guān)市2008年1月信息價(jià)
日本瓦[J-四] 查看價(jià)格 查看價(jià)格

韶關(guān)市2007年10月信息價(jià)
日本瓦[J-四] 查看價(jià)格 查看價(jià)格

韶關(guān)市2007年8月信息價(jià)
日本瓦[J-四] 查看價(jià)格 查看價(jià)格

韶關(guān)市2007年7月信息價(jià)
材料名稱 規(guī)格/需求量 報(bào)價(jià)數(shù) 最新報(bào)價(jià)
(元)
供應(yīng)商 報(bào)價(jià)地區(qū) 最新報(bào)價(jià)時(shí)間
二叉 S-8|3645塊 1 查看價(jià)格 大連東方泰陶建材經(jīng)銷部 遼寧  大連市 2015-11-24
二叉噴頭 DN15|6779個(gè) 1 查看價(jià)格 佛山市天興消防器材有限公司 廣東  佛山市 2015-10-20
、二叉 -|1臺(tái) 1 查看價(jià)格 深圳市力德森氣動(dòng)工具有限公司    2017-06-12
二叉 200X120X100mm|9894塊 1 查看價(jià)格 佛山市金九方陶瓷有限公司 廣東  佛山市 2015-12-24
二叉頭路燈 高度5米,功率2×30W,光源LED|4臺(tái) 3 查看價(jià)格 深圳市奧瑞泰光電科技有限公司 廣東  廣州市 2019-01-28
超五類二叉水晶頭 PL45E-A 水晶頭類|7531盒 1 查看價(jià)格 廣州市唯康通信技術(shù)有限公司 廣東  廣州市 2015-05-27
數(shù)采儀 數(shù)采儀|2套 2 查看價(jià)格 廣州怡文環(huán)境科技有限公司 全國(guó)   2021-12-03
數(shù)采儀 數(shù)采儀|32臺(tái) 1 查看價(jià)格 廣州天健創(chuàng)新儀器儀表有限公司 全國(guó)   2021-05-14

· Preorder前序遍歷--訪問(wèn)結(jié)點(diǎn)的操作發(fā)生在遍歷其左右子樹之前

· Inorder中序遍歷--訪問(wèn)結(jié)點(diǎn)的操作發(fā)生在遍歷其左右子樹之間

· Postorder后序遍歷--訪問(wèn)結(jié)點(diǎn)的操作發(fā)生在遍歷其左右子樹之后

· Level order層次遍歷--按每一層的節(jié)點(diǎn),從左到右逐次訪問(wèn)

二叉數(shù)的遍歷舉例常見(jiàn)問(wèn)題

二叉數(shù)的遍歷舉例文獻(xiàn)

一種基于有序二叉樹的變量池的設(shè)計(jì)和應(yīng)用 一種基于有序二叉樹的變量池的設(shè)計(jì)和應(yīng)用

格式:pdf

大?。?span id="0dz7det" class="single-tag-height">71KB

頁(yè)數(shù): 4頁(yè)

評(píng)分: 4.8

分層模式在軟件開發(fā)中有著廣泛的應(yīng)用,必然使各層之間產(chǎn)生頻繁的數(shù)據(jù)交互,從而導(dǎo)致軟件性能大大下降。針對(duì)上述問(wèn)題,本文提出一種基于有序二叉樹的變量池的解決方案,軟件的配置信息以及各層之間的交互數(shù)據(jù)保存在變量池中,對(duì)變量的所有操作都基于變量池,通過(guò)變量池的使用,既方便了各層之間數(shù)據(jù)交互,也簡(jiǎn)化了各層之間的接口設(shè)計(jì)?;谠摲桨?本文最后實(shí)現(xiàn)了一個(gè)銀行自助終端系統(tǒng)。

立即下載
支持向量機(jī)的二叉樹多分類算法在變壓器故障診斷中的應(yīng)用 支持向量機(jī)的二叉樹多分類算法在變壓器故障診斷中的應(yīng)用

格式:pdf

大?。?span id="hymmisn" class="single-tag-height">71KB

頁(yè)數(shù): 2頁(yè)

評(píng)分: 4.4

支持向量機(jī)最初只能用以解決二分類問(wèn)題,對(duì)于多類故障,只能通過(guò)組合二分類器間接應(yīng)用于多類分類問(wèn)題。本文提出一種基于二叉樹多分類算法對(duì)變壓器中常見(jiàn)故障進(jìn)行了模式識(shí)別,并與傳統(tǒng)多分類算法作對(duì)比。根據(jù)svm理論結(jié)合二叉樹方法建立變壓器故障診斷模型,通過(guò)VS2008對(duì)其進(jìn)行了驗(yàn)證,結(jié)果表明該方法能有效地、準(zhǔn)確地識(shí)別故障模式,具有較高的推廣性。

立即下載

在使用擴(kuò)展先序遍歷創(chuàng)建二叉樹時(shí),首先要根據(jù)一棵二叉樹寫出它的先序遍歷序列,然后根據(jù)圖中各個(gè)節(jié)點(diǎn)左右孩子的 狀況進(jìn)行加點(diǎn)遍歷,凡是沒(méi)有左右孩子的節(jié)點(diǎn),遍歷到它的左右孩子是都用"."表示它的左右孩子,注意這里面的"."只是用來(lái)表示它的父節(jié)點(diǎn)沒(méi)有它這個(gè)左孩子或右孩子,并不表示節(jié)點(diǎn),所以在遍歷過(guò)程中應(yīng)該訪問(wèn)到"."就結(jié)束了,不能再沿著"."繼續(xù)遍歷。

基本內(nèi)容

所謂遍歷(Traversal)是指沿著某條搜索路線,依次對(duì)樹中每個(gè)結(jié)點(diǎn)均做一次且僅做一次訪問(wèn)。訪問(wèn)結(jié)點(diǎn)所做的操作依賴于具體的應(yīng)用問(wèn) 題。 遍歷是二叉樹上最重要的運(yùn)算之一,是二叉樹上進(jìn)行其它運(yùn)算之基礎(chǔ)。本節(jié)主要講二叉樹中遍歷過(guò)程,遍歷方法,重點(diǎn)介紹擴(kuò)展先序遍歷序列以及利用此序列創(chuàng)建二叉樹的過(guò)程,順便比較一下各種遍歷方法的異同和應(yīng)用。

先序遍歷

從二叉樹的遞歸定義可知,一棵非空的二叉樹由根結(jié)點(diǎn)及左、右子樹這三個(gè)基本部分組成。因此,在任一給定結(jié)點(diǎn)上,可以按某種次序執(zhí)行三個(gè)操作:

(1)訪問(wèn)結(jié)點(diǎn)本身(N),

(2)遍歷該結(jié)點(diǎn)的左子樹(L),

(3)遍歷該結(jié)點(diǎn)的右子樹(R)。

根據(jù)遍歷的原則:先左后右,對(duì)于先序遍歷,顧名思義就是先訪問(wèn)根節(jié)點(diǎn),再訪問(wèn)左子樹,最后訪問(wèn)右子樹,

中序遍歷

從二叉樹的遞歸定義可知,一棵非空的二叉樹由根結(jié)點(diǎn)及左、右子樹這三個(gè)基本部分組成。因此,在任一給定結(jié)點(diǎn)上,可以按某種次序執(zhí)行三個(gè)操作:

(1)遍歷該結(jié)點(diǎn)的左子樹(L),

(2)訪問(wèn)結(jié)點(diǎn)本身(N),

(3)遍歷該結(jié)點(diǎn)的右子樹(R)。

對(duì)于中序遍歷,就是先訪問(wèn)左子樹,再訪問(wèn)根節(jié)點(diǎn),最后訪問(wèn)右子樹;

后序遍歷

從二叉樹的遞歸定義可知,一棵非空的二叉樹由根結(jié)點(diǎn)及左、右子樹這三個(gè)基本部分組成。因此,在任一給定結(jié)點(diǎn)上,可以按某種次序執(zhí)行三個(gè)操作:

(1)遍歷該結(jié)點(diǎn)的左子樹(L),

(2)遍歷該結(jié)點(diǎn)的右子樹(R)。

(3)訪問(wèn)結(jié)點(diǎn)本身(N),

對(duì)于后序遍歷,就是先訪問(wèn)左子樹,再訪問(wèn)右子樹,最后訪問(wèn)根節(jié)點(diǎn);

遍歷的命名

根據(jù)訪問(wèn)結(jié)點(diǎn)操作發(fā)生位置命名:

① NLR:前序遍歷(PreorderTraversal亦稱(先序遍歷))

--訪問(wèn)根結(jié)點(diǎn)的操作發(fā)生在遍歷其左右子樹之前。

② LNR:中序遍歷(InorderTraversal)

--訪問(wèn)根結(jié)點(diǎn)的操作發(fā)生在遍歷其左右子樹之中(間)。

③ LRN:后序遍歷(PostorderTraversal)

--訪問(wèn)根結(jié)點(diǎn)的操作發(fā)生在遍歷其左右子樹之后。

樹的遍歷是樹的一種重要的運(yùn)算。所謂遍歷是指對(duì)樹中所有結(jié)點(diǎn)的系統(tǒng)的訪問(wèn),即依次對(duì)樹中每個(gè)結(jié)點(diǎn)訪問(wèn)一次且僅訪問(wèn)一次。樹的3種最重要的遍歷方式分別稱為前序遍歷、中序遍歷和后序遍歷。以這3種方式遍歷一棵樹時(shí),若按訪問(wèn)結(jié)點(diǎn)的先后次序?qū)⒔Y(jié)點(diǎn)排列起來(lái),就可分別得到樹中所有結(jié)點(diǎn)的前序列表,中序列表和后序列表。相應(yīng)的結(jié)點(diǎn)次序分別稱為結(jié)點(diǎn)的前序、中序和后序。

樹的這3種遍歷方式可遞歸地定義如下:

§ 如果T是一棵空樹,那么對(duì)T進(jìn)行前序遍歷、中序遍歷和后序遍歷都是空操作,得到的列表為空表。

§ 如果T是一棵單結(jié)點(diǎn)樹,那么對(duì)T進(jìn)行前序遍歷、中序遍歷和后序遍歷都只訪問(wèn)這個(gè)結(jié)點(diǎn)。這個(gè)結(jié)點(diǎn)本身就是要得到的相應(yīng)列表。

§ 否則,設(shè)T如圖6所示,它以n為樹根,樹根的子樹從左到右依次為T1,T2,..,Tk,那么有:

§ 對(duì)T進(jìn)行前序遍歷是先訪問(wèn)樹根n,然后依次前序遍歷T1,T2,..,Tk。

§ 對(duì)T進(jìn)行中序遍歷是先中序遍歷T1,然后訪問(wèn)樹根n,接著依次對(duì)T2,T2,..,Tk進(jìn)行中序遍歷。

§ 對(duì)T進(jìn)行后序遍歷是先依次對(duì)T1,T2,..,Tk進(jìn)行后序遍歷,最后訪問(wèn)樹根n。

擴(kuò)展先序遍歷算法實(shí)現(xiàn)

先序遍歷的算法實(shí)現(xiàn)

用二叉鏈表做為存儲(chǔ)結(jié)構(gòu),先序遍歷算法可描述為:

void InOrder(BinTree T)

{ //算法里①~⑥是為了說(shuō)明執(zhí)行過(guò)程加入的標(biāo)號(hào)

① if(T) { // 如果二叉樹非空

② printf("%c",T->data); // 訪問(wèn)結(jié)點(diǎn) ③ InOrder(T->lchild); ④ InOrder(T->rchild); ⑤ }

⑥ } // InOrder

擴(kuò)展先序遍歷法創(chuàng)建二叉樹算法實(shí)現(xiàn)

void createBiTree(BiTree *bt){

char ch;

ch = getchar();

if(ch == '.')

*bt = NULL;

else{

*bt = (BiTree)malloc(sizeof(BiTNode));//向內(nèi)存申請(qǐng)節(jié)點(diǎn)空間

(*bt)->data = ch;

createBiTree(&((*bt)->LChild));//生成左子樹

createBiTree(&((*bt)->RChild));//生成右子樹

}

}/*createBiTree*/

打印二叉樹算法實(shí)現(xiàn)

/*==================打印二叉樹=============*/

void printTree(BiTree bt,int nLayer){

int i;

if(bt == NULL)

return ;

printTree(bt ->RChild,nLayer+1);

for(i=0;i<nLayer;i++)

printf(" ");

printf("%c\n",bt->data);

printTree(bt->LChild,nLayer+1);

}

輸入示例

圖一:

擴(kuò)展先序遍歷序列

(a)1 2 4 . . 6 . . 3 . 5 . 7 . 8 . .

(b)1 2 4 . . 5 . . 3 6 . . 7 . . 運(yùn)行結(jié)果:

圖二:

擴(kuò)展先序遍歷序列

(a)7 3 1 . . 2 . . 9 . 10 . 8 . 4 . .

(b)7 3 1 . . 5 4 . . . 11 10 . . 15 . .

運(yùn)行結(jié)果:

二叉數(shù)的遍歷相關(guān)推薦
  • 相關(guān)百科
  • 相關(guān)知識(shí)
  • 相關(guān)專欄

最新詞條

安徽省政采項(xiàng)目管理咨詢有限公司 數(shù)字景楓科技發(fā)展(南京)有限公司 懷化市人民政府電子政務(wù)管理辦公室 河北省高速公路京德臨時(shí)籌建處 中石化華東石油工程有限公司工程技術(shù)分公司 手持無(wú)線POS機(jī) 廣東合正采購(gòu)招標(biāo)有限公司 上海城建信息科技有限公司 甘肅鑫禾國(guó)際招標(biāo)有限公司 燒結(jié)金屬材料 齒輪計(jì)量泵 廣州采陽(yáng)招標(biāo)代理有限公司河源分公司 高鋁碳化硅磚 博洛尼智能科技(青島)有限公司 燒結(jié)剛玉磚 深圳市東海國(guó)際招標(biāo)有限公司 搭建香蕉育苗大棚 SF計(jì)量單位 福建省中億通招標(biāo)咨詢有限公司 泛海三江 威海鼠尾草 Excel 數(shù)據(jù)處理與分析應(yīng)用大全 廣東國(guó)咨招標(biāo)有限公司 甘肅中泰博瑞工程項(xiàng)目管理咨詢有限公司 山東創(chuàng)盈項(xiàng)目管理有限公司 當(dāng)代建筑大師 廣西北纜電纜有限公司 拆邊機(jī) 大山檳榔 上海地鐵維護(hù)保障有限公司通號(hào)分公司 甘肅中維國(guó)際招標(biāo)有限公司 舌花雛菊 華潤(rùn)燃?xì)猓ㄉ虾#┯邢薰? 湖北鑫宇陽(yáng)光工程咨詢有限公司 GB8163標(biāo)準(zhǔn)無(wú)縫鋼管 中國(guó)石油煉化工程建設(shè)項(xiàng)目部 韶關(guān)市優(yōu)采招標(biāo)代理有限公司 莎草目 建設(shè)部關(guān)于開展城市規(guī)劃動(dòng)態(tài)監(jiān)測(cè)工作的通知 電梯平層準(zhǔn)確度 廣州利好來(lái)電氣有限公司 四川中澤盛世招標(biāo)代理有限公司