分为逻辑结构和存储结构。
逻辑结构:表示数据之间的相互关系。
存储结构:数据在内存的存储形式。
1.集合:数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系;
3.树形结构:数据结构中的元素存在一对多的相互关系;
4.图形结构:数据结构中的元素存在多对多的相互关系。
线性结构就是表中各个结点具有线性关系。(线性表、栈、队列、数组)(线性表包括链表和顺序表)
非线性结构就是表中各个结点之间具有多个对应关系。(树、图)
链表和顺序表的区别:
顺序表里面元素的地址是连续的,空间连续,支持随机访问
链表里面节点的地址不是连续的,是通过指针连起来的。不支持随机访问
物理结构又叫存储结构,分为四种种,顺序存储结构、链式存储结构、索引结构、散列结构。
1.顺序存储结构:
一段连续的内存空间。
优点:随机访问
缺点:插入删除效率低,大小固定
2.链式存储结构:
不连续的内存空间
优点:大小动态扩展,插入删除效率高
缺点:不能随机访问。
3.索引存储结构:
为了方便查找,整体无序,但索引块之间有序,需要额外空间,存储索引表。
优点:对顺序查找的一种改进,查找效率高
缺点:需额外空间存储索引
4.散列存储结构:(哈希=散列)
选取某个函数,数据元素根据函数计算存储位置可能存在多个数据元素存储在同一位置,引起地址冲
优点:查找基于数据本身即可找到,查找效率高,存取效率高。
缺点:存取随机,不便于顺序查找。