作为一个编程技术人员,我们无时无刻不跟数据打交道,那数据和数据结构到底啥关系呢 ?在官方的定义中数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。其实通俗的讲,数据结构就是计算机存储、组织数据的方式。
数据结构分别为逻辑结构、存储结构(物理结构)和数据的运算。我们存储数据的目的是为了后期能够加以利用,通常,我们开发过程中最常用的是变量或者数据存储数据,如下:
int i=1;
int j=2;
String str="abc";
char arr={'a','b','c'};
然而我们通常会遇到很多数组无法表示或者不直观的问题,这个时候我们还能咋办呢?
比如当我们遇到这样一种问题:一群学生排队,除了第一个学生,其他学生只记得他前一个学生是谁,如图1,用程序该如何表示呢?
图1
如果用数组来存储图1所示的关系:{'student1','student2'.....'studentN'},数据存储是没有问题,虽然体现数据之间的存储关系,但是却无法体现他们之间的逻辑关系,对于后期根本无法使用。针对以上问题,可以用队列的数据结构来存储。
再比如,我们有一家族成员,他们关系如图2所示,我们要怎样存储他们呢?如果用数组存储我们怎么知道谁是长辈,谁是兄弟姐妹呢?
图2
很明显,这些数据如果使用变量或数组进行存储的话就变成:{'爷爷','奶奶','爸爸','妈妈','我','弟弟',....},根本无法表示他们的关系。不难看出,对于存储之间具有层级关系的数据,如果用数组存储,这样对于数据的使用简直是个悲剧。对于图2我们可以用树的数据结构存储。
通过以上我们可以知道,数据结构不仅能帮助我们解决简单的问题,也能处理复杂的数据关系,精心选择的数据结构更能带来更高的运行或者存储效率。
因此,我认为,数据结构是一门思想,它使我们思考”如何高效的存储和组织具有复杂关系的数据,以便更有助于后期的维护和利用“。