二叉树常见算法

#include <iostream>
#include <stdlib.h>

using namespace std;

typedef struct node
{
struct node *leftnode;
struct node *rightnode;
char data;
}BiTNode, *BiTree;

void creatBiTree(BiTree T)
{
char c;
cin >> c;
if (c == '#')
T = NULL;
else
{
T = (BiTree)malloc(sizeof(BiTNode));
if (!T)
exit(-1);
T->data = c;
creatBiTree(T->leftnode);
creatBiTree(T->rightnode);
}
}

void visit(char ch)
{
cout << ch;
}

void preOrderTraverse(BiTree T, void(*Visit)(char ))
{ if (T)
{
Visit(T->data);
preOrderTraverse(T->leftnode, Visit);
preOrderTraverse(T->rightnode, Visit);
}
}
//
void preOrderTraverse(BiTree T)
{
if(!T)
return;
stack<BiTree>s;
}
int main(void)
{
void(*Visit)(char );
BiTree T = NULL;

creatBiTree(T);
Visit = visit;
preOrderTraverse(T, Visit);
return 0;
}

posted @ 2016-07-18 20:05  JungleHuter  阅读(131)  评论(0编辑  收藏  举报