虽然从事编程已经好多年了,但是对于数据结构并没有任何了解,因为平时用不到,最近研究mysql的时候偶然看到了数据结构一词,忽然间发现我对于数据结构居然一无所知,虽然很久以前就看到过类似“程序=数据结构+ 算法”的说法,但是一直没有对其进行深入研究,借此机会正好来探索下数据结构的世界。于是乎百度了各种有关数据结构的资料,经过几天的学习与整理,得出了如下的结论。
数据结构基础概念相关:
数据:对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并且能被计算机程序处理的符号的总称。
数据对象:性质相同数据元素的结合。
数据结构(说法一):指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。
数据结构(说法二):带结构的数据元素的集合(结构即关系的意思)。
数据元素:数据的基本单位,由若干数据项组成,是数据项的集合,在计算机程序中通常作为一个整体进行考虑,数据元素也可以成为元素、结点、顶点、记录。
数据项(说法一):数据结构中讨论的最小单位,是数据记录中最基本、不可分的有名数据单位。
数据项(说法二):数据元素的某一属性,数据项可以由若干更小的款项(原子项,组合项)组成,数据项又称为域、字段。
数据项(自理解):数据项可以分为基本数据项(也可以称为原子项)和组合数据项(由超过一个原子项组成),基本数据项就是说法一种的最基本,不可分割的可命名的最小单位。
其实数据结构不难理解,数据结构的构成很简单,一个是数据元素,一个是关系,当然这里的关系是数据元素之间的关系。想要理解数据结构,就需要先了解数据元素,数据元素之中又牵扯到了数据项,单看定义性的文字可能仍然没有什么概念,下面我们来看个具体实例,了解下什么是数据元素,什么是数据项。
学号 | 姓名 | 性别 | 年龄 | 籍贯 | 出生年月 |
10001 | 张三 | 男 | 15 | 河南郑州 | 2000.3.14 |
10002 | 李四 | 女 | 14 | 河南洛阳 | 2001.5.16 |
以上是一个学生信息的管理表,其中每一行数据,我们都可以看做是一个数据元素,而组成这个数据元素学号,姓名,性别等具体的信息,我们就可以把它看做是数据项了,其实生活中还有很多例子,例如我们平时网购的时候所下的订单,一个订单我们就可以看做是一个数据元素,而构成订单的诸如订单编号,订单内容,发货时间,收件人等等就是这个数据元素的数据项了。对于数据元素应该没有特别难理解的地方,但是对于数据项就有些歧义了,网上很多说法都是在说数据项是不可分割的最小单位,但是说着说着又冒出来个原子项和组合项的概念,例如上述的学生信息管理表,其中学号,姓名,性别,年龄都是不可再分的,我们称之为原子项,而籍贯和出生年月却是可再分的,例如籍贯可以分为省和市,而出生年月可以分为年、月、日,这些就被称为组合项,原子项就不说了,而组合项明显不符合数据项的定义吗,因为它是可以分割的呀,那么到底数据项该如何定义?经过小编不懈的努力,总算摸索出来一个比较靠谱的说法,数据项可以分为基本数据项和组合数据项,而我们常说的不可分割的是基础数据项,又可以成为原子项,而多个基础数据项组合在一起就构成了组合数据项,这样一来,定义中的各种概念也就说的通了。