内容参考《大话数据结构》
什么是数据结构
数据结构是数据元素之间存在的一种或多种关系的集合
逻辑结构
1.集合结构
集合内各数据元素平等,只是属于一个集合
集合中的数据元素都是无序的
集合中的数据元素只能出现一次{1,2,3},而不是{1,2,1}
例如java中的set,python没有value的dictionary
2.线性结构
元素是一对一的关系
线性结构一般分为顺序和链式
顺序一般有数组,队列,栈,串等结构
例如java的arraylist
链式一般有单链表、双向链表、循环链表
例如java的linkedlist
单向链表
循环链表
双向链表
3.树结构
元素存在一对多的层次关系
例如 二叉树,btree,红黑树, lsm tree等
4.图结构
元素存在多对多的关系
例如 有向无环图,无向图,连通图等
物理结构
物理存储结构反应数据元素之间的逻辑关系
顺序存储
简单来说就是分配一段连续的存储空间,把数据有序的存下来
典型例子就是数组,当数组长度确认后,就会分配一段连续的存储空间,数据一一对应的存储
链式存储
把数据存储在任意位置,用指针存储这个地址,之后要寻找这个数据就通过指针
典型例子就是链表,链表中数据的前后对应关系都是通过指针来确认,其在物理存储中的地址不是连续的
参考资料
//对线性数据结构的解释
http://blog.csdn.net/jiuqiyuliang/article/details/23923507
//一个能形象演示数据结构和算法的网站
时间: 2024-10-13 10:07:07