大家好,今天更新的是“完全二叉树”
完全二叉树的定义,你们百度一下就知道了,所以在下就不说了,好吧!
下面是一段简单的代码,大家兴趣就看看:
/// head.h //
#include <iostream>
using namespace std;
struct BiTNode
{
char data ;
BiTNode *LChild, *RChlid;
};
typedef BiTNode* BiTree;
bool createTree(BiTree &T, string s, int i)
{
if(i>s.size())
{
return false ;
}
char c=s.at(i-1);每一个字符开始建立树
if(c==' ')
{
T=NULL;
}
else
{
T=(BiTree)malloc(sizeof(BiTNode));
if(T)
{
T->data=c;
T->LChild=NULL;
T->RChlid=NULL;
createTree(T->LChild,s,2*i);//主程序要从一开始才能满足这个条件
createTree(T->RChlid,s,2*i+1);
}
}
return true;
}
void showTree(BiTree T, int i)
{
if(!T)
return ;
else
{
for(int n=0; n<i; n++)
cout<<" ";
cout<<T->data<<endl;
showTree(T->LChild,i+4);
showTree(T->RChlid,i+4);
return ;
}
}
/// main.cpp ///
#include "create.h"
void showTree(BiTree T, int i);
bool createTree(BiTree &T, string s, int i);
void main()
{
string s="ABCDEFGSDFSDA";
BiTree T;
createTree(T,s,1);
showTree(T,0);
}
如果有错的话,请见谅!!!