从本节开始,您将系统地学习数据结构,首先您将了解什么是数据结构。
到目前为止,数据结构还没有标准的定义。 市面上有很多解释数据结构的书籍和**,以及一些专家给出的关于什么是数据结构的答案:
1)数据结构是具有结构的数据元素的集合。
2)数据结构是一门研究计算机在非数值计算编程问题中操作的对象及其关系和操作的学科。
3)数据结构是彼此之间具有一个或多个特定关系的数据元素的集合。
这些答案中的每一个都试图从不同的角度解释“数据结构”的含义,但遗憾的是,只有对数据结构有一定了解的人才能掌握这些词的含义。 对于从未接触过数据结构的读者来说,他们根本不知道自己在说什么,如果他们被杀了,也无法理解。
很多人学习数据结构很久了,脸上还是挂着问号,不知道学习数据结构有什么用,归根结底,他们不懂什么是数据结构。
接下来,我将用通俗易懂的语言回答“什么是数据结构”这个问题。
温馨提示:如果你想系统地学习数据结构,请输入我个人**xiexuewugithub.IO,拥有一整套数据结构和算法教程,提供了完整且可运行的C语言程序,非常适合有C语言基础的初学者。
数据结构作为一门独立的学科,直到 1968 年才开始。 以前,数据结构的内容分散在其他计算机课程中,例如编译原理、操作系统等。
数据结构并不像你想象的那么复杂,它教会了你一件事:如何有效地存储数据。
在数据结构中,所有可以被计算机处理的信息都称为数据,例如数值、字符、图像、音频等。
很多人认为存储数据是一件简单的事情,各种编程语言提供了存储数据的方法,比如常用变量、数组等,甚至将数据存储在文件中。 存储数据并不难。 真正的挑战是存储数据,同时存储数据之间的关系。
举个简单的例子,每个家族都有一个家谱或家谱,记录了有关家族血统和繁殖的信息,如图 1 中的家谱图
图 1 家谱。
在存储这张图片的时候,仅仅存储这些名字是不够的,还要存储它们之间的关系,比如张亮是张平的父亲,张磊的祖先等等。
例如,您必须使用过导航软件(如高腾导航、腾讯地图等),为了实现准确的导航,软件必须存储大量数据,包括各省、市、区、县的道路、建筑物、红绿灯等位置信息,以及各地区的天气信息、高速公路信息等。
图2 导航图。
这些信息就是数据,数据之间的关系错综复杂,这些关系能否正确存储,直接决定了软件导航的准确性。
在家谱图、道路信息等场景中,数据本身的存储并不难,但真正的难点在于如何存储数据之间的关系。 通过学习数据结构,您将获得许多存储数据的场景,以便您可以存储数据,同时正确存储数据之间的关系。
什么是数据结构,在我看来,它是一门教你如何存储具有复杂关系的数据的学科。
存储数据(思想、想法)的数据结构的思想可以用任何编程语言实现。 换句话说,无论你知道什么编程语言,无论你处于什么开发阶段,如果你在处理数据,你必然会使用数据结构。
想要系统学习数据结构的朋友xiexuewu.github.io这**有一整套完整的数据结构和算法教程,并提供了完整且可运行的C语言程序,非常适合有C语言基础的初学者。