第二章学习小结

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

前插法,后插法创建单链表,相比之下,我觉得后插法比较好理解。双向链表就是那个表示被处理结点的前驱的后继(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

时间: 2024-10-09 09:32:59

第二章学习小结的相关文章

20181117-python第二章学习小结-part2

浮点型补充: 有限小数与无限循环小数,不包括无理数! 小数点后面的数据运算太复杂,精确度不及整数! 尽量使用科学计数表示小数 列表学习(语法) 创建:[] list = []  #创建空表 list = [a,b,c,d,e] #创建新表,并添加元素 查询: list[2]    #按索引号2取出相应的元素 list.index("a")   #查找 元素a的索引号 list.count("a")  #统计元素a在这个列表中的数量 切片,语法是:,作用是按照索引号取

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

心得体会:经过一周的学习,初步理解顺序表.单链表的概念及初步应用,像顺序表,存储空间一定是连续的,而链表则可以通过指针指向下一个结点的地址,从而使链表的存储空间不连续,真的是很神奇的概念目前存在的困难:不能完全靠自己独立地写出ADT的定义和一些具体的操作,对我现在来说还是有点难度的.不过我相信熟能生巧. 分享的资料:<CLRS 算法导论>——百度直接搜索即可,其他同学有提到过,是一本算法的百科全书.下一阶段的目标:完全理解及独立地完成和完成一些代码的操作,不依靠课本的一些案例,也希望自己能够更

20181117-python第二章学习小结-part1

什么是二进制,十进制如何转化成二进制. 在python上可使用简单的函数进行转化,bin() 数据量的基本关系: 1bit  就是0/1的一个单位 1bytes = 8bit    #1个字节,就是一个英文,3个字节是1个中文字 1kb = 1024b    #一千个字母,大小相当于一个小文本 1MB = 1024kb  #1百万个字母,10万个单词,大小相当于一个长篇小说 1GB = 1024MB #大小相当于一个电影 1TB 1PB 文字符号是如何转化为数字的? ASCII码,最早的英文与常

第三章学习小结—-转

[学习目标] 01掌握一维数组的声明和使用方法(OK) 02掌握二维数组的声明和使用方法(OK) 03掌握字符串的声明.赋值.比较和连接方法(连接很少用) 04熟悉字符的ASCII码和ctype.h中的字符函数 05正确认识++.+=等能修改变量的运算符(OK) 06学会用编译选项-Wall获得更多的警告信息(OK) 07了解不同操作系统中换行符的表示方法(嗯) 08掌握fgetc和getchar的使用方法(fgetc基本没用过) 09掌握预处理和迭代开发的技巧(嗯) 程序3-1 逆序输出 输入

20172304 2018-2019《java软件结构与数据结构》 第一章 第二章学习总结

20172304 2018-2019<java软件结构与数据结构> 第一章 第二章学习总结 教材学习内容总结 第一章 概述 1.1软件质量: 高质量软件的几个特征: 正确性:软件在多大程度上满足其特定需求 可靠性:软件故障发生频率和危险程度 健壮性:出错情况下可以得到恰当处理的程度 可用性:用户学习和执行任务的难易程度 可维护性:对软件进行修改的难易程度 可重用性:软件组件可重用于其他软件系统开发的难易程度 可移植性:软件组件可以在多个计算机环境下使用的难易程度 运行效率:在不浪费资源的情况下

数据结构 第一章学习小结

数据结构   第一章学习小结 1.数据结构第1章的心得体会: 这周学习了数据结构的绪论及第一章.初步了解了数据结构与算法的相关概念,一开始看书看视频时觉得还挺抽象的,不能够完全理解.但是反复多看了几遍之后,结合例题,自己去操作去跑代码,慢慢觉得容易理解接受起来了.由于现在以网课形式进行教学,老师上课的同时基本还是靠自己去理解学习.当然老师也发挥很大的作用,比如让我们更深入的了解递归的空间复杂度为什么与问题规模有关,又怎样去找到该函数的临界值等等.既锻炼了我们深入思考的能力,也让我们更加清楚了解不

Python核心编程第三版第二章学习笔记

第二章 网络编程 1.学习笔记 2.课后习题 答案是按照自己理解和查阅资料来的,不保证正确性.如由错误欢迎指出,谢谢 1. 套接字:A network socket is an endpoint of a connection across a computer network,Sockets are often represented internally as simple integers, which identify which connection to use. 套接字是网络通信的

201671010105 2016-2017-2《Java程序设计》第一、第二章学习心得

我们大一的时候学习的是C语言程序设计,C语言是面向程序的,而老师也说过我们后面会学习一种面向对象的程序设计语言--Java程序设计,而在二年级开学第一周,我们第一次真正意义上接触到了它. 令人意外的是和往常老师讲学生听不同,这一周我们对Java程序设计第一.第二章的学习完全是自主的,通过一周对Java第一.第二章的学习,心得体会如下: 第一章 Java程序设计概述 1.通过对第一章的学习,对Java有了比较深入的了解,Java和C一样,是一种语言,但它又不止是一种语言,它是一个完整的程序设计平台

《HeadFirst Python》第二章学习笔记

现在,请跟着舍得的脚步,打开<HeadFirst Python>第二章. 一章的内容其实没有多少,多练习几次就能掌握一个大概了! <HeadFirst Python>的第二章设计得很有意思.它直接从制作一个模块入手,顺带讲了模块的导入,传统的书可不会这么搞. 不过书中关于编辑器的观点略显陈旧. 最好的编辑器是什么? 别用书中推荐的Python自带IDLE,在现阶段,请使用Jupyter Notebook来进行各项练习. 等学完这本书后,你可以选择PyCharm/Eric6/Wing