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

首頁 - 網校 - 萬題庫 - 直播 - 雄鷹網校 - 團購 - 書城 - 模考 - 學習通 - 導航 -
首頁網校萬題庫直播雄鷹網校團購書城模考論壇實用文檔作文大全寶寶起名
2015中考
法律碩士
2015高考
MBA考試
2015考研
MPA考試
在職研
中科院
考研培訓
專升本
自學考試 成人高考
四 六 級
GRE考試
攻碩英語
零起點日語
職稱英語
口譯筆譯
申碩英語
零起點韓語
商務英語
日語等級
GMAT考試
公共英語
職稱日語
新概念英語
專四專八
博思考試
零起點英語
托福考試
托業考試
零起點法語
雅思考試
成人英語三級
零起點德語
等級考試
華為認證
水平考試
Java認證
職稱計算機 微軟認證 思科認證 Oracle認證 Linux認證
公 務 員
導游考試
物 流 師
出版資格
單 證 員
報 關 員
外 銷 員
價格鑒證
網絡編輯
駕 駛 員
報檢員
法律顧問
管理咨詢
企業培訓
社會工作者
銀行從業
教師資格
營養師
保險從業
普 通 話
證券從業
跟 單 員
秘書資格
電子商務
期貨考試
國際商務
心理咨詢
營 銷 師
司法考試
國際貨運代理人
人力資源管理師
廣告師職業水平
衛生資格 執業醫師 執業藥師 執業護士
會計從業資格
基金從業資格
統計從業資格
經濟師
精算師
統計師
會計職稱
法律顧問
ACCA考試
初級會計職稱
資產評估師
高級經濟師
注冊會計師
高級會計師
美國注冊會計師
審計師考試
國際內審師
注冊稅務師
理財規劃師
一級建造師
安全工程師
設備監理師
公路監理師
公路造價師
二級建造師
招標師考試
物業管理師
電氣工程師
建筑師考試
造價工程師
注冊測繪師
質量工程師
巖土工程師
注冊給排水
造價員考試
注冊計量師
環保工程師
化工工程師
暖通工程師
咨詢工程師
結構工程師
城市規劃師
材料員考試
消防工程師
監理工程師
房地產估價
土地估價師
安全評價師
房地產經紀人
投資項目管理師
環境影響評價師
土地登記代理人
寶寶起名
繽紛校園
實用文檔
入黨申請
英語學習
思想匯報
作文大全
工作總結
求職招聘 論文下載 直播課堂
您現在的位置: 考試吧 > 軟件水平考試 > 復習資料 > 程序員 > 正文

2015年軟件水平考試程序員精選題(4)

來源:考試吧 2015-01-15 11:28:53 考試吧:中國教育培訓第一門戶 模擬考場
考試吧整理“2015年軟件水平考試程序員精選題(4)”供考生參考,更多軟件水平考試資訊和備考資料請關注考試吧軟件水平考試網。

  查看匯總:2015軟件水平考試程序員精選題匯總

  求二元查找樹的鏡像

  題目:輸入一顆二元查找樹,將該樹轉換為它的鏡像,即在轉換后的二元查找樹中,左子樹的結點都大于右子樹的結點。用遞歸和循環兩種方法完成樹的鏡像轉換。

  例如輸入:

  8

  / \

  6 10

  /\ /\

  5 7 9 11

  輸出:

  8

  / \

  10 6

  /\ /\

  11 9 7 5

  定義二元查找樹的結點為:

  struct BSTreeNode // a node in the binary search tree (BST)

  {

  int m_nValue; // value of node

  BSTreeNode *m_pLeft; // left child of node

  BSTreeNode *m_pRight; // right child of node

  };

  分析:盡管我們可能一下子不能理解鏡像是什么意思,但上面的例子給我們的直觀感覺,就是交換結點的左右子樹。我們試著在遍歷例子中的二元查找樹的同時來交換每個結點的左右子樹。遍歷時首先訪問頭結點8,我們交換它的左右子樹得到:

  8

  / \

  10 6

  /\ /\

  9 11 5 7

  我們發現兩個結點6和10的左右子樹仍然是左結點的值小于右結點的值,我們再試著交換他們的左右子樹,得到:

  8

  / \

  10 6

  /\ /\

  11 9 7 5

  剛好就是要求的輸出。

  上面的分析印證了我們的直覺:在遍歷二元查找樹時每訪問到一個結點,交換它的左右子樹。這種思路用遞歸不難實現,將遍歷二元查找樹的代碼稍作修改就可以了。參考代碼如下:

  ///////////////////////////////////////////////////////////////////////

  // Mirror a BST (swap the left right child of each node) recursively

  // the head of BST in initial call

  ///////////////////////////////////////////////////////////////////////

  void MirrorRecursively(BSTreeNode *pNode)

  {

  if(!pNode)

  return;

  // swap the right and left child sub-tree

  BSTreeNode *pTemp = pNode->m_pLeft;

  pNode->m_pLeft = pNode->m_pRight;

  pNode->m_pRight = pTemp;

  // mirror left child sub-tree if not null

  if(pNode->m_pLeft)

  MirrorRecursively(pNode->m_pLeft);

  // mirror right child sub-tree if not null

  if(pNode->m_pRight)

  MirrorRecursively(pNode->m_pRight);

  }

  由于遞歸的本質是編譯器生成了一個函數調用的棧,因此用循環來完成同樣任務時最簡單的辦法就是用一個輔助棧來模擬遞歸。首先我們把樹的頭結點放入棧中。在循環中,只要棧不為空,彈出棧的棧頂結點,交換它的左右子樹。如果它有左子樹,把它的左子樹壓入棧中;如果它有右子樹,把它的右子樹壓入棧中。這樣在下次循環中就能交換它兒子結點的左右子樹了。參考代碼如下:

  ///////////////////////////////////////////////////////////////////////

  // Mirror a BST (swap the left right child of each node) Iteratively

  // Input: pTreeHead: the head of BST

  ///////////////////////////////////////////////////////////////////////

  void MirrorIteratively(BSTreeNode *pTreeHead)

  {

  if(!pTreeHead)

  return;

  std::stackstackTreeNode;

  stackTreeNode.push(pTreeHead);

  while(stackTreeNode.size())

  {

  BSTreeNode *pNode = stackTreeNode.top();

  stackTreeNode.pop();

  // swap the right and left child sub-tree

  BSTreeNode *pTemp = pNode->m_pLeft;

  pNode->m_pLeft = pNode->m_pRight;

  pNode->m_pRight = pTemp;

  // push left child sub-tree into stack if not null

  if(pNode->m_pLeft)

  stackTreeNode.push(pNode->m_pLeft);

  // push right child sub-tree into stack if not null

  if(pNode->m_pRight)

  stackTreeNode.push(pNode->m_pRight);

  }

  }

  相關推薦:

  2015年軟考信息技術處理員考前知識點總結匯總

  2015年軟件水平考試《程序員》提高練習題匯總

  2015軟件水平考試《程序員》知識點總結匯總

文章責編:wangmeng  
看了本文的網友還看了
文章搜索
軟件水平考試欄目導航
版權聲明:如果軟件水平考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本軟件水平考試網內容,請注明出處。
Copyright © 2004- 考試吧軟件水平考試網 All Rights Reserved 
中國科學院研究生院權威支持(北京)
在線模擬試題
考證通關殺器
考試最新資訊
一次通關技巧
主站蜘蛛池模板: 国产免费不卡v片在线观看 国产免费播放一区二区三区 | 国产v在线在线观看羞羞答答 | 在线日本三级 | 一本大道香蕉高清视频在线 | 亚洲欧美一区二区视频 | 欧美日韩一区二区三区麻豆 | 黄色免费网址在线观看 | 在线观看黄视频 | 99爱在线视频这里只有精品 | 欧美99视频| 很黄很色的男女无遮挡动态图 | 777色狠狠一区二区三区香蕉 | 中文字幕一区二区三区 精品 | 污91视频 | 天天噜噜色 | 国产一线大片免费观看 | 国产成人91精品 | 91丝瓜视频 | 中文有码在线 | 麻豆国内精品欧美在线 | 成年人免费在线视频观看 | yellow免费影视大全 | 又黄又变态又免费的视频 | 国产精品亚洲欧美一区麻豆 | 三级网站 | 91精品国产免费久久久久久青草 | 美女视频永久黄网站在线观看 | 欧美成人免费高清网站 | 亚洲成人社 | 免费一级毛片女人图片 | 天天射天天搞 | 国产成人在线观看免费网站 | 全色网站 | 天堂资源地址在线 | 最近免费中文字幕大全高清10 | 日韩福利在线观看 | 日韩一区二区三 | 国产日韩精品欧美一区色 | 青春草在线免费视频 | 免费精品国产日韩热久久 | 欧美一级视频在线 |