数据结构概述
数据结构可以简单的理解为数据与数据之间所存在的一些关系,数据的结构分为数据的存储结构和数据的逻辑结构。
逻辑结构
集合结构:数据元素同属于一个集合,他们之间是并列关系,无其他的关系;可以理解为中学时期学习的集合,在一个范围之内,有很多的元素,元素间没有什么关系
线性结构:元素之间存在着一对一的关系;可以理解为每个学生对应着一个学号,学号与姓名就是线性结构
树形结构:元素之间存在着一对多的关系,可以简单理解为家庭族谱一样,一代接一代
图形结构:元素之间存在多对多的关系,每一个元素可能对应着多个元素,或被多个元素对应,网状图
存储结构
顺序存储结构:就是将数据进行连续的存储,我们可以将它比喻成学校食堂打饭排队一样,一个接着一个;
链式存储结构:不是按照顺序存储的,后一个进来的数只需要将他的地址告诉前一个节点,前一个节点中就存放了它后面那个数的地址,所以最后一个数的存储地址就是为null;可以将这种结构比喻成商场吃饭叫号,上面的号码比喻成是地址,你可以之后后面的地址是什么,上面的其他内容就是该节点的内容;
区别:
顺序存储的特点是查询快,插入或者删除慢
链式存储的特点是查询慢,插入或者删除快
常用数据结构实现
以下博客根据B站罗召勇老师视频:数据结构与算法基础-Java版(罗召勇)写的详细笔记
(一)数据结构与算法之数组
(二)数组结构与算法之栈
(三)数据结构与算法之队列
(四)数据结构与算法之链表
(五)数据结构与算法之树结构基础
(六)数据结构与算法之二叉树大全
(七)数据结构与算法之Huffman tree(赫夫曼树 / 霍夫曼树 / 哈夫曼树 / 最优二叉树)
(八)数据结构与算法之多路查找树(2-3树、2-3-4树、B树、B+树)
(九)数据结构与算法之图结构