在上文中提到了数据结构,数据元素和数据项定义,接下来我们看下数据结构的基本组成部分。
(一)数据的逻辑结构
说明:指反应数据元素之间的逻辑关系的数据结构,其中逻辑关系是指数据元素之间的前后件关系,而与它们在计算机中的存储位置无关。
(1)集合:数据结构中的元素之间除了同属一个集合的相互关系外,别无其他关系。
(2)线性结构:数据结构中的元素存在一对一的相互关系。
(3)树形结构:数据结构中的元素存在一对多的相互关系。
(4)图形结构:数据结构中的元素存在多对多的相互关系。
(二)数据的物理结构(存储结构)
说明:指数据的逻辑结构在计算机存储空间的存放形式
数据的物理结构是数据结构在计算机中的表示(又称映像),它包括数据元素的机内表示和关系的机内表示,由于具体实现的方法有顺序、链接、索引、散列等多种,所以,一种数据结构可表示成一种或者多种存储结构。
数据元素的机内表示(映像方法):用二进制的位串表示数据元素,通常称这种位串为节(node),当数据元素有若干个数据项组成时,位串中与各个数据项对应的子位串成为数据域(data field)。因此,节点是数据元素的机内表示(或机内映像)。
关系的机内表示(映像方法):数据元素之间的关系的机内表示可以分为顺序映像和非顺序映像,常用的两种存储结构:顺序存储结构和链式存储结构。顺序映像借助元素在存储器中的相对位置来表示数据之间的逻辑关系,非顺序映像借助指示元素存储位置的指针(pointer)来表示数据元素之间的逻辑关系。
(三)数据结构的运算(算法)
说明:算法的设计取决于数据的逻辑结构,实现依赖于数据的物理结构,不同数据结构有其相应的若干运算,数据的运算是在数据的逻辑结构上定义的操作算法。
数据结构的基本运算内容:
(1)建立数据结构;
(2)清除数据结构;
(3)插入数据元素;
(4)删除数据元素;
(5)更新数据元素;
(6)查找数据元素;
(7)按序重新排列;
(8)判定某个数据结构是否为空,或是否已达到最大允许的容量;
(9)统计数据元素的个数。
数据的逻辑结构是从具体问题中抽象出来的数学模型,是描述数据元素及其关系的数学特性,有时候就把逻辑结构简称为数据结构。在学习编程的过程中,我们其实已经接触过数据结构,例如我们经常使用的数组,就是线性结构中的一种,除了数组外,像是链表,队列,栈也都是线性结构,可以说线性结构是我们在学习数据结构中处理比较多的一种,当然除了线性结构外,树形结构也经常会遇到,例如二叉树,自平衡二叉查找树,B树(关于树形结构,小编也只是听过,仅此而已),至于集合和图形结构,对于小编来说甚至陌生,听闻都很少,估计也不经常使用吧。
不管怎么样,对于数据结构,算是有了初步的认知和了解,起码知道了什么是数据结构,数据结构的构成,接下来,小编将会带着大家继续探索数据结构这个奇妙的世界。