第七周总结
学期(如2020-2021-1) 学号(如:20201326) 《信息安全专业导论》第7周学习总结
作业信息
这个作业属于哪个课程 | <班级的链接>(如2020-2021-1信息安全专业导论) |
---|---|
这个作业要求在哪里 | <作业要求的链接>(如2020-2021-1信息安全专业导论第七周作业) |
这个作业的目标 | <写上具体方面> |
作业正文 | ... 本博客链接 |
教材学习内容总结
第八章抽象数据类型与子程序
1:数据结构:一种抽象数据类型中的复合数据域的实现。
2:容器:存放和操作其对象的对象
栈。
FILO(first in last out),就像一螺丝钉,像上面套螺丝帽,先套上去的最后才能取出来。
插入操作:推进,删除操作:弹出
队列:
FIFO(first in first out),就如水管一样,先进入的水会从水管的另一端先出一样。
可删可改
列表。
特点:同构,线性(每个项目除了第一个都有一个独特的组成部分在它之前除了最后一个都有独特的组成部分在它之后),变长的(整个列表的大小是可以改变的)
对栈和队列的操作都能使用在列表这里。
*不要把列表和数组搞混,数组是内嵌结构(若要在一个数组中插入一个数字,则现将所插入位置以下数向下移动一项,再将插入的数放入空格的这个位置上),列表是抽象结构(假如要对列表实行上诉操作,则先将数放到最后,接下来再与对应位置的数互换)
列表可以被形象化为连式结构(连式结构:一个将数据和找到下一项的位置的信息保存在同一个容器的实现方法(一个数据项后跟着另一个数据想的位置))
树。
实现一对多的一种抽象结构(一般的我们说的是二叉树)
二叉树,一种抽象结构,顾名思义一个节点分为两个线,分别连接一个节点<也许不连,可能该节点没有子女)第一个节点叫跟,没有子女的节点叫叶节点。
二叉树检索:
假如这有一堆数,从中选一个作为跟,比根大的放根的右侧,小的则放于左侧;当根的子女放完了之后,则接下来的放于根的子女下方,并继续按上述方法执行(依然需要与“根”比较)
Current指向一个节点,info(current)指向这个节点中的用户信息
Left(current)左子树的根节点
Right(current)右子树的根节点
Null 空值
图。
实现多对多的数据结构(图中节点称为顶点,图中的线段叫做弧)
图:由一组节点和一组把节点连接起来的的边构成的数据结构(又分为有向图和无向图)
图算法
深度优先搜索:对每一个可能的路径深入到不能再深入为止,每个节点只能访问一次,返回最初的位置进行下一个搜索,知道没有可以进行搜索的路径为止。
广度优先搜索:单元最短路径算法和最小生成树算法都用了广度优先搜索,盲目搜寻法,查询图中的所有节点,以达到目的,彻底的搜寻整个图知道找到为止
子程序。
参数列表:子程序需要使用的标识符获知的列表,放于子程序名称括号中。
形参:变量说明(本质为一个名字)(如a = input(‘ ‘,a就是形参)
实参:实际参数,调用子程序时,这些实参时准确的值
形参之引用参数:由调用单元传入实参的的地址的形参(调用单元把实参的地址传递给子程序)
形参之值参:让调用单元把实参的副本传递给子程序。
教材学习中的问题和解决过程
(一个模板:我看了这一段文字 (引用文字),有这个问题 (提出问题)。 我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验)。 但是我还是不太懂,我的困惑是(说明困惑)。【或者】我反对作者的观点(提出作者的观点,自己的观点,以及理由)。 )
- 问题1:什么是形参,实参(形参:https://baike.baidu.com/item/形式参数/1995068?fromtitle=形参&fromid=7677757&fr=aladdin
实参:https://baike.baidu.com/item/实际参数/2231530?fromtitle=实参&fromid=1995087&fr=aladdin - 问题1解决方案:百度百科
- 问题2:深度优先,广度优先
- 问题2解决方案:百度百科(广度:https://baike.baidu.com/item/宽度优先搜索/5224802?fromtitle=广度优先搜索&fromid=2148012&fr=aladdin
深度:https://baike.baidu.com/item/深度优先搜索/5224976?fr=aladdin - ...
代码调试中的问题和解决过程
- 问题1:想要实现一个循环,使用了if语句,但结果出错(因为if只能进行一次判断并立马做出下一步算法)
- 问题1解决方案:利用for,解决了这个问题
- 问题2:无
- 问题2解决方案:
代码托管https://gitee.com/jiangjinin
上周考试错题总结
- 无
其他(感悟、思考等,可选)
在实行10进制转化为二进制(8,16)是,其实不用写太多代码,
直接n = eval(input('n:’))
(print('{:x}.format(n))
便可以将默认的十进制转换成16(x)进制。二为b,八为o
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 4000行 | 30篇 | 260小时 | |
第五周 | 140/200 | 1/2 | 48/65 | |
第六周 | 630/500 | 3/3 | 56/65 | |
第七周 | 700/1200 | 2/5 | 59/65 | |
第八周 | 0/2100 | 0/5 | 0/65 |
-
计划学习时间:260小时
-
实际学习时间:163小时
-
改进情况:good good study and day day up!
参考资料
- [《计算机科学概论》]
- [《程序设计概论》]
- [《鸟哥的Linux私房菜》]