青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++之竹

無論是太陽下,還是風雨中,都要成長!

常用鏈接

統計

最新評論

樹中兩個結點的最低公共祖先

<本文的樣例代碼:/Files/qingbizhu/LowestCommonAncestor.zip>
 
這是《劍指Offer——名企面試官精講典型編程題》一書中的面試題50,此題針對所給條件的不同,將需要截然不同的解題思路和方法。書中給出了針對此題的3種不同條件的解題,本文所要講解的是對其第3種條件的一個改進解法。具體的題目及條件如下。
 
【題目】:
      輸入兩個樹結點,求它們的最低公共祖先。

【補充條件】:

      樹是普通的樹,而且樹中的結點沒有指向父節點的指針。

 

針對上述的題目和條件,書中給出了如下解決方案。

 

【原方案】:

      使用兩個鏈表,對樹進行兩次遍歷以查找兩個樹結點,并保持路徑到兩個鏈表中,從而將問題轉化為求兩個鏈表的最后一個公共結點。

 

從該方案中,觀察到兩次樹結點查找的遍歷中,其中一個結點的遍歷過的樹結點序列將完全覆蓋查找另一結點時所遍歷的樹結點序列。由此入手,本文提出了如下的改進解決方案。

【改進方案】:

    深度優先遍歷樹,并記錄路徑,當找到第一個結點后,在當前基礎上繼續遍歷搜索第二個結點,并記錄第一個結點路徑的變化程度,直到找到第二個結點。最后,根據棧信息和記錄的結點路徑變化程度得到最低公共祖先。如圖1,假設輸入的兩個樹結點為DK,樹的根節點為R,則求DK的最低公共結點的過程如下表: 

步驟

第一個結點

第二個結點

路徑變化程度

1

R

2

RA

3

RAF

4

RAFJ

5

RAFG

6

RAFK

K

0(或K

7

RAC

K

1(或A

8

RACE

K

2(或A

9

RACI

K

2(或A

10

RAD

K

D

1(或A

è 得出結果,最低公共祖先結點為A

 

從中,可以看到,改進后的方案,只需對樹執行一次遍歷。而在輔助空間的需求上, 只需使用一個棧(外加少量結點指針變量和1個表示路徑變化程度的整型變量)。而且,如果采用遞歸的方式實現,該棧所需保存的信息,還可以通過遞歸時的函數調用棧得以保存。

 

【附注】:

  1. 此處,有如下一個問題:
    假設待查找公共祖先的兩樹結點,其中一結點在以另一結點為根的子樹上(包括兩結點相同)時,公共祖先的確定規則——
    “作為子樹根結點的那個結點”還是“子樹根結點的父節點”?
    例如:對上面圖1中的那棵樹,如果待查結點為根結點R和結點F,那么最終的查找結果是為R呢,還是因為R是根結點無父結點而得出NULL
    此問題在書中未提及,但查看書中代碼,確認是選擇了后者;而在本人的樣例代碼中則采用了前面的觀點。
  2. 在樣例代碼中,對樹結點在棧中的存儲方式略有改動。
  3. 樣例代碼工程所使用的環境為 Visual C++ 2010;
    其中:tree.h/cpp為功能代碼文件,TestLowestCommonAncestor.h/cpp為相應的UT代碼文件;
    UT采用gtest所編寫,編譯鏈接請根據gtest在自己本機的路徑狀況修改gtest_link.props文件中相應的鏈接項。

 

posted on 2012-04-05 23:45 青碧竹 閱讀(3099) 評論(0)  編輯 收藏 引用 所屬分類: 算法相關

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美日韩国产bt| 亚洲国产欧洲综合997久久| 女人香蕉久久**毛片精品| 亚洲剧情一区二区| 日韩系列欧美系列| 亚洲一区在线观看视频| 中文亚洲免费| 欧美一二三视频| 久久久国产一区二区三区| 久久久国产精品一区| 欧美激情中文字幕乱码免费| 欧美a级片网站| 国产精品视频观看| 欧美视频专区一二在线观看| 国产视频亚洲精品| 99pao成人国产永久免费视频| 亚洲无毛电影| 欧美激情在线有限公司| 亚洲永久免费观看| 久久久国产成人精品| 欧美理论在线| 亚洲电影免费观看高清| 性做久久久久久久久| 亚洲高清电影| 午夜精品成人在线| 欧美视频精品在线| 亚洲国内精品| 久久人人97超碰人人澡爱香蕉| 亚洲狼人精品一区二区三区| 先锋影音网一区二区| 欧美喷潮久久久xxxxx| 亚洲黄色免费电影| 亚洲福利视频三区| 欧美裸体一区二区三区| 99国产精品久久久久久久| 日韩亚洲欧美高清| 亚洲久久在线| 久久精品国产免费看久久精品| 99re成人精品视频| 国产精品多人| 久久超碰97人人做人人爱| 午夜宅男欧美| 亚洲激情在线激情| 亚洲人成在线播放| 国产精品二区三区四区| 欧美影院午夜播放| 欧美18av| 亚洲欧美日韩综合| 一本色道久久综合亚洲精品不卡| 欧美日韩在线影院| 久久婷婷影院| 国产精品高清在线| 欧美成人性网| 久久久99免费视频| 美女网站久久| 蜜桃精品久久久久久久免费影院| 亚洲区国产区| 欧美中文字幕不卡| 亚洲伦理自拍| 久久精品国产综合精品| 亚洲午夜精品久久| 欧美国产日韩一区| 美女视频网站黄色亚洲| 国产精品久久久对白| 亚洲国产欧美日韩| 在线观看精品| 欧美夜福利tv在线| 亚洲一区二区久久| 欧美金8天国| 亚洲国产精品久久久| 1024亚洲| 免费欧美电影| 亚洲精品国产精品乱码不99| 伊人影院久久| 久久久久久成人| 女同性一区二区三区人了人一 | 亚洲视频1区2区| 欧美a级片网| 亚洲黄色一区| 亚洲免费在线观看视频| 欧美色123| 久久国产一二区| 最新高清无码专区| 亚洲天堂黄色| 精品91在线| 欧美视频一区| 欧美一级艳片视频免费观看| 久久综合网hezyo| 亚洲午夜久久久久久尤物| 国产欧美亚洲精品| 欧美激情精品久久久久久免费印度| 国产精品久久久久永久免费观看 | 性视频1819p久久| 欧美激情中文字幕一区二区| 日韩午夜av电影| 国产欧美日韩高清| 欧美激情视频一区二区三区免费| 亚洲精品在线三区| 欧美成人亚洲成人| 久久九九99视频| 国产精品区一区二区三| 欧美国产精品中文字幕| 久久五月婷婷丁香社区| 午夜精品国产更新| 亚洲视频播放| 亚洲精品久久久久久久久久久| 久久久久久久久久久久久久一区| 中文无字幕一区二区三区| 日韩视频在线观看免费| 亚洲激精日韩激精欧美精品| 在线观看91精品国产入口| 国产欧美日韩精品在线| 国产精品一区视频| 欧美日韩在线视频一区| 欧美日韩国产欧| 欧美母乳在线| 国产精品久久久久久久午夜| 国产精品久久久久久久久久久久| 欧美精品免费视频| 国产精品视频免费观看www| 国产精品一级久久久| 国产日本精品| 亚洲第一页中文字幕| 亚洲高清视频一区| 亚洲一区二区三区午夜| 久久精品99国产精品酒店日本| 欧美中文字幕在线播放| 欧美国产一区二区三区激情无套| 亚洲第一在线| 午夜日韩激情| 欧美日韩一区二区国产| 国产精品久久久久久亚洲调教| 国产综合久久| 亚洲视频每日更新| 欧美激情亚洲激情| 欧美一二三区精品| 国产精品久久久久aaaa| 99国产精品久久久久久久久久| 久久蜜桃av一区精品变态类天堂| 亚洲片在线观看| 久久蜜桃精品| 国产一区二区你懂的| 国产欧美一区二区三区在线看蜜臀| 国产精品第十页| 亚洲私拍自拍| a91a精品视频在线观看| 欧美成人自拍| 亚洲欧洲精品一区二区三区| 久久中文在线| 久久精品五月婷婷| 国产一区二区三区免费观看| 欧美一级大片在线免费观看| 亚洲小说欧美另类婷婷| 欧美大片在线观看一区二区| 国内一区二区三区在线视频| 久久av在线看| 国产日韩视频| 最新中文字幕一区二区三区| 久久精品国产视频| 久久综合网色—综合色88| 亚洲福利免费| 一区二区三区www| 狠狠色综合一区二区| 欧美大片在线影院| 欧美大片免费观看| 亚洲午夜国产成人av电影男同| 亚洲一区日韩| 亚洲三级观看| 欧美一区成人| 宅男精品视频| 午夜日韩av| 一区二区三区成人精品| 一本久道久久久| 国产麻豆成人精品| 亚洲国产日韩在线一区模特| 欧美性猛交99久久久久99按摩| 久久人人97超碰精品888| 欧美日韩在线大尺度| 欧美大秀在线观看| 国产亚洲美州欧州综合国| 亚洲福利国产精品| 国产一区二区三区四区五区美女 | 欧美一区二区三区四区在线观看| 尤物yw午夜国产精品视频| 亚洲曰本av电影| 在线视频亚洲| 欧美人成在线视频| 能在线观看的日韩av| 国产精品久久久久国产精品日日| 亚洲欧洲精品一区| 亚洲一区中文| 国产乱码精品一区二区三区不卡| 91久久精品国产91性色tv| 影音先锋国产精品| 噜噜爱69成人精品| 亚洲国产一区二区三区在线播| 日韩亚洲不卡在线| 国产精品久久久亚洲一区| 午夜精品久久99蜜桃的功能介绍| 久久精品女人天堂|