您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页二叉树算法源代码

二叉树算法源代码

来源:意榕旅游网
#include

#include

#include

int count;

typedef struct BiTNode {

char data;

struct BiTNode *lchild,*rchild;

}BiTNode,*BiTree;

void CreateBiTree(BiTree &t)

{

// getchar();

char c;

//二叉树的链式存储结构

scanf(\"%c\

if(c!='\\n')

{

if(c==' ')

t=NULL;

else

{

t->data=c;

t->lchild=(BiTree)malloc(sizeof(BiTNode));

CreateBiTree(t->lchild);

t->rchild=(BiTree)malloc(sizeof(BiTNode));

CreateBiTree(t->rchild);

}

}

}

void visit(char e)

{

printf(\"%c \

}

void PreOrder(BiTree t,void (* visit)(char e))

{

if(t)

{

visit(t->data);

PreOrder(t->lchild,visit);

PreOrder(t->rchild,visit);

}

}

void InOrder(BiTree t,void (* visit)(char e))

{

if(t)

{

InOrder(t->lchild,visit);

visit(t->data);

InOrder(t->rchild,visit);

}

}

void PostOrder(BiTree t,void (* visit)(char e))

{

if(t)

{

PostOrder(t->lchild,visit);

PostOrder(t->rchild,visit);

visit(t->data);

}

}

void Count(char e)

{

count++;

}

void PreOrder2(BiTree t,void (* Count)(char e))

{

if(t)

{

Count(t->data);

PreOrder2(t->lchild,Count);

PreOrder2(t->rchild,Count);

}

}

void TreeHigh(BiTree t)

{

count=0;

PreOrder2(t,Count);

for(int i=1;i<=100;i++)

{

if((pow(2,i)-1)==count)

printf(\"二叉树的高度为:%d\\n\

else if(((pow(2,i)-1)count))

printf(\"二叉树的高度为:%d\\n\

}

}

void main()

{

BiTree T=(BiTree)malloc(sizeof(BiTNode)); //定义二叉树的头指针

int choice;

printf(\" 选择菜单\\n\");

printf(\" 1、建立二叉链表\\n\");

printf(\" 2、先序遍历(递归算法)\\n\");

printf(\" 3、中序遍历(递归算法)\\n\");

printf(\" 4、后序遍历(递归算法)\\n\");

printf(\" 5、中序遍历(非递归算法)\\n\");

printf(\" 6、求二叉树的高度\\n\");

printf(\" 7、求二叉树叶子个数\\n\");

printf(\" 8、借助队列实现二叉树层次遍历\\n\");

printf(\"请输入您的选择:\");

while(scanf(\"%d\

{

switch(choice)

{

case 1:

getchar();

CreateBiTree(T);

printf(\"请重新输入您的选择:\");

break;

case 2:

PreOrder(T,visit);

printf(\"\\n请重新输入您的选择:\");

break;

case 3:

InOrder(T,visit);

printf(\"\\n请重新输入您的选择:\");

break;

case 4:

PostOrder(T,visit);

printf(\"\\n请重新输入您的选择:\");

break;

case 6:

TreeHigh(T);

printf(\"请重新输入您的选择:\");

break;

}

}

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务