数据结构和算法

一:数据结构的概念

什么是数据结构?,个人理解,相互之间有一种或者多种关系的数据元素的集合。

1:数据结构:任何数据结构,都有数据的存储结构和数据的逻辑结构

  1. 数据的存储结构:数据在内存中怎么存储的
  2.  数据的逻辑结构:数据和数据之间的逻辑是什么关系

2:数据的存储结构

  1. 顺序存储结构:是把数据放在连续的连续的存储单元里 
  2. 链式存储结构 :不连续                                                   

3:数据的逻辑结构

  1. 集合结构 : 数据元素都属于一个集合,并列关系
  2. 线性结构 :数据元素都是一对一的关系
  3. 树形结构  : 数据元素是一对多的关系
  4. 图形结构  :数据元素是多对多的关系

4:集合结构:暂无研究

5:线程结构

  1. 数组:是顺序存储结构
  2. 栈:先进后出。是顺序存储结构,底层是数据实现
  3. 队列:先进先出。是顺序存储结构,底层是数据实现
  4. 单链表:每一个节点都会记录下一个节点的位置。 底层是链表
  5. 循环链表: 每一个节点都会记录下一个节点的位置。第一个节点和最后一个节点相连 。 底层是链表
  6. 双链表:每一个节点都会记录上一个和下一个节点的位置 。 底层是链表

6:线性数据结构,底层要么是数组,要么是链表,他们有什么区别

1:数组:

数组是不可变得,数组一旦初始化大小,就不可以变化。数组的元素在内存中是有序的。

例如:int[] arr1 = new int[5]; 数组初始化是5,那么arr1这个数组大小就不可以被更改。只能给这个数组的那个元素修改内容。不能删除,添加

2:链表:

链表是可变的,链表的元素在内存中是无序的。

为什么说数组查询快,添加慢。说链表添加快,查询慢

这个和cpu的空间局部性有关。(去看下空间局部性和cpu的从缓存和内存中读取效率)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值