西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

首頁編程開發(fā)其它知識 → 數(shù)據(jù)結(jié)構(gòu)中二叉樹基本操作學(xué)習(xí)

數(shù)據(jù)結(jié)構(gòu)中二叉樹基本操作學(xué)習(xí)

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2013/1/30 8:42:10字體大。A-A+

作者:西西點擊:0次評論:0次標(biāo)簽: 二叉樹

谷歌瀏覽器2016(Chrome)v50.0.2661.75 官方正式版
  • 類型:瀏覽器類大小:43.2M語言:中文 評分:6.0
  • 標(biāo)簽:
立即下載

近日受人所托,搞了點二叉樹的程序,順便回顧了下二叉樹的一些基本知識,特此總結(jié)。

二叉樹的基本操作,可能包括:

創(chuàng)建,遍歷,轉(zhuǎn)化,復(fù)制,刪除等。

遍歷:前中后三種順序的遍歷,已經(jīng)是各數(shù)據(jù)結(jié)構(gòu)與算法教程的最基礎(chǔ)內(nèi)容,在此不重復(fù)。

創(chuàng)建:大多數(shù)據(jù)結(jié)構(gòu)教程當(dāng)中的二叉樹創(chuàng)建程序,都是采用的遞歸方式,遞歸方式創(chuàng)建的二叉樹與遍歷的過程相似,所創(chuàng)建的二叉樹,也是采用左右子節(jié)點方式,后續(xù)進(jìn)行遍歷操作十分方便。

轉(zhuǎn)化:直覺上,最簡單的二叉樹存儲方式其實是如下圖的數(shù)組:

*此圖出自某高校數(shù)據(jù)結(jié)構(gòu)ppt,但實在難以查證是哪個學(xué)校,無法直接感謝,請諒解。

首先,提供個滿二叉樹大小的數(shù)組,然后其中數(shù)值按完全二叉樹存儲。顯然,此種順序存儲方法:第i號(這里編號指對應(yīng)的完全二叉樹的位序)結(jié)點的左右孩子一定保存在第2i及2i+1號單元中。故此,為兼顧存儲的直觀與遍歷等操作的方便,從順序數(shù)組向左右子節(jié)點存儲方式的轉(zhuǎn)化也就十分重要。

1-轉(zhuǎn)化方法

分為幾個步驟:

(1)準(zhǔn)備原始數(shù)組

(2)分析數(shù)組中的有效值,對應(yīng)二叉樹節(jié)點非空;

(3)創(chuàng)建二叉樹節(jié)點;

(4)計算除最后一層子節(jié)點外,構(gòu)造節(jié)點間父子關(guān)系時的循環(huán)次數(shù);

(5)構(gòu)造二叉樹節(jié)點間的父子關(guān)系;

(6)確實二叉樹根節(jié)點;

主要代碼:

(1)準(zhǔn)備原始數(shù)組

//原始數(shù)組
    int intBiTreeInit[ARR_COUNT];

   
    //初始化原始數(shù)組至無效值
    for(int i=0;i<=ARR_COUNT-1;i++)
 intBiTreeInit[i]=NVALUE;

    //本if條件確保ARR_COUNT是否是的乘方-1
    if(0==(ARR_COUNT & (ARR_COUNT+1)))
    {
 for(int i=0;i<=ARR_COUNT-1;i++)
     intBiTreeInit[i]=2*(i+1);
    }
    else
 return RET_ERR;

    //使最后兩數(shù)為無效值
    intBiTreeInit[ARR_COUNT-1]=NVALUE;
    intBiTreeInit[ARR_COUNT-2]=NVALUE;

(2)分析數(shù)組中的有效值

    //開始獲得數(shù)組中有效值位置
    int intRel=0;
    int intArr=0;
    for(intArr=0;intArr<=intCount-1;intArr++)
    {
 if(elemArr[intArr]!=elemNValue)
 {
     intRel++;
     vecIntEffPos.push_back(intArr);
 }
 }

(3)創(chuàng)建二叉樹節(jié)點

    //數(shù)組中有效值對應(yīng)創(chuàng)建節(jié)點
    //同時初始化父子節(jié)點為NULL
    for(intArr=0;intArr<=intRel-1;intArr++)
    {
 pBiTreeTemp=(PBiTreeNode)malloc(sizeof(BiTreeNode));;
 
 if(NULL==pBiTreeTemp)    //判斷是否有足夠的內(nèi)存空間
 {
     cout<<"Memory alloc failure"<<endl;
     return RET_ERR;
 }

 //將有效值賦予節(jié)點
 pBiTreeTemp->BiTreeData=elemArr[vecIntEffPos[intArr]];
 
 //初始化左右子節(jié)點為null,便于后續(xù)的遍歷
 pBiTreeTemp->leftChild=NULL;
 pBiTreeTemp->rightChild=NULL;

 //先存節(jié)點值
 vecPBiTree.push_back(pBiTreeTemp);
   }

(4)計算除最后一層子節(jié)點外,構(gòu)造節(jié)點間父子關(guān)系時的循環(huán)次數(shù)

//生成父子關(guān)系時最后一層不必遍歷,故理論循環(huán)上限可優(yōu)化

    int intSubLast=0;
    intSubLast=intCount-(intCount+1)/2;

(5)構(gòu)造二叉樹節(jié)點間的父子關(guān)系

    for(intArr=0;intArr<=intSubLast-1;intArr++)
    {
 //左右節(jié)點若存儲有效值則同時創(chuàng)建父子關(guān)系
 if(elemArr[intArr*2+1]!=elemNValue)
     vecPBiTree[intArr]->leftChild=vecPBiTree[intArr*2+1];
     
 if(elemArr[intArr*2+2]!=elemNValue)
     vecPBiTree[intArr]->rightChild=vecPBiTree[intArr*2+2];
  }

(6)確實二叉樹根節(jié)點

pBiTree=vecPBiTree[0];

轉(zhuǎn)化為左右子節(jié)點方式存儲后,則各種遍歷操作按大多數(shù)教程的常規(guī)方式處理即可,如前序遍歷函數(shù):

int BiTreePreTrace(PBiTreeNode &pBiTree)
{
    //條件為非空樹
    if(pBiTree)
    {
 cout<<"Node value="<<(pBiTree->BiTreeData)<<endl;
 
 BiTreePreTrace(pBiTree->leftChild);    //遍歷左子樹
 BiTreePreTrace(pBiTree->rightChild);    //遍歷右子樹
    }
    return RET_OK;
}

完整程序,請見附件文件。

*上述程序在Windows7x64,vs2008環(huán)境編譯運行通過。

    火狐瀏覽器
    (34)火狐瀏覽器
    火狐瀏覽器安卓版功能特性快速快速瀏覽從啟動到頁面加載,到平移和縮放,都有超快的瀏覽體驗智能工具欄輕點智能工具欄,即可獲得經(jīng)常訪問的網(wǎng)站列表,書簽和歷史記錄,點擊訪問,無需輸入便捷簡潔易用標(biāo)簽頁便于您同時瀏覽多個站點加載項提供無圖閱讀模式,流量受限時啟用也能便捷查看網(wǎng)頁智能同步從任何裝置存取您瀏覽器的歷史紀(jì)錄,書簽,密碼,以及開啟的標(biāo)簽頁閱讀自動將零散的文章組合成美觀易讀的頁面插件提供多種功能插件以豐富您的瀏...更多>>
    • 火狐瀏覽器Firefox for Androidv45

      04-12 / 33.1M

      推薦理由:FirefoxMobile由大名鼎鼎的Firefox瀏覽器公司Mozilla官方提供,是一款基于移動平臺的手機和平板設(shè)備專用瀏覽
    • 火狐瀏覽器(firefox)v45.0.1 官方中

      04-12 / 43.8M

      推薦理由:火狐瀏覽器由謀智基金會開發(fā)的網(wǎng)絡(luò)瀏覽器,采用自己獨有的內(nèi)核,從而讓用戶獲得絕佳的瀏覽體驗!支持瀏覽器
    • 火狐瀏覽器下載記錄查看(FirefoxDo

      11-01 / 198KB

      推薦理由: 查看火狐瀏覽器下載記錄工具,專門用來查看firefox火狐瀏覽器的下載記錄,它是一個獨立的軟件,使用時
    • 火狐瀏覽器去廣告增強版20.0.1 綠色

      04-23 / 30.4M

      推薦理由:火狐瀏覽器去廣告增強版,這是國內(nèi)大神在firefox原版瀏覽器的基礎(chǔ)之上更正和進(jìn)化過的瀏覽器。保留原有的界面
    • IE10(Internet Explorer 10 for Wi

      11-16 / 21.7M

      推薦理由:微軟已經(jīng)正式發(fā)布nternet Explorer 10 for Windows 7,這一版本讓W(xué)indows 7用戶等待了好久。之前IE10一直僅
    • 谷歌瀏覽器2016(Chrome)v50.0.2661

      04-15 / 43.2M

      推薦理由:谷歌瀏覽器GoogleChrome將簡約的界面設(shè)計與先進(jìn)的技術(shù)相融合,讓網(wǎng)絡(luò)瀏覽變得更快速、安全而且簡便。谷歌瀏
    ie瀏覽器
    (39)ie瀏覽器
    西西軟件園提供好用的瀏覽器官方下載,包括,瀏覽器真的是越來越強大了,界面極其清爽簡潔新增網(wǎng)頁固定功能智能網(wǎng)址地址欄快速訪問入口獨立標(biāo)簽頁下載管理器開發(fā)人員工具多功能地址欄加載管理和跟蹤保護(hù)功能支持和加速功能。...更多>>
    • ie11 64位 for win7官方正式版

      01-29 / 87.2M

      推薦理由:ie11 win7 64位官方正式版適用于win7 64位的系統(tǒng)。微軟為IE11添加了一些新特性,比如對WebGL的支持,以及對
    • ie瀏覽器(Internet Explorer 11)v1

      01-29 / 28.1M

      推薦理由:微軟Internet Explorer 11今天正式發(fā)布,Windows 7以上版本均可以安裝,而Windows 8.1系統(tǒng)則內(nèi)置了這一版本
    • IE10 64位版win7 X64官方正式版(IE

      02-26 / 41.7M

      推薦理由:微軟已經(jīng)正式發(fā)布nternet Explorer 10 for Windows 7,這一版本讓W(xué)indows 7用戶等待了好久。之前IE10一直僅
    • IE10(Internet Explorer 10 for Wi

      11-16 / 21.7M

      推薦理由:微軟已經(jīng)正式發(fā)布nternet Explorer 10 for Windows 7,這一版本讓W(xué)indows 7用戶等待了好久。之前IE10一直僅
    • IE10預(yù)覽版官方第四版

      02-15 / 19.5M

      推薦理由:IE10平臺預(yù)覽版第四版(PP4),使得IE瀏覽器的靈活性得到進(jìn)一步增強。新版IE10在HTML5技術(shù)上帶來了相當(dāng)大的
    • IE7 for xp /2003V7.0.5730.13官方

      10-30 / 13.7M

      推薦理由:IE7中文版支持中文域名,包含了許多重大安全改進(jìn)的Internet Explorer 7終于發(fā)布了最新正式版本。微軟通過其
    opera瀏覽器
    (34)opera瀏覽器
    目前市場上的安卓瀏覽器種類繁多,不過有一款瀏覽器卻一直活躍在安卓系統(tǒng)上,那就是歐朋瀏覽器。歐朋瀏覽器是全球最流行的手機瀏覽器的中文版本。歐朋手機瀏覽器基于開發(fā),延續(xù)小巧快速節(jié)省流量的優(yōu)點,同時集成了諸多貼近中國用戶的社會化應(yīng)用。歐朋瀏覽器最大的特色就是快,與同類產(chǎn)品相比優(yōu)勢比較明顯。體積小,適應(yīng)性好,同時支持智能非智能手機。歐朋瀏覽器特點歐朋瀏覽器支持智能預(yù)讀智能縮放手勢操作,外加時尚個性化的界面...更多>>
    瀏覽器2016
    (24)瀏覽器2016
    西西軟件園強力推薦的瀏覽器下載排行榜產(chǎn)品,目前市場上的瀏覽器產(chǎn)品眾多,大家可能會有選擇性困難,到底哪款瀏覽器速度最快,體驗最好最安全這些都是在使用瀏覽器當(dāng)中常見的疑問,如何選擇一款最好的瀏覽器,其實最適合的就是最好的;鸷鼮g覽器是一個完全開放源代碼,任何人都可以自由參與開發(fā)的,支持多種操作系統(tǒng)的瀏覽器,因為其強大的可定制性和豐富的擴展程序而成為最有個性的瀏覽器.和支持最好,彈窗攔截和更勝一籌,執(zhí)行速度...更多>>
    • 傲游(maxthon)v4.9.1.1000 官方最新

      02-25 / 38.4M

      推薦理由:傲游發(fā)布傲游云瀏覽器,為用戶提供跨平臺、多設(shè)備的無縫瀏覽。據(jù)悉,傲游云瀏覽器將不再是簡單的標(biāo)簽同步,
    • 百度瀏覽器V8.3.100.3354 官方正式

      04-15 / 46.9M

      推薦理由:百度瀏覽器的使命是讓人們更流暢的上網(wǎng)、更愉悅的在線生活。通過百度的開放整合和精準(zhǔn)識別,您可以一鍵觸達(dá)
    • 360極速瀏覽器8.5.0.118 官方正式版

      10-30 / 38.9M

      推薦理由:360極速瀏覽器7.3Beta版火速上線,國內(nèi)率先更新chrome26內(nèi)核的雙核瀏覽器!7.3版本基于chrome26正式版內(nèi)核開
    • 谷歌瀏覽器2016(Chrome)v50.0.2661

      04-15 / 43.2M

      推薦理由:谷歌瀏覽器GoogleChrome將簡約的界面設(shè)計與先進(jìn)的技術(shù)相融合,讓網(wǎng)絡(luò)瀏覽變得更快速、安全而且簡便。谷歌瀏
    • 搜狗瀏覽器智慧版V4.2.6.11794 官方

      03-23 / 32.0M

      推薦理由:搜狗瀏覽器配備強勁雙核動力引擎(內(nèi)置IE8內(nèi)核)、全網(wǎng)加速、網(wǎng)速保護(hù)、防假死、下載加速,5級加速體系打造
    • IE10 64位版win7 X64官方正式版(IE

      02-26 / 41.7M

      推薦理由:微軟已經(jīng)正式發(fā)布nternet Explorer 10 for Windows 7,這一版本讓W(xué)indows 7用戶等待了好久。之前IE10一直僅
    搜狗瀏覽器
    (68)搜狗瀏覽器
    搜狗瀏覽器是搜狗公司推出的國內(nèi)首款集高速的內(nèi)核谷歌瀏覽器內(nèi)核與兼容的內(nèi)核微軟瀏覽器內(nèi)核于一身的雙核高速瀏覽器。最新推出的搜狗高速瀏覽器.正式版具有具有超高速,超兼容,超安全的特點。搜狗瀏覽器還具有擴展功能,涵蓋了從工作學(xué)習(xí)生活服務(wù)系統(tǒng)工具時尚休閑資訊閱讀到影音視頻游戲娛樂大類余款擴展。更有包括登錄助手如意淘微信搖一搖傳圖等特色擴展。搜狗助手搜狗助手是一款用于訂購火車票的助手軟件,能夠減少大家在網(wǎng)上訂...更多>>
    • 搜狗瀏覽器智慧版V4.2.6.11794 官方

      03-23 / 32.0M

      推薦理由:搜狗瀏覽器配備強勁雙核動力引擎(內(nèi)置IE8內(nèi)核)、全網(wǎng)加速、網(wǎng)速保護(hù)、防假死、下載加速,5級加速體系打造
    • 搜狗手機瀏覽器 android版v4.2.1官

      02-05 / 17.2M

      推薦理由:搜狗瀏覽器安卓版終于上線啦,雖然相比iphone版雖然姍姍來遲,但是畢竟終于登陸安卓了,快來體驗吧!搜狗瀏
    • 搜狗手機瀏覽器搶票版2.2.1 安卓版

      01-06 / 15.1M

      推薦理由:搜狗瀏覽器在12月13日發(fā)布的一則新聞又點燃了眾多網(wǎng)友心中的希望,搜狗在其官微表示:“將針對搶票中最耽誤
    • 搜狗高速瀏覽器V6.2.5.21050 官方正

      04-23 / 38.4M

      推薦理由:搜狗高速瀏覽器是目前互聯(lián)網(wǎng)上最快速最流暢的新型瀏覽器之一,與拼音輸入法、五筆輸入法等產(chǎn)品一同成為您高
    • 搜狗瀏覽器2014雙11網(wǎng)購專版

      05-15 / 34.2M

      推薦理由:搜狗瀏覽器配備強勁雙核動力引擎(內(nèi)置IE8內(nèi)核)、全網(wǎng)加速、網(wǎng)速保護(hù)、防假死、下載加速,5級加速體系打造
    • 搜狗瀏覽器智慧版4.2.6.11794 綠色

      03-23 / 35.5M

      推薦理由:搜狗高速瀏覽器是目前互聯(lián)網(wǎng)上最快速最流暢的新型瀏覽器,與拼音輸入法、五筆輸入法等產(chǎn)品一同成為您高速上

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)
    推薦文章

    沒有數(shù)據(jù)