数据结构第五章学习小结
本章学习内容:
本章我们学习了一种新的数据结构,“树”结构是一类非线性数据结构。主要学习到二叉树的内容,二叉树有好几个重要的性质。刚开始学这种数据结构的时候,还是觉得比线性结构抽象很多。在后来上课和打代码的时候理解到,二叉树存储结构跟遍历有很大的关系,遍历的结果是将非线性结构的树中结点排成一个线性序列。
这是二叉链表的存储表示:
typedef struct Bitnode
{
int data;//结点数据域
struct Bitnode *lchild,*rchild;//左右孩子指针
}Bitnode,*Bitree;同时老师讲解的List Leaves 代码的实现让我非常受益匪浅,比如使用bool数组找出根结点。
void Create(Tree &T)
{
int n;
cin>>n;
bool check[10]={false};//使用check数组用于查找根节点
char a,b;
for(int i=0;i<n;i++)
{
cin>>a>>b;
if(a==‘-‘ )
T.data[i].lch = -1;
else
{
T.data[i].lch = a-‘0‘;
check[a-‘0‘]=true;
}
if(b==‘-‘)
T.data[i].rch = -1;
else
{
T.data[i].rch = b-‘0‘;
check[b-‘0‘]=true;
}
}
for(int i=0;i<n;i++)
{
if(check[i]==false)
{
T.root=i;
break;
}
}
}以及我认为最重要的还是二叉树的遍历方式:先序,中序,后序,以及层次遍历。
遇到的困难:在小组合作过程中,困难在于如何建立这些树,这与它的存储结构密切相关,所以,分析树的存储结构尤为重要,也是树的难点,只有树建立起来,之后操作才能够更好的进行。虽然小组作业过程中偶然发现了题目的天梯赛原题,但后面组长调试小组版本的代码中出现了很多段错误问题,同时也没考虑释放内存的问题。所以即使有PTA能跑100分的代码可供参考,我也要吸取别人的长处,对代码不足的地方进行优化,争取能完美复现。
反思:有时候会因为是早课容易走神,没有好好记笔记。同时第五章学习过程中也犯过不少乌龙。我需要端正学习态度,好好记笔记。
相关推荐
koushr 2020-11-12
kikaylee 2020-10-31
范范 2020-10-28
MILemon 2020-10-22
hugebawu 2020-10-12
LauraRan 2020-09-28
shenwenjie 2020-09-24
omyrobin 2020-09-23
guangcheng 2020-09-22
qiangde 2020-09-13
hanyujianke 2020-08-18
晨曦之星 2020-08-14
xiesheng 2020-08-06
KAIrving 2020-08-02
xiesheng 2020-08-02
范范 2020-07-30
chenfei0 2020-07-30