lixiaoyu 提交的代码
提交时间: 2022 四月
语言: C
运行时间: 0ms
占用内存: 140K
Accepted
代码内容

登录之后查看代码,点此登录账号

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Bnode {   //二叉树结点 
	char data;
	struct Bnode* lchild, * rchild;
}Binode, * BiTree;
void createBiTree(BiTree* T, char* s, int* j, int len);
void  InOrderBiTree(BiTree T, int* flag);
int main() {
	char s[105];
	while (scanf("%s", s) != EOF) {
		int len = strlen(s);
		BiTree T;
		int i = 0;
		createBiTree(&T, s, &i, len);
		int flag = 0;
		InOrderBiTree(T, &flag);
		printf("\n");
		//	getchar();
	}
	return 0;
}

void createBiTree(BiTree* T, char* s, int* i, int len) {
	if (*i >= len) return;
	char c = s[*i];
	(*i)++;
	if (c == '#') {
		(*T) = NULL;
	}
	else {
		(*T) = (Binode*)malloc(sizeof(BiTree));
		(*T)->data = c;
		createBiTree(&((*T)->lchild), s, &*i, len);
		createBiTree(&((*T)->rchild), s, &*i, len);
	}
}


void  InOrderBiTree(BiTree T, int* flag) {
	if (T != NULL) {
		InOrderBiTree(T->lchild, &(*flag));
		if (*flag == 0) {
			printf("%c", T->data);
		}
		else {
			printf(" %c", T->data);
		}
		(*flag) = 1;
		InOrderBiTree(T->rchild, &(*flag));
	}

}