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

首頁(yè) - 網(wǎng)校 - 萬(wàn)題庫(kù) - 美好明天 - 直播 - 導(dǎo)航
您現(xiàn)在的位置: 考試吧 > 軟件水平考試 > 模擬試題 > 程序員 > 正文

計(jì)算機(jī)軟件水平考試《程序員》面試題精選題(2)

來(lái)源:考試吧 2017-10-18 11:56:35 要考試,上考試吧! 萬(wàn)題庫(kù)
“計(jì)算機(jī)軟件水平考試《程序員》面試題精選題(2)”供考生參考。更多軟件水平考試內(nèi)容請(qǐng)?jiān)L問(wèn)考試吧軟件水平考試網(wǎng)。

  -求二元查找樹(shù)的鏡像

  題目:輸入一顆二元查找樹(shù),將該樹(shù)轉(zhuǎn)換為它的鏡像,即在轉(zhuǎn)換后的二元查找樹(shù)中,左子樹(shù)的結(jié)點(diǎn)都大于右子樹(shù)的結(jié)點(diǎn)。用遞歸和循環(huán)兩種方法完成樹(shù)的鏡像轉(zhuǎn)換。

  例如輸入:

  8

  / \

  6 10

  /\ /\

  5 7 9 11

  輸出:

  8

  / \

  10 6

  /\ /\

  11 9 7 5

  定義二元查找樹(shù)的結(jié)點(diǎn)為:

  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

  };

  分析:盡管我們可能一下子不能理解鏡像是什么意思,但上面的例子給我們的直觀感覺(jué),就是交換結(jié)點(diǎn)的左右子樹(shù)。我們?cè)囍诒闅v例子中的二元查找樹(shù)的同時(shí)來(lái)交換每個(gè)結(jié)點(diǎn)的左右子樹(shù)。遍歷時(shí)首先訪問(wèn)頭結(jié)點(diǎn)8,我們交換它的左右子樹(shù)得到:

  8

  / \

  10 6

  /\ /\

  9 11 5 7

  我們發(fā)現(xiàn)兩個(gè)結(jié)點(diǎn)6和10的左右子樹(shù)仍然是左結(jié)點(diǎn)的值小于右結(jié)點(diǎn)的值,我們?cè)僭囍粨Q他們的左右子樹(shù),得到:

  8

  / \

  10 6

  /\ /\

  11 9 7 5

  剛好就是要求的輸出。

  上面的分析印證了我們的直覺(jué):在遍歷二元查找樹(shù)時(shí)每訪問(wèn)到一個(gè)結(jié)點(diǎn),交換它的左右子樹(shù)。這種思路用遞歸不難實(shí)現(xiàn),將遍歷二元查找樹(shù)的代碼稍作修改就可以了。參考代碼如下:

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

  // 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);

  }

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

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

  // 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)

  相關(guān)推薦:

  2017年計(jì)算機(jī)軟件水平考試時(shí)間公布(全年)

  各地2017年軟件水平考試準(zhǔn)考證打印/領(lǐng)取時(shí)間匯總

  考試吧特別策劃:2017年計(jì)算機(jī)軟考報(bào)考指南專題熱點(diǎn)文章

  軟考各科目模擬試題及答案各科目復(fù)習(xí)指導(dǎo)匯總

  軟考報(bào)考條件軟考報(bào)名方法考試大綱科目

  歷年軟考真題及答案匯總軟件水平考試簡(jiǎn)介

0
收藏該文章
0
收藏該文章
文章搜索
·精選試題 ·智能練習(xí)
·智能評(píng)估 ·視頻解析
掃描二維碼下載
  • 初級(jí)職稱
  • 中級(jí)職稱
  • 高級(jí)職稱

版權(quán)聲明:如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請(qǐng)注明出處。
Copyright © 2004- 考試吧軟件水平考試網(wǎng) 出版物經(jīng)營(yíng)許可證新出發(fā)京批字第直170033號(hào) 
京ICP證060677 京ICP備05005269號(hào) 中國(guó)科學(xué)院研究生院權(quán)威支持(北京)
在線模擬試題
考證通關(guān)殺器
考試最新資訊
學(xué)
一次通關(guān)技巧
主站蜘蛛池模板: 欧美精品一区二区三区视频 | 最近中文字幕在线看免费视频 | 亚洲国产精品v在线播放 | 亚洲国产精品热久久2022 | 天天干天天射天天 | 日本成日本片人免费 | 伊人精品网 | 欧美日韩国产高清一区二区三区 | 亚洲一级毛片免费观看 | 人人公开免费超级碰碰碰视频 | 久久久久国产亚洲日本 | 欧美一级美片在线观看免费 | 日本精品a在线 | 三级黄色高清视频 | 亚洲美女中文字幕 | 久草.com| 看黄在线 | 天天色天天干天天 | 久久精品伊人波多野结 | 亚洲国产片高清在线观看 | 欧美一级在线观看视频 | 一级α一级α片免费观看网站 | 成人中文字幕一区二区三区 | 午夜不卡视频 | 草草视频免费观看 | 国产成人精品日本亚洲语音2 | 丝袜足控免费网站xx网站 | 怡红院视频在线 | 亚洲jjzzjjzz在线观看 | 窝窝影院午夜看片 | 国产在线视频在线 | 免费看污视频的软件 | 99在线精品日韩一区免费国产 | 欧美日韩91 | 美国一级做a一级爱视频 | 最新在线黄色网址 | 香港经典三级成人xxx | 欧美首页 | 美国十次色 | 国产成人亚洲毛片 | 海天翼精品一区二区三区 |