数据结构-数据结构绪论
这几天在书店看书看见一本叫数据结构的书感觉蛮好的!想学习一下。
首先说下基本概念和术语:
说道数据结构是什么,先来谈谈什么叫数据。
数据:是描述客观事物的符号,是计算机可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。
按照视点的不同,把数据结构分为,逻辑结构和物理结构。
逻辑结构:是指对象中数据元素之间的相互关系。逻辑结构分以下四种
1.集合结构:集合结构中的数据元素除了同属于一个集合外,他们之间没有其他关系。各个元素之间是平等的,他们共同的属性是同属于一个集合
2.线性结构:数据元素之间是一一对应的关系。
3.树形结构:树形结构中的数据元素之间存在一种一对多的层次关系
4.图形结构:图形结构的数据元素之间是多对多的关系
逻辑结构是针对具体问题的,是为了解决某个问题,在对问题理解的基础上,选择一个合适的数据结构表示数据元素之间的逻辑关系。
物理结构:(也称存储结构)
指的是数据的逻辑结构在计算机中的存储形式。
数据的存储结构应正确的反映数据元素之间的逻辑关系,这才是最为关键的,如何存储数据元素之间的逻辑关系是物理结构的重点和难点。
数据元素的存储形式有两种:顺序存储和链式存储
1.顺序存储结构:是吧数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的
这种存储结构其实很好理解,说白了就是排队占位。大家都按顺序排好,为个人占居一小段空间,大家谁也别插谁的队。
如果就是这么简单和有规律那就好了,可实际上,总会有人插队,也会有人要做别的事,会有人放弃排队。所以这个队伍就会有添加新成员和去掉老成员,整个结构就处于变化中。显然面对这样变化的的结构,顺序存储时不科学的。
2.链式存储结构:是把数据元素放在任意的存储单元中,这组存储单元可以是连续的,也可以是不连续的。
数据元素的存储关系并不能反映其逻辑关系,因此需要用一个指针存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置。
抽象数据类型
数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
C语言中,按照取值的不同,数据类型可分为2类:
1.原子类型:是不可再分的原子类型,包括整形,实型,字符型等。
2.及认购类型:有若干个人类型组合而成,是可以载分解滴。如整形是由若干个整形数据组成的。
话说无论什么计算机什么计算机语言,大家都面临着如证书运算,实数运算,字符运算等操作。我们可以考虑把他们抽像出来。
抽象是指抽取事物普遍性的本质
它是抽出问题的特征而忽略非本质的细节,是指针对事物的一个概念,抽象是一种思考问题的方式,它隐藏了繁杂的细节,只保留实现目标所必须的信息。
抽象数据类型:是指一个数学模型寄定义在该模型上的一组操作。