lixiaoyu 提交的代码
提交时间:2022年4月4日 16:11 语言:C运行时间:0ms占用内存:140K
运行状态: Accepted
题目:二叉树遍历1161

大会员可查看代码,点此开通大会员

                
                    #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));
	}

}