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

第三部分 樹與二叉樹[5]

2013-11-15 15:35:50  來源: 數據結構 

    線索二叉樹
  
  //二叉樹的二叉線索存儲表示
  typedef enum PointerTag{linkThread};
  typedef Struc BithrNode{
  TelemType data;
  struct Bithrnode *lchild *rchild;
  PointerTag Ltag Rtag;
  }BiThrNode *BiThrTree;
  
  Status InOrderTraverse_Thr(BiThrTree t Status(*visit)(TelemType e)){
  //T
  p=Tlchild;
  while(p!=t){
  while(p>Ltag==Link) p=p>lchild;
  if(!Visit(p>Rtag==Thread&&p>rchild!T){
  while(p>Rtag==Thread&&p>rchild!=T){
  p=p>rchild; visit(p>data);
  }
  p=p>rchild;
  }return ok;
  }//InOrderTraverse_Thr
  
  Status InOrderThreading(BiThrTree &ThrtBithrTree t){
  //中序遍歷二叉樹T並將其中序線索化Thrt指向頭結點
  If(!(Thrt=(BiThrTree)malloc(sizeof(BiThrNode))))
  exit(OVERFLOW);
  Thrt>Ltag=Link; Thrt>Rtag=Thead;
  Thrt>rchild=Thrt;
  If(!T)Thrt>lchild=Thrt;
  InThreading(T;
  Pre>lchild=T; pre=Thrt;
  Thrt>rchild=pre;
  }
  return ok;
  }//InOrderThreading

    返回《數據結構》考研復習精編

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


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