博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二章学习小结
阅读量:5074 次
发布时间:2019-06-12

本文共 1078 字,大约阅读时间需要 3 分钟。

数据结构第二章的学习结束了,了解了顺序表,单链表的建立,插入,删除,查找的算法,以及对它们时间复杂度,空间复杂度的分析。学会区分头指针,头结点和首元结点。

前插法,后插法创建单链表,相比之下,我觉得后插法比较好理解。双向链表就是那个表示被处理结点的前驱的后继(p->prior->next),结点的后继的前驱(p->next->prior)要区分开。

作业,说实话,一开始的时候,我真的很懵,书上的算法描述,我可以看的很明白,同时也感到很奇怪,甚至还一度认为那是可以敲上电脑进行编译运行的,不过在询问同学之后,我也开始清晰了。

有一个很大的问题就是,在做单链表那道题时,明明感觉很简单,就是做不出来一开始。因为我没有搞清楚LNode,LinkList两个的区别,后来慢慢从编译结果中摸索,看书,才明白LNode是结构体类型,LinkList是指针类型(我把两个搞混了,也可以说是看书不认真,还有之前基础没打好)然后LNode*也可以定义指针变量。弄清楚之后题就做出来了,当然还有一些细节要抠。

做实践题的时候,我一开始没有想到sort函数,但是我用了选择排序,也将数组排序了,就是后面的存入第三方数组那里我搞不清楚,用了for循环,但没做出来。后来也听老师讲了那个并集的那个想法,其实我脑子里是没有想清楚的,但也大概知道个方向,后来也是问了同学才知道要怎么做去实现,当然,因为我在用while 循环前,没有将,i,j重新置0,导致我一直做不对,还好老师提醒,不然真的不知道怎么改。现在我也知道用for循环怎么去实现那部分了。其实很简单,只是它的时间复杂度为O(m*n).

for(i=0;i<n;i++)

{

   for(j=0;j<m;j++)

    {

       if(a[i]==b[j])

      {

       c[sum]=a[i];

       sum++;

       }

    }

}

算法时间复杂度的考虑,我还不是很熟,想一想就立马说出口。如果是绕一点的算法,我可能要想好久。

困难:自己的指针部分没有学很好,还有结构体部分需要再回去翻翻C++。就是链表里的结点表示,双链表的前驱后继,我还要区分清楚一点,以及对算法时间复杂度的计算要熟练一点。还有就是我没有将那些很好的算法描述记住,下一次用到的话,就写不出来,所以就是要多看看书,把它记住了。

目标:把自己的作业,代码打好打对。将课程里的内容,课堂讲的内容能够很好的吸收,进行复习,将遗留问题解决。还有能够做好作业,并有另一种想法再去实现某一部分算法。

 

转载于:https://www.cnblogs.com/hqx123/p/10544472.html

你可能感兴趣的文章
STL容器之vector
查看>>
数据中心虚拟化技术
查看>>
复习文件操作
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
JavaScript 克隆数组
查看>>
eggs
查看>>
一步步学习微软InfoPath2010和SP2010--第七章节--从SP列表和业务数据连接接收数据(4)--外部项目选取器和业务数据连接...
查看>>
oracle 报错ORA-12514: TNS:listener does not currently know of service requested in connec
查看>>
基于grunt构建的前端集成开发环境
查看>>
利用循环播放dataurl的视频来防止锁屏:NoSleep.js
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
Abstract Factory Pattern
查看>>
list 容器 排序函数.xml
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>
CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
查看>>
windows下编译FreeSwitch
查看>>
git .gitignore 文件不起作用
查看>>