数据结构:第五章学习小结

1、本章内容小结:本章学习了树与二叉树,主要核心内容是与递归的定义有关,无论是树的概念或者是树的一些操作,基本上都运用到了递归这个知识点。

而二叉树的学习是本章的重点学习内容,对二叉树进行的操作,基本必须先从二叉树的遍历开始。

  1、先序遍历

void Pre (BiTree T)//先序遍历
{
if(T!=NULL)
{
cout<<T->data;
Pre (T->lchild);
Pre (T->rchild);
}
}

 

  2、中序遍历

void Pre (BiTree T)//先序遍历
{
if(T!=NULL)
{
Pre (T->lchild);

cout<<T->data;
Pre (T->rchild);
}
}

  3、后序遍历

void Pre (BiTree T)//先序遍历
{
if(T!=NULL)
{
Pre (T->lchild);
Pre (T->rchild);

cout<<T->data;
}
}

4、层次遍历

void Pre (BiTree T)//层次遍历
{
Queue *q;
initQueue(q);
if(T!=NULL)
{
enQueue(q,T);
}
while(emptyQueue(q)!=true)
{
cout<<T->data;
if(T->lchild!=NULL)
{
enQueue(q,T->lchild);
}
if(T->rchild!=NULL)
{
enQueue(q,T->rchild);
}
}
}

层次遍历与前面三个遍历类同,但是又多了一个队列的引进,运用到了队列的出队和入队的操作完成层次遍历。

对于二叉树的存储结构:

数据结构:第五章学习小结

 

二叉树还有一些十分重要的性质:

数据结构:第五章学习小结

 

 

 

2、遇到的问题与困难:

对于二叉树到数的一个转换,原理是类似的,但可能由于对概念的不熟悉,导致一时之间比较难以转换概念,在解答题目时,遇到的困难比较多,例如在数的结构体中,可能会运用到数组与链表的结合体来进行解答;又或是层次遍历操作中,队列对于孩子结点的一些操作代码难以实现等问题。

3、心得体会:对于二叉树与数的一些概念和操作,老师都在视频中讲解的比较详细,特别是老师的一些代码实现,看了能让人有种顿悟的感觉,通过本章的学习,学习的不仅是二叉树和数,更重要的是对递归这一概念有了更深的理解。

4、下一阶段的目标:希望图能对我友善一点吧!

上一篇:创建二叉树(括号表示法)


下一篇:[DS+Algo] 010 二叉树的遍历