黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證
華為認證 | Java認證
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格
報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師
人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平
駕駛員 | 網絡編輯
衛生資格 | 執業醫師 | 執業藥師 | 執業護士
會計從業資格考試會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師
注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師
質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師
設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師
城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲
您現在的位置: 考試吧(Exam8.com) > 軟件水平考試 > 復習資料 > 程序員資料 > 正文

2011年軟考程序員考試復習筆試知識點整理(18)

來源:考試吧Exam8.com) 2011-4-30 18:23:29 考試吧:中國教育培訓第一門戶 模擬考場
考試吧提供了“2011年軟考程序員考試復習筆試知識點整理”,供考生參考。

  更多:2011年軟考程序員考試復習筆試知識點整理匯總

  22、線索二叉樹

  (1)以二叉鏈表結點數據結構所構成的二叉鏈表作為二叉樹的存儲結構,叫做線索二叉鏈表;指向結點的線性前驅或者線性后繼結點的指針叫做線索;加上線索的二叉樹稱為線索二叉樹(Threaded Binary Tree);對二叉樹以某種次序(前序、中序、后序)遍歷使其變為線索樹的過程叫做線索化。

  (2)[為什么要有線索二叉樹]二叉樹是一種非線性結構,對二叉樹的遍歷實際上是將二叉樹這種非線性結構按某種需要轉化為線性序列,以便以后在對二叉樹進行某種處理時直接使用。因此如何保存遍歷二叉樹后得到的線性序列,以避免對二叉樹的重復遍歷,是一個需要解決的問題。

  一種最簡單的方法是將得到的遍歷序列存放在另外的存儲空間內,但這需要付出額外的存儲花銷。我們能不能在不增加存儲空間的前提下,在原來二叉鏈表的存儲空間內反映出某種遍歷后結點的邏輯關系,即遍歷后某個結點的直接前驅和直接后繼呢?

  另一種方法就是:當我們用標準形式存儲一棵二叉樹時,樹中有一半以上的指針是空的。對于一棵具有n個結點的二叉樹,如果按標準形式來存儲,那么總共有2n個指針(用來存放左孩子、右孩子的指針)其中只有(n-1)個用來指向子結點,另外(n+1)個指針時空的。這顯然是浪費,我們應該設法利用這些空的指針來實現保存遍歷二叉樹后得到的線性序列。

  由此,我們產生了線索二叉樹的概念。

  線索二叉樹主要是為了解決查找結點的線性前驅與后繼不方便的難題。它只增加了兩個標志性域,就可以充分利用沒有左或右孩子的結點的左右孩子的存儲空間來存放該結點的線性前驅結點與線性后繼結點。兩個標志性域所占用的空間是極少的,所有充分利用了二叉鏈表中空閑存的儲空間。

  對一棵給定的二叉樹,按不同的遍歷規則進行線索化所得到的線索樹是不同的,分別用前序、中序、后序遍歷規則,對給定二叉樹進行線索化得到的二叉樹,分別稱之為前序線索樹、中序線索樹、后序線索樹。

  要實現線索二叉樹,就必須定義二叉鏈表結點數據結構如下(定義請看代碼):

  LnodeLtagDataRtagRnode

  說明:

  1. Ltag=0時,表示Lnode指向該結點的左孩子;

  2. Ltag=1時,表示Lnode指向該結點的線性前驅結點;

  3. Rtag=0時,表示Rnode指向該結點的右孩子;

  4. Rtag=1時,表示Rnode指向該結點的線性后繼結點;

  中序次序線索化二叉樹算法:

  中序次序線索化是指用二叉鏈表結點數據結構建立二叉樹的二叉鏈表,然后按照中序遍歷的方法訪問結點時建立線索;(具體看代碼)

  檢索中序二叉樹某結點的線性前驅結點的算法:

  1. 如果該結點的Ltag=1,那么Lnode就是它的線性前驅;

  2. 如果該結點的Ltag=0,那么該結點左子樹最右邊的尾結點就是它的線性前驅點;

  (具體請看代碼)

  檢索中序二叉樹某結點的線性后繼結點和算法:

  1. 如果該結點的Rtag=1,那么Rnode就是它的線性后繼結點;

  2. 如果該結瞇的Rtag=0,那么該結點右子樹最左邊的尾結點就是它的線性后繼結點

  (具體請看代碼)

  解決方案中所有到二叉樹的中序線索二叉樹和中序線索鏈表的圖

  //二叉樹線索化

  //輸入二叉樹先序,建樹,然后中序線索化,遍歷輸出

  #include

  usingnamespace std;

  enumPointerTag

  {

  Link,Thread //枚舉值Link和Thread分別為0,1

  };

  structBiThrNode //線索二叉樹的結點類型

  {

  char data;

  PointerTag LTag; //左標志

  PointerTag RTag; //右標志

  BiThrNode *lchild; //左孩子指針

  BiThrNode *rchild; //右孩子指針

  };

  typedefBiThrNode* BiThrTree;

  BiThrNode*pre=NULL; //全局量

  voidInOrderThreading(BiThrTree & Thrt,BiThrTree T);//線索化

  voidInThreading(BiThrTree p);//中序遍歷線索化

  boolPreOrderCreatBiTree(BiThrTree &T);//先序建立樹

  voidInOrderTraverse_Thr(BiThrTree T);//中序遍歷線索樹

  intmain()

  {

  BiThrTree T,Thrt;

  printf("輸入先序序列('#'表示空節點)建立二叉樹:\n");

  PreOrderCreatBiTree(T);//先序建立樹

  InOrderThreading(Thrt,T);//中序線索化

  printf("中序線索化,中序遍歷得中綴式:\n");

  InOrderTraverse_Thr(Thrt);//中序遍歷線索樹

  printf("\n");

  return 0;

  }

1 2 3 下一頁
  相關推薦:

  軟考程序員考試歷年真題重點題總結及答案

  2011年上半年軟考報名時間及方式匯總

  軟考程序員考試歷年真題匯總(2007年-2010年)

文章搜索
軟件水平考試欄目導航
版權聲明:如果軟件水平考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本軟件水平考試網內容,請注明出處。
主站蜘蛛池模板: 国产成人h片视频在线观看 国产成人lu在线视频 | 香港美女一级毛片 视频 | 综合久久99 | 久久婷婷一区二区三区 | 日本免费中文字幕 | 亚洲欧美精品日韩欧美 | 香蕉超级碰碰碰97视频蜜芽 | 99久免费精品视频在线观看2 | 站长推荐国产精品视频 | 欧美xxxx成人免费网站 | 韩国理伦片最新免费观看 | 亚洲色啦啦狠狠网站 | 激情成人综合网 | 成人高清在线观看播放 | 网站午夜 | 国产精品国内免费一区二区三区 | 亚洲不卡免费视频 | 激情成人综合网 | 国产精品嫩草视频永久网址 | 亚洲va久久久久 | 一级毛片免费在线播放 | 日本理论片在线播放 | 最近免费字幕中文大全视频 | 新一级毛片国语版 | 深夜福利网站在线 | 亚洲欧洲日产国码在线观看 | 欧美日韩一二三区 | 午夜黄色小视频 | 91久久精品国产一区二区 | 欧美日韩免费看 | 日韩视频第1页 | 猫色综合网 | 国产视频精品免费 | 亚洲国产中文字幕在线观看 | 中文字幕日韩有码 | 亚洲一区二区三区在线观看蜜桃 | 激情五月综合综合久久69 | 日本3p视频在线看高清 | 中文字幕天天躁日日躁狠狠躁免费 | 日韩综合在线 | 午夜高清免费在线观看 |