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

首頁 - 網校 - 萬題庫 - 美好明天 - 直播 - 導航
您現在的位置: 考試吧 > 軟件水平考試 > 模擬試題 > 程序員 > 正文

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

來源:考試吧 2017-10-18 11:58:07 要考試,上考試吧! 萬題庫
“計算機軟件水平考試《程序員》面試題精選題(4)”供考生參考。更多軟件水平考試內容請訪問考試吧軟件水平考試網。

  -從上往下遍歷二元樹

  題目:輸入一顆二元樹,從上往下按層打印樹的每個結點,同一層中按照從左往右的順序打印。

  例如輸入

  8

  / \

  6 10

  /\ /\

  5 7 9 11

  輸出8 6 10 5 7 9 11。

  分析:這曾是微軟的一道面試題。這道題實質上是要求遍歷一棵二元樹,只不過不是我們熟悉的前序、中序或者后序遍歷。

  我們從樹的根結點開始分析。自然先應該打印根結點8,同時為了下次能夠打印8的兩個子結點,我們應該在遍歷到8時把子結點6和10保存到一個數據容器中。現在數據容器中就有兩個元素6 和10了。按照從左往右的要求,我們先取出6訪問。打印6的同時要把6的兩個子結點5和7放入數據容器中,此時數據容器中有三個元素10、5和7。接下來我們應該從數據容器中取出結點10訪問了。注意10比5和7先放入容器,此時又比5和7先取出,就是我們通常說的先入先出。因此不難看出這個數據容器的類型應該是個隊列。

  既然已經確定數據容器是一個隊列,現在的問題變成怎么實現隊列了。實際上我們無需自己動手實現一個,因為STL已經為我們實現了一個很好的deque(兩端都可以進出的隊列),我們只需要拿過來用就可以了。

  我們知道樹是圖的一種特殊退化形式。同時如果對圖的深度優先遍歷和廣度優先遍歷有比較深刻的理解,將不難看出這種遍歷方式實際上是一種廣度優先遍歷。因此這道題的本質是在二元樹上實現廣度優先遍歷。

  參考代碼:

  #include

  #include

  using namespace std;

  struct BTreeNode // a node in the binary tree

  {

  int m_nValue; // value of node

  BTreeNode *m_pLeft; // left child of node

  BTreeNode *m_pRight; // right child of node

  };

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

  // Print a binary tree from top level to bottom level

  // Input: pTreeRoot - the root of binary tree

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

  void PrintFromTopToBottom(BTreeNode *pTreeRoot)

  {

  if(!pTreeRoot)

  return;

  // get a empty queue

  deque dequeTreeNode;

  // insert the root at the tail of queue

  dequeTreeNode.push_back(pTreeRoot);

  while(dequeTreeNode.size())

  {

  // get a node from the head of queue

  BTreeNode *pNode = dequeTreeNode.front();

  dequeTreeNode.pop_front();

  // print the node

  cout << pnode-="">m_nValue << ' ';

  // print its left child sub-tree if it has

  if(pNode->m_pLeft)

  dequeTreeNode.push_back(pNode->m_pLeft);

  // print its right child sub-tree if it has

  if(pNode->m_pRight)

  dequeTreeNode.push_back(pNode->m_pRight);

  }

  }

  相關推薦:

  2017年計算機軟件水平考試時間公布(全年)

  各地2017年軟件水平考試準考證打印/領取時間匯總

  考試吧特別策劃:2017年計算機軟考報考指南專題熱點文章

  軟考各科目模擬試題及答案各科目復習指導匯總

  軟考報考條件軟考報名方法考試大綱科目

  歷年軟考真題及答案匯總軟件水平考試簡介

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

版權聲明:如果軟件水平考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本軟件水平考試網內容,請注明出處。
Copyright © 2004- 考試吧軟件水平考試網 出版物經營許可證新出發京批字第直170033號 
京ICP證060677 京ICP備05005269號 中國科學院研究生院權威支持(北京)
在線模擬試題
考證通關殺器
考試最新資訊
一次通關技巧
主站蜘蛛池模板: 超级黄色毛片 | 亚州黄色 | 一区在线观看视频 | 国产自产21区 | 亚州 色 图 综合 | 久久99精品一级毛片 | 精品区| 又黄又爽又色的性视频 | 日韩一区二区三区免费体验 | 狠狠干五月天 | 久草手机在线视频 | 国产成人高清亚洲一区久久 | 天天色天天射天天操 | 欧美成人精品免费播放 | 欧美日韩视频在线成人 | www.亚洲第一| 亚洲男女在线 | 亚洲日日操 | 国产一级一级片 | 中文字幕 视频一区 | 欧美性猛交ⅹxxx乱大交禽 | yy6080午夜论理网 | 伊人网2021| 欧美成人香蕉网在线观看 | 日日干天天操 | 国产看片网站 | 国产成人综合洲欧美在线 | 国产欧美精品国产国产专区 | 在线观看国产免费高清不卡 | 国产女人的一级毛片视频 | 免费青青草 | 国产一区二区成人 | 国产成人一区二区三区高清 | 亚洲美色视频 | 婷婷久久久五月综合色 | 一区二区高清视频在线观看 | 99视频在线免费观看 | 免费观看一区二区 | 高清中文字幕免费观在线 | 我色综合 | 欧美一级淫片a免费播放口aaa |