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

數據結構考研分類復習真題 第六章 答案 (五)[36]

2022-06-13   來源: 數據結構 

  )略 () 根據中序和後序序列建立二叉樹的遞歸算法見上面第非遞歸算法見第

  [題目分析]采用後序非遞歸遍歷二叉樹棧中保留從根結點到當前結點的路徑上的所有結點

  void PrintPath(BiTree btp) //打印從根結點bt到結點p之間路徑上的所有結點
  {BiTree q=bts[]; //s是元素為二叉樹結點指針的棧容量足夠大
  int top=; tag[];//tag是數組元素值為訪問左右子樹的標志tag和s同步
  if (q==p) {printf(q>data); return;} //根結點就是所找結點
  while(q!=null || top>)
  {while(q!=null)  //左子女入棧並置標記
  if(q==p)    //找到結點p棧中元素均為結點p 的祖先
  {printf(從根結點到p結點的路徑為\n);
  for(i=;i<=top;i++) printf(s[i]>data); printf(q>data); return;
  }
  else {s[++top]=q; tag[top]=; q=q>lchild;} //沿左分支向下
  while(top> && tag[top]==)) top//本題不要求輸出遍歷序列這裡只退棧
  if (top>) {q=s[top]; q=q>rchild; tag[top]=; } //沿右分支向下
  }//while(q!=null || top>)
  }//結束算法PrintPath

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


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