package com.Lucky.DataStructure;
/*
数据结构: 逻辑结构+储存结构+储存结构的运算
逻辑结构分为:线性结构 1:1
树状结构 1:N
网状结构 N:N
储存结构:顺序/链式/索引/散列
*/
public class dataDemo {
public static void main(String[] args) {
/**
* 顺序结构:1.在内存中分配连续的空间,每个空间的大小相同,逻辑顺序和物理顺序一致。
* 优点:按照索引查询效率高,查询第N个元素的地址=数组首地址+每个空间的大小*N
* 却点:添加,删除需要移动大量的数据,效率低
*/
/**
* 链式结构:1.在内存中不分配连续的空间,每个空间的大小相同,逻辑顺序和物理顺序不一致。
* 却点 :按照索引查询效率低,只能逐个查询,无法算出地址
* 优点:添加,删除需要不移动大量的数据,效率高,只要改变前后节点的指针【地址】就可以了
*/
/*
拓展: 顺序结构or链式结构那个更节省空间?????
解: 1.从空间上讲,顺序结构更加节省空间,因为顺序结构只需要存储数据,不需要存储地址,
而链式结构需要存储数据,也需要存储地址,
2.从实际运用上讲,链式结构更加节省空间,因为顺序结构会事先分配一定空间,
如果储存的数据小于分配的空间,会造成空间的浪费,而链式结构不会,链式结构是有数据才会有节点
按照内容查询,顺序结构or链式结构那个效率高?????
解:那种结构效率都不高,都要逐个比较查询
*/
/**
* 栈与队列
* 栈:先进后出
* 队列:先进先出
*/
}
}
图解:
链表:
![]()
栈与队列:
![]()
数组:
![]()
树:
![]()
堆: