数据结构系列(一)入门

内容参考《大话数据结构》

什么是数据结构

数据结构是数据元素之间存在的一种或多种关系的集合

 

逻辑结构

1.集合结构

集合内各数据元素平等,只是属于一个集合
集合中的数据元素都是无序的
集合中的数据元素只能出现一次{1,2,3},而不是{1,2,1}
例如java中的set,python没有value的dictionary
 

2.线性结构

元素是一对一的关系
线性结构一般分为顺序和链式
 
顺序一般有数组,队列,栈,串等结构
例如java的arraylist
链式一般有单链表、双向链表、循环链表
例如java的linkedlist
 
单向链表
循环链表
双向链表
 
 

3.树结构

元素存在一对多的层次关系
例如 二叉树,btree,红黑树, lsm tree等
 

4.图结构

元素存在多对多的关系
例如 有向无环图,无向图,连通图等
 

物理结构

物理存储结构反应数据元素之间的逻辑关系

顺序存储

简单来说就是分配一段连续的存储空间,把数据有序的存下来
典型例子就是数组,当数组长度确认后,就会分配一段连续的存储空间,数据一一对应的存储

链式存储

把数据存储在任意位置,用指针存储这个地址,之后要寻找这个数据就通过指针
典型例子就是链表,链表中数据的前后对应关系都是通过指针来确认,其在物理存储中的地址不是连续的
 

参考资料

//对线性数据结构的解释
//一个能形象演示数据结构和算法的网站
原文地址:https://www.cnblogs.com/ulysses-you/p/6910068.html