/*..............................
功能:二叉树的存储结构
二叉树的前序遍历
时间:2015-07-16
人员:西瓜太郎
...........................*/
#include <stdlib.h>
#include <stdio.h>
typedef char ElementType;
typedef struct BiTNode
{
ElementType data;
struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;
//默认前序输入二叉树
void InitBiTree(BiTree *T)
{
ElementType c;
scanf("%c",&c);
if(' ' == c)
{
(*T) = NULL;
}
else
{
(*T) = (BiTree )malloc(sizeof(struct BiTNode));
(*T)->data = c;
InitBiTree(&(*T)->lchild);
InitBiTree(&(*T)->rchild);
}
}
void visit(ElementType data, int leave)
{
printf("结点:%c在第:%d层\n",data, leave);
}
void PreOrderTraverse(BiTree T,int leave)
{
if( NULL != T)
{
visit(T->data, leave);
PreOrderTraverse(T->lchild, leave + 1);
PreOrderTraverse(T->rchild, leave + 1);
}
}
int main()
{
BiTree T;
InitBiTree(&T);
PreOrderTraverse(T,1);
return 0;
}
功能:二叉树的存储结构
二叉树的前序遍历
时间:2015-07-16
人员:西瓜太郎
...........................*/
#include <stdlib.h>
#include <stdio.h>
typedef char ElementType;
typedef struct BiTNode
{
ElementType data;
struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;
//默认前序输入二叉树
void InitBiTree(BiTree *T)
{
ElementType c;
scanf("%c",&c);
if(' ' == c)
{
(*T) = NULL;
}
else
{
(*T) = (BiTree )malloc(sizeof(struct BiTNode));
(*T)->data = c;
InitBiTree(&(*T)->lchild);
InitBiTree(&(*T)->rchild);
}
}
void visit(ElementType data, int leave)
{
printf("结点:%c在第:%d层\n",data, leave);
}
void PreOrderTraverse(BiTree T,int leave)
{
if( NULL != T)
{
visit(T->data, leave);
PreOrderTraverse(T->lchild, leave + 1);
PreOrderTraverse(T->rchild, leave + 1);
}
}
int main()
{
BiTree T;
InitBiTree(&T);
PreOrderTraverse(T,1);
return 0;
}