av免费网址-青青青手机在线视频-√天堂资源中文-免费在线观看av网站-午夜dj视频在线观看完整版1-老少配老妇老熟女中文普通话-亚洲精品久久久久成人2007-国产精品边做奶水狂喷-另类综合小说-精品无码成人片一区二区-超碰超在线-国产对白刺激视频-亚洲天堂网在线观看-国产精品国产精品偷麻豆-国产精品美女久久久久久福利-国产露脸国语对白在线-91人人爽久久涩噜噜噜-亚洲欧美久久-久久综合色网-特级黄色 一级播放

2009年上半年軟考軟件設計師下午試卷[9]

軟件設計師 責任編輯:iorilzc 2009-05-24

添加老師微信

備考咨詢

加我微信

摘要:試題五(共15分)閱讀下列說明和C函數代碼,將應填入(n)處的字句寫在答題紙的對應欄內?!菊f明】對二叉樹進行遍歷是二叉樹的一個基本運算。遍歷是指按某種策略訪問二叉樹的每個結點,且每個結點僅訪問一次的過程。函數InOrder()借助棧實現二叉樹的非遞歸中序遍歷運算。設二叉樹采用二叉鏈表存儲,結點類型定義如下:

  試題五(共 15 分)

  閱讀下列說明和C 函數代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內。

  【說明】

  對二叉樹進行遍歷是二叉樹的一個基本運算。遍歷是指按某種策略訪問二叉樹的每個結點,且每個結點僅訪問一次的過程。函數InOrder()借助棧實現二叉樹的非遞歸中序遍歷運算。

  設二叉樹采用二叉鏈表存儲,結點類型定義如下:

  typedef struct BtNode{
  ElemType  data;  /*結點的數據域,ElemType的具體定義省略*/
  struct BtNode *lchild,*rchild;  /*結點的左、右孩子指針域*/
  }BtNode, *BTree;
  在函數InOrder()中,用棧暫存二叉樹中各個結點的指針,并將棧表示為不含頭結點
  的單向鏈表(簡稱鏈棧),其結點類型定義如下:
  typedef struct StNode{  /*鏈棧的結點類型*/
  BTree elem;  /*棧中的元素是指向二叉鏈表結點的指針*/
  struct StNode *link;
  }StNode;

  假設從棧頂到棧底的元素為 en、en-1、…、e1,則不含頭結點的鏈棧示意圖如圖5-1所示。

  【C函數】

  int  InOrder(BTree root)  /* 實現二叉樹的非遞歸中序遍歷  */
  {
  BTree ptr; /* ptr用于指向二叉樹中的結點  */
  StNode *q;  /* q暫存鏈棧中新創建或待刪除的結點指針*/
  StNode *stacktop = NULL;  /* 初始化空棧的棧頂指針stacktop */
  ptr = root;  /* ptr指向二叉樹的根結點  */
  while ( (1)  || stacktop != NULL) {
  while (ptr != NULL) {
  q = (StNode *)malloc(sizeof(StNode));
  if (q == NULL)
  return -1;
  q->elem = ptr;
  (2)  ;
  stacktop = q;  /*stacktop指向新的棧頂*/
  ptr = (3)  ; /*進入左子樹*/
  }
  q = stacktop;
  (4)  ;  /*棧頂元素出棧*/
  visit(q);  /*visit是訪問結點的函數,其具體定義省略*/
  ptr = (5)  ;  /*進入右子樹*/
  free(q);  /*釋放原棧頂元素的結點空間*/
  }
  return 0;
  }/*InOrder*/ 
  [答案討論]

[1]  [2]  [3]  [4]  [5]  [6]  [7]  [8]  [9]  [10]  [11]  

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內容不斷變化與調整,本網站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!

軟考備考資料免費領取

去領取

!
咨詢在線老師!