Visitors hit counter dreamweaver

温习二叉树的建立和先序 中序 后序遍历 嵌套

#include <stdio.h>
#include <stdlib.h>
typedef char DataType;
typedef struct BiTNode
{
DataType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;

//二叉树树的建立 先序
void CreateBiTree(BiTree T)
{
char ch;
if((ch=getchar())=='') *T=NULL; //读入为空,将相应指针置空
else
{
*T=(BiTree)malloc(sizeof(BiTNode));
*T->data=ch;
CreateBiTree(T->lchild);//构造左树
CreateBiTree(T->rchild);//构造右树
}
} //CreateBiTree
Status PreOrderTraverse(BiTree T,Status(*Visit)(DataType e))
{
if(T)
{
if(Visit(T->data))
if(PreOrderTraverse(T->lchild,Visit))
if(PreOrderTraverse(T->rchild,Visit)) return OK;
return ERROR;
}
else return OK;
}//PreOrderTraverse
//中序遍历二叉树 采用链表结构存储
Status InOrderTraverse(BiTree T,Status(*Visit)(DataType e))
{
if(T)
{
if(InOrderTraverse(T->lchild,Visit))
if(Visit(T->data))
  if(InOderTraverse(T->rchild,Visit)) return OK;
      else
       return ERROR;


}
else
return OK;

}//InOrderTraverse

//------后序遍历二叉树----
Status EndOrderTraverse(BiTree T,(*Visit)(DataType e))
{
if(T)
{
if(EndOrderTraverse(T->lchild,Visit))
if(EndOrderTraverse(T->rchild,Visit))
if(Visit(T->data)) return OK;
        return ERROR;
}
else return OK;
}//EndOrderTraverse

int main()
{
return 0;
}
posted @ 2011-10-11 23:54  Jason Damon  阅读(398)  评论(0编辑  收藏  举报