熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 數據結構 >> 正文

數據結構考研分類復習真題 第六章 樹和二叉樹 (三)[11]

2013-11-15 15:28:48  來源: 數據結構 

  .二叉樹以鏈方式存儲有三個域數據域data左右孩子域lchildrchild樹根由tree指向 現要求按層次從上到下同層次從左到右遍歷樹下面算法中用到addx(p)將指針p進隊delx( )將隊頭元素返回並退隊notempty在隊不空時返回true否則為false將算法補充完整:

  PROC  processnode(p);
  IF()_______THEN [write(p^data); ()_______ ]
  ENDP;
  PROC   trave(tree);
  write(tree^data); ()_______;
  WHILE  notempty()  DO
  [ r:=delx( ); processnode(r^lchild); processnode(()_______)]
  ENDP;【南京理工大學 (分)】

   閱讀下列程序說明和程序填充程序中的______

  【程序說明】本程序完成將二叉樹中左右孩子交換的操作交換的結果如下所示(編者略)

  本程序采用非遞歸的方法設立一個堆棧stack存放還沒有轉換過的結點它的棧頂指針為tp交換左右子樹的算法為

  ()把根結點放入堆棧

  ()當堆棧不空時取出棧頂元素交換它的左右子樹並把它的左右子樹分別入棧

  ()重復()直到堆棧為空時為止

  typedef  struct  node  *tree;
  struct node{int data; tree lchildrchild;}
  exchange(tree t)
  {tree  rp; tree  stack []; int  tp=;
  ()_______
  while (tp>=)
  {()_______
  if(()_______)
  {r=p>lchild; p>lchild=p>rchild; p>rchild=r
  stack[()_______]=p>lchild; stack[++tp]=p>rchild;
  }
  }
  } 【中科院自動化研究所 (分)】

[]  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  


From:http://tw.wingwit.com/Article/program/sjjg/201311/23474.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.