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