读书人

2叉数先序遍历递归算法全解,该如何处理

发布时间: 2012-02-07 17:45:36 作者: rapoo

2叉数先序遍历递归算法全解
2叉数先序遍历递归算法全解..小弟想借鉴一下 ...

[解决办法]
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

typedef struct BiTNode
{
int data;
struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;

int CreateBiTree(BiTNode **T) /*先序新建二叉树链表*/
{
char ch;
if((ch=getchar())== ' ')
*T = NULL;
else
{
if(!(*T = (BiTNode *)malloc(sizeof(BiTNode*))))
exit(0);
(*T) -> data = ch;
CreateBiTree(&(*T) -> lchild); /*二次引用指针需用二级指针*/
CreateBiTree(&(*T) -> rchild);
}
return (0);
}

int PreOrderTraverse(BiTNode **T) /*先序遍历二叉树链表*/
{
if(*T)
{
printf( "%c ", (*T)-> data);
PreOrderTraverse(&(*T) -> lchild);
PreOrderTraverse(&(*T) -> rchild);
}
}

main()
{
BiTNode *T;
printf( "请按先序输入二叉树中节点的值:\n ");
CreateBiTree(&T);
printf( "\n请按先序输出二叉树中节点的值:\n ");
PreOrderTraverse(&T);
printf( "\n\n ");
system( "pause ");
return(0);
}

读书人网 >C语言

热点推荐