码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构第五章学习小结

时间:2020-05-31 19:55:21      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:左右   学习   笔记   结果   oid   调试   指针   nod   分析   

本章学习内容:

本章我们学习了一种新的数据结构,“树”结构是一类非线性数据结构。主要学习到二叉树的内容,二叉树有好几个重要的性质。刚开始学这种数据结构的时候,还是觉得比线性结构抽象很多。在后来上课和打代码的时候理解到,二叉树存储结构跟遍历有很大的关系,遍历的结果是将非线性结构的树中结点排成一个线性序列。

这是二叉链表的存储表示:

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分的代码可供参考,我也要吸取别人的长处,对代码不足的地方进行优化,争取能完美复现。

反思:有时候会因为是早课容易走神,没有好好记笔记。同时第五章学习过程中也犯过不少乌龙。我需要端正学习态度,好好记笔记。

数据结构第五章学习小结

标签:左右   学习   笔记   结果   oid   调试   指针   nod   分析   

原文地址:https://www.cnblogs.com/lionbot/p/13020476.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!