search.c

来自「《数据结构-使用C语言》第三版」· C语言 代码 · 共 59 行

C
59
字号
//顺序存储结构下二叉树的遍历算法
#include<stdio.h>
#include<string.h>
#define Max 15

typedef char DataType;
void Visit(DataType item)
{
	printf("%c",item);
}

int main()
{
	int i, len;
	DataType a[Max];
	void Pre(DataType a[], int i, int len, void Visit(DataType item));
	void In(DataType a[], int i, int len, void Visit(DataType item));
	void Post(DataType a[], int i, int len, void Visit(DataType item));
	while(1)
	{
		gets(a);
		len=strlen(a);
		printf("\nPreOrder: ");
		Pre(a, 0, len, Visit);
		
		printf("\n\nInOrder: ");
		In(a, 0, len, Visit);
		
		printf("\n\nPost: ");
		Post(a, 0, len, Visit);
	}
	return 0;
}
	
void Pre(DataType a[], int i, int len, void Visit(DataType item))
{
	if(a[i]==' ')return;
	Visit(a[i]);
	if(2*i+1<len)Pre(a, 2*i+1, len, Visit);
	if(2*i+2<len)Pre(a, 2*i+2, len, Visit);
} 

void In(DataType a[], int i, int len, void Visit(DataType item))
{
	if(a[i]==' ')return;
	if(2*i+1<len)In(a, 2*i+1, len, Visit);
	Visit(a[i]);
	if(2*i+2<len)In(a, 2*i+2, len, Visit);
} 

void Post(DataType a[], int i, int len, void Visit(DataType item))
{
	if(a[i]==' ')return;
	if(2*i+1<len)Post(a, 2*i+1, len, Visit);
	if(2*i+2<len)Post(a, 2*i+2, len, Visit);	
	Visit(a[i]);
} 	
		 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?