//链式存储结构
#include<iostream>
#include<cstring>
#include<cstdlib>
using namespace std;
//声明结构体
typedef struct node
{
char data;
struct node *lchild;
struct node *rchild;
}BTNode;
char apre[]="ABDGCEF",ai[]="DGBAECF",apost[]="GDBEFCA";
int len;
//用先序序列和中序序列创建二叉树
BTNode* CreatBT1(char *pre,char *in,int n)
{
BTNode *b;
char *p;
int k;
if(n<=0) return NULL;
b=(BTNode*)malloc(sizeof(BTNode));
b->data=*pre;
for(p=in;p<in+n;p++)
if(*p==*pre) break;
k=p-in; //k是记录的当前根节点的左右结点的个数
b->lchild=CreatBT1(pre+1,in,k);
b->rchild=CreatBT1(pre+k+1,p+1,n-k-1);
return b;
}
//用中序序列和后续序列创建二叉树
//BTNode* CreatBT2(char *post,char *in,int n)
//{
// BTNode *b;
// char *p;
// int k;
// if(n<=0) return NULL;
//
//}
//先序遍历
void PreOrder(BTNode* bt)
用二叉链创建二叉树(顺序表等更?)
最新推荐文章于 2022-04-06 14:30:03 发布
本文详细介绍了如何使用二叉链表来构建二叉树,并探讨了顺序表在构建二叉树过程中的应用,讨论了它们各自的优缺点,帮助读者理解不同的数据结构在实现二叉树时的角色。
摘要由CSDN通过智能技术生成