说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

C语言建立和遍历二叉树

HTML文档下载 WORD文档下载 PDF文档下载
树是一个应用十分广泛和重要的非线性数据结构。只有两个后继的二叉树在树的应用中,它起着特别重要的作用。

树是一个应用十分广泛和重要的非线性数据结构。只有两个后继的二叉树在树的应用中,它起着特别重要的作用。下面的代码构建一个二叉树,并按某种规则便利树中的各个元素,最后将其打印出来。

 

#include <stdio.h>#include <stdlib.h>struct tree{	char info;	struct tree *left;	struct tree *right;};struct tree *root;		/*树的第一个结点*/struct tree *construct(struct tree *root, struct tree *r, char info);void print(struct tree *r, int l);int main(void){	char s[80];	root = NULL;	do	{		printf("请输入一个字符:");		gets(s);		root = construct(root,root,*s);	}while(*s);	print(root,0);	return 0;}struct tree *construct(	struct tree *root, 	struct tree *r, 	char info){	if(!r)	{		r = (struct tree *)malloc(sizeof(struct tree));		if(!r)		{			printf("内存分配失败!");			exit(0);		}		r->left = NULL;		r->right = NULL;		r->info = info;		if(!root)			return r;		if(info < root->info)			root->left = r;		else 			root->right = r;		return r;	}	if(info < r->info)		construct(r,r->left,info);	else		construct(r,r->right,info);	return root;	}void print(struct tree *r, int l){	int i;	if(!r)		return;	print(r->left,l+1);	for(i = 0;i < l;++i)		printf(" ");	printf("%c\n",r->info);	print(r->right,l+1);}

 

 

备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘