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

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

2013-11-15 15:37:38  來源: 數據結構 

  .BiThrTree InOrder(BiThrTree TElemType x)
  //先在帶頭結點的中序線索二叉樹T中查找給定值為x的結點假定值為x的結點存在
  {p=T>lchild;//設p指向二叉樹的根結點
  while(p!=T)
  {while(p>ltag== && pdata!=x) p=p>lc;
  if(p>data==x)return(p);
  while(p>rtag== && p>rc!=T) {p=p>rc; if(p>data== x) return(p);}
  p=p>rc;  }
  }//結束InOrder
  BiThrTree AfterXNode(BiThrTree T)//在中序線索二叉樹T中求給定值為 x的結點的後繼結點
  {BiThrTree p=InOrde(Tx);        //首先在T 樹上查找給定值為x 的結點由p指向
  if(p>rtag==) return(p>rc);   //若p 的左標志為則p的rc指針指向其後繼
  else {q=p>rc; while(q>ltag==)q=q>lc; return(q); }
  //結點p的右子樹中最左面的結點是結點p的中序後繼
  }  }//結束AfterXnode

  .[題目分析]後序遍歷是因此若結點有右子女則右子女是其後序前驅否則左子女(或左線索)指向其後序前驅
  BiThrTree PostSucc (BiThrTree Tp)//在後序線索二叉樹T中查找指定結點p的直接前驅q
  {if(p>Rtag==) q=p>Rchild;//若p有右子女則右子女為其前驅
  else q=p>Lchild;          //若p無右子女左子女或左線索就是p的後序前驅
  return (q);
  }//結束PostSucc

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


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