数据结构----初识结构

    数据结构并不仅仅是算法中的一个概念,实际上,数据结构的概念切实的深入了我们的生活。数据结构所描述的是在我们面对一堆数据的时候,我们该以何种方式去组织数据,例如,我们如何在浩如烟海的数据中准确的找出一条数据?有人说那就从头到尾的一一比对,肯定能最终找到这条数据,当然这不失为一个办法,而且在很多时候是一个相当不错的办法。那么就算是一一比对查找,在这个过程之中,我们也对数据有组织形式:我们从头一一比对直到找出,数据不就是按照列表的方式来组织么?

    数据结构的学习并不仅仅是为了解出算法题,我们在这个过程中所需要重点关注的是为什么会提出这么多的数据结构,他们提出的初心是什么,思想是什么;所需要真正吸收的是数据结构分析问题,解决问题的思想。我们的生活也不仅仅是编程,我们所需要的是编程中发现问题,解决问题的思想。

    什么是数据结构?这也是每一个学习数据结构学习编程的人首先需要解决的问题。通俗的来说,数据结构是一种组织数据的方式。每种数据结构的提出,都是在解决一种具体的问题。数据结构实际上是一种逻辑上的数据存储方式,是对数据底层存储的一种抽象,一般而言,我习惯按照数据的组织方式或者更加通俗的讲是连接关系,分成点结构、线性结构、树结构、图结构。点结构是一种逻辑上每个点独立存在的结构,相邻点之间没有逻辑的关联性,这种结构我们也经常见,一般是k-v键值对, 常见的例如Map,字典等。线性结构毋庸置疑,数据的逻辑组织方式是线性的,即每个数据都存在一个先驱数据和一个后继数据(首尾相应处理),例如:队列、栈等;树结构的数据在逻辑上的组织方式是树状的,每个节点有一个先驱节点,有多个后继节点。我们一般讲先驱节点叫做父节点,而后继节点我们叫做孩子节点,树结构的数据结构一般有,二叉树,二叉查找树,红黑树,B+树等。图结构也是现实生活中相当常见的一种数据结构,例如社交图,在这种场景下,节点和节点之间互联成了一个网络,当然也是一个图,每个节点有多个先驱节点和后继节点,图依据节点之间的连接关系分为有向图,无向图,而围绕图这一数据结构,又引申出来拓扑学、图论等诸多研究点。图是一种蕴含较多信息量的数据结构(指某些方面的应用)。同时在现实生活中随处可见天然图结构的数据,交通图,社交图。

    这个系列的博文也是记录自己对数据结构的理解,也算是一种记录。

原文地址:https://www.cnblogs.com/establish/p/12488191.html