这几天一直学习数据结构这块,脑子挺大的,于是想好好整理一下,把这些知识串联起来,编制成知识网,而不能满足于停留在有印象了,或会做题的了。
程序=数据结构+算法 ,而数据结构又是算法设计的基础。
可见这块的重要性了,其实自己想想,想成为高手,这块是必须很熟悉的,先不说精通了。
1、数据结构:是指数据元素的集合及数据元素之间的相互关系和构造方法。
数据元素之间的相互关系称为逻辑结构。
数据元素的集合及数据元素之间的关系的存储称为存储结构。
由数据结构概念---引出什么是逻辑结构和什么是存储结构。
2、逻辑结构:数据元素之间的关系。
用生活中的比喻:爷爷 奶奶 爸爸 妈妈 你 这5元素的关系,其实就是一个明显的家庭族谱图,这而族谱图很像我们生活中的树的形状,于是人们就说这5个元素的逻辑结构是树形的。
其实任何这种逻辑结构都来自我们生活,不可能瞎想出的,就算抽象,也得有具体事物给你抽象吧。
逻辑结构:分为线性和非线性的两大类。
线性:就是数据元素之间的关系是一个接一个的排列,就像我们生活中的排队一样,于是这种关系人们叫线性关系
几种常见的线性结构:队列、栈、数组、线性表和广义表、串(字符串)。
几种常见的非线性结构:树和图。
3、存储结构:存储了数据元素和数据元素之间关系。
其实就存储两个东西:一个是数据元素,一个是数据元素之间的关系。
比喻:存储了爷爷、奶奶 、爸爸、妈妈和你5个元素,而且还存储 爸爸和妈妈之间的夫妻关系,你和爸爸之间的父亲和儿子的关系等。
存储结构:主要分为两大类顺序和链式存储
无论是线性是非线性都可以用这两种存储结构来存储。
4、说了这么多,不如用张思维导图来总结一下,如看下图。