代码改变世界

数据结构第2章学习小结

2019-03-17 01:17  Buki  阅读(403)  评论(1编辑  收藏  举报

        数据结构是一门讲究理论和实践能力相结合的课程。它既要求我们弄清楚数据之间的逻辑关系和它们的空间物理关系,又要求我们熟悉如何用C++代码去实现他们之间的关系。并且,第2章的课本例题与上学期C++的课本例题非常不同,数据结构课本上的例题,基本上是Pseudocode,这加大了学习的难度,明摆着需要我们文武兼备。

        好了吐槽完,来说说第2章的内容吧。第2章主要讲的是线性表。我们知道,线性表的逻辑结构是确定的,它是线性的。但它储存结构不只一种,分别有顺序存储结构和链式存储结构。两种储存结构的实现方式不同。相对于顺序表,对我们而言,更难的应该是链表了。链表多了几个像头指针,头结点,首元结点的概念,还涉及指针,更复杂的还有循环链表,双向链表,以及链表的增删查改等等。

        链表确实是本章的难点。有时我们真的需要画图来帮助我们理清思路,解决问题。比如说,PTA上第2章作业的程序填空题。不得不说,这道题足足花了我五张草稿纸。

        如下图所示,这是我的第一张草稿,思路有点混乱,反面教材,当时不确定答案是否正确。

 

看到思路如此混乱,于是我又断断续续画了几张,但画出来都很乱,直到看到群上同学写的一些答案,发现他们都能够很清晰地表达出思路。如下图所示,借用了一下佳欣同学的图:

 

我发现,他们画的图都有一个特点:一步对一图

       在进入循环的时候,我们最好可以把每一个较为重要的,关键的变量通过图像或者列表的形式表示出来,然后通过观察每一次变量的移动变化规律,来分析循环内部具体操作是怎么实现的。还有一点需要注意的是,对于链表这种看上去较为复杂的结构,使用箭头的时候最好不要交叉。

 

       下面分享一下本阶段学习中的一些课外资料

       1.vector数组    资源链接:https://www.cnblogs.com/yskn/p/9053161.html

        这个数组上课的时候老师好像提到过,后来我也查了一下。它相当于一个很厉害的容器,能够存放任意类型的数据,其他的各位可以进去网站了解一下。

       2.sort()函数的使用     资源链接:https://blog.csdn.net/w_linux/article/details/76222112

        sort()函数使得数组的排序更加方便,不用大费周折地写一堆代码。不过使用前记得加上<algorithm>头。其他的各位亦可以进去网站了解一下。

       **3.mysql_result()函数在PHP7中的替代

        mysql_result()函数在PHP5中还是可行的,但在PHP7中由于安全问题使用会报错,而且PHP7好像找不到其他什么内置函数替代。所以这里推荐一个函数:

        function mysqli_result($res,$n){
        $arr = mysqli_fetch_array($res);
        return $arr[$n];
        } //第一个参数为mysqli_query返回的对象,第二个参数为0

  以上就是一些个人搜集的课外资料了。

 

       目前学习遇到的困难是,上课有的时候会跟不上老师的节奏,可能这跟课前预习的深度有关。还有就是阅读Pseudocode还不够习惯,以后有事没事就翻翻课本吧。

       接下来的目标,是做到课前预习,课后复习,还有熟悉一下C语言,并且有空多看看课本,写一写博客,充实自己的知识储备。

  本人第一次写博客,还望指正。