数据结构入门(十四)——非线性结构——树的存储
Posted UDK_KL.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构入门(十四)——非线性结构——树的存储相关的知识,希望对你有一定的参考价值。
前言
本系列文章是笔者学习数据结构的笔记,如有不妥之处欢迎指正
树的存储
二叉树的存储:
连续存储
- 转化为完全二叉树
优点:查找某个节点的父节点和子节点速度很快
缺点:耗费内存 - 链式存储
一般树存储
- 转化为完全二叉树
森林的存储
- 转化为完全二叉树
建树代码
#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
以上是关于数据结构入门(十四)——非线性结构——树的存储的主要内容,如果未能解决你的问题,请参考以下文章