| 
 | 
 
 
发表于 2021-12-8 23:07:46
From FishC Mobile
|
显示全部楼层
|阅读模式
 
 
 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
#include<stdio.h> 
#include<stdlib.h> 
 
typedef enum {Link,Thread} point; 
 
typedef struct Treenode { 
point LFlag, RFlag; 
int data; 
struct Treenode* lchild, * rchild; 
}node,*Tree; 
 
void BuildTree(Tree* L) 
{ 
*L = NULL; 
return; 
} 
 
void CreateTree(Tree* L) 
{ 
char c; 
scanf_s("%c", &c); 
if (c == ' ') { 
*L = NULL; 
} 
else { 
*L = (Tree)malloc(sizeof(Treenode)); 
(*L)->data = c; 
(*L)->LFlag = Link; 
(*L)->RFlag = Link; 
CreateTree(&(*L)->lchild); 
CreateTree(&(*L)->rchild); 
 
} 
} 
 
Tree pre; 
 
void OrderThreading(Tree* L) 
{ 
if (L) 
{ 
if (!(*L)->lchild) { 
(*L)->LFlag = Thread; 
(*L)->lchild = pre; 
} 
if (!(*L)->rchild) { 
(*L)->RFlag = Thread; 
(*L)->rchild = (*L); 
} 
pre= (*L); 
OrderThreading(&((*L)->lchild)); 
OrderThreading(&((*L)->rchild)); 
} 
} 
 
void OrderTree(Tree L) 
{ 
if (L) { 
printf("%c", L->data); 
L = L->lchild; 
if (L->LFlag == Link) { 
L = L->lchild; 
} 
if (L->RFlag == Thread && L->rchild != L) { 
L = L->rchild; 
printf("%c", L->data); 
} 
L = L->rchild; 
} 
} 
 
int main() 
{ 
Tree tree ; 
BuildTree(&tree); 
CreateTree(&tree); 
OrderThreading(&tree); 
OrderTree(tree); 
}   
 
运行不了啊,那个OrderThreading函数的参数L,好像传不进去,还是怎么回事,求大佬帮忙(vs2019) |   
 
 
 
 |