前言
本系列文章是笔者学习数据结构的笔记,如有不妥之处欢迎指正
树的存储
二叉树的存储:
连续存储
- 转化为完全二叉树
优点:查找某个节点的父节点和子节点速度很快
缺点:耗费内存 - 链式存储
一般树存储
- 转化为完全二叉树
森林的存储
- 转化为完全二叉树
建树代码
#include<iostream>
using namespace std;
struct Node{
char Data;
Node *L;
Node *R;
};
Node *Creat(){
Node *p = new Node;
char a;
cin>>a;
if(a=='#'){
return nullptr;
} else{
p->Data = a;
p->L = Creat();
p->R = Creat();
return p;
}
};
void Find(Node *p){
if (!p){
return;
}
Find(p->L);
cout<<p->Data;
Find(p->R);
}
int main(){
Node *Root = new Node;
char a;
cin>>a;
if (a=='#'){
return 0;
}else{
Root->Data = a;
Root->L = Creat();
Root->R = Creat();
}
Find(Root);
return 0;
}
输入
字符串形式的先序序列
ABC##DE#G##F###
输出
中序遍历结果
CBEGDFA