View Code
1 #include<stdio.h> 2 #include<stdlib.h> 3 typedef int DataType; 4 5 typedef struct BiThrNode{ 6 DataType data; 7 struct BiThrNode *lchild; 8 struct BiThrNode *rchild; 9 unsigned ltag; 10 unsigned rtag; 11 }BiThrNode,*BiThrTree; 12 13 BiThrTree pre; 14 15 void InThreading(BiThrTree p){ 16 if(p){ 17 InThreading(p->lchild); 18 if(!(p->lchild)){ 19 p->ltag=1; 20 p->lchild=pre; 21 } 22 if(!pre->rchild){ 23 pre->rtag=1; 24 pre->rchild=p; 25 } 26 pre=p; 27 InThreading(p->rchild); 28 } 29 } 30 int InOrderThr(BiThrTree *head,BiThrTree T){ 31 (*head)=new BiThrNode; 32 if(!(head)) 33 return 0; 34 (*head)->ltag=0; 35 (*head)->rtag=1; 36 (*head)->rchild=(*head); 37 if(!T) 38 (*head)->lchild=*head; 39 else{ 40 (*head)->lchild=T; 41 pre=*head; 42 InThreading(T); 43 pre->rchild=*head; 44 pre->rtag=1; 45 (*head)->rchild=pre; 46 } 47 return 1; 48 } 49 50 int main( ) 51 { 52 BiThrTree T; 53 BiThrTree *head; 54 return 0; 55 } 56 57