• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            雁過無痕

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::

            《編程之美》讀書筆記193.9 重建二叉樹

             

            對根節(jié)點a以及先序遍歷次序P和中序遍歷次序I,查找aI中的位置,將I分為兩部分,左邊部分的元素都在a的左子樹上,右邊的元素都在a的右子樹上,因而可以確定a的左子樹節(jié)點數(shù)和a的右子樹節(jié)點數(shù),再結合P,可以確定a的左孩子和右孩子,以及各個孩子的先序和中序遍歷次序。

            由于已經(jīng)知道節(jié)點數(shù),可以事先分配好內(nèi)存,可以按先序遍歷次序連續(xù)存放節(jié)點。

             

            rebuild_tree_1

            上面的代碼,棧深度是O(n),有可能出現(xiàn)棧溢出,可以修改代碼,減少一次遞歸調(diào)用,實現(xiàn)棧深度為O(lg n)

             


            rebuild_tree_2

             

            書上的代碼(P246):

             

             

            可能引起內(nèi)存泄漏(當*pRoot!=NULL,新申請的內(nèi)存沒釋放),注釋也不對(不是復制節(jié)點,而是更改指針指向新建的節(jié)點)。另外,頻繁的new,極有可能會產(chǎn)生內(nèi)存碎片。當節(jié)點很小時,內(nèi)存浪費很嚴重(每new一次都要額外分配空間儲存相關信息)。


            posted on 2010-08-16 00:27 flyinghearts 閱讀(1039) 評論(0)  編輯 收藏 引用 所屬分類: 編程之美
            国产V综合V亚洲欧美久久| 久久久久久国产精品无码超碰| 久久亚洲国产成人影院网站| 久久天堂电影网| 久久精品国产99久久香蕉| 亚洲AⅤ优女AV综合久久久| 久久久久亚洲av无码专区导航| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 国产亚洲成人久久| 久久九九免费高清视频| 久久精品国产2020| 97久久精品人妻人人搡人人玩| 中文字幕无码av激情不卡久久| 久久99亚洲网美利坚合众国| 久久亚洲精品国产亚洲老地址| 91精品国产高清久久久久久国产嫩草 | 亚洲国产精品狼友中文久久久| 国产成人精品白浆久久69| 人妻无码αv中文字幕久久琪琪布| 99久久精品国产免看国产一区| 久久久久久伊人高潮影院| 久久强奷乱码老熟女| 丁香五月综合久久激情| 国产精品视频久久| AV色综合久久天堂AV色综合在| 无遮挡粉嫩小泬久久久久久久| 久久成人国产精品免费软件| 久久久久女教师免费一区| 岛国搬运www久久| 精品综合久久久久久88小说| 久久综合丝袜日本网| 伊人久久综合热线大杳蕉下载| 久久精品草草草| 精品久久人人做人人爽综合| 99久久国产热无码精品免费久久久久| 久久精品中文騷妇女内射| 97久久超碰国产精品旧版| 久久久久无码精品国产| 好久久免费视频高清| 国产福利电影一区二区三区久久久久成人精品综合 | 久久精品9988|