目前看的有关数据结构的课,估计这周就看完了,但感觉差很多,还是和c一样,这样过一下吧。但可能比较急,目前是打算争取寒假回家之前把四大件都先大致过一遍。
数据结构里面有很多新的定义和概念,学到现在,数据结构给我的感觉更像是,将生活中一些常用的模型抽象出来,然后用编程语言加以描述和实现对其处理,学习的也就是这个。一些感觉我已经知道的概念就不写了。
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。数据元素之间的关系就是结构。通常有四种基本结构:1、集合 ,2、线性结构,3、树形结构 ,4、图状结构或网状结构。
线性结构可以联想一下我们日常生活中的排队之类的,树形结构就是一对多那种,比如我们下棋,对于当前一步后面可以出现多种下法,图或者网就是多对多了,比如我们的路。
对于结构定义中的“ 关系 ”实际上描述的是数据结构之间的逻辑结构,这个我云里雾里的,感觉大致应该是数据之间是通过何种方式产生关联的,然后数据结构在计算机中的表示(映像)称为数据的物理结构,也叫存储结构。
数据:能够输入计算机且被计算机处理的各种符号的集合,比如我们这么多学生的信息啊之类的
数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。也称为元素,记录或者结点,顶点。和上面比的话就是我们每一个学生的信息就是一个数据元素。
数据项 : 构成数据元素的不可分割的最小单位,我们每个的信息也可以在划分一下,比如学号,姓名,性别之类的,这些都是构成我们信息的数据项。
数据对象:性质相同的数据元素的集合。注意是数据元素,不是数据项。
数据元素之间的关系在计算机中有两种不同的表示方法:顺序映像和非顺序映像 ,对应的存储结构分别是顺序存储结构和链式存储结构 ,数组就是一种顺序存储结构,数据之间彼此是相互靠近的,而链式存储结构,数据和数据并不一定是靠近的,而且感觉基本是不可能靠近的,所以对于链式存储,要想实现数据的关联,就需要存储对于关联数据的地址以达到访问或者操作的目的。
抽象数据类型 :一个数学模型以及定义在该模型上的一组操作。
抽象数据类型里面有三个东西,分别是 数据对象 ,数据关系 ,基本操作。
ADT 抽象数据类名
{数据对象:(数据对象的定义)数据关系:(数据关系的定义)基本操作:(基本操作的定义)
}
算法是对特定问题求解步骤的一种描述,它是指令的有限序列,有五个重要特性:
1、有穷性,在进行有限操作之后可以结束,且每一步都可以在有穷时间内完成;
2、确定性:算法中的每一条指令必须有确切的含义,有唯一的执行路径;
3、可行性:算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的;
4、输入:有零或多个输入,取自某个特定的对象的集合。
5、输出:有一个或多个输出,输出和输入有着某些特定的关系;
然后还有关于时间复杂度和空间复杂度的概念分别用来描述算法基本操作重复执行的次数和算法所需存储空间的度量,也就是看看这个算法算的快不快以及占地方大不大,毕竟人的时间有限,电脑空间有限,是用来衡量一个算法是否优秀的。
新东西,布尔值的变量并不算赋值好像,更像是根据所得值进行判断,然后给自身一个值,非零值视为真,给自身赋值为1 ,零值视为假,给自己赋值 0 .