从零开始JAVA数据结构学习笔记(一)

线性表定义:

线性表:由零个或多个元素组成的有限序列
如果一个数据元素序列满足:
(1)除第一个和最后一个数据元素外,每个数据元素只有一个前区数据元素和一个后继数据元素;
(2)第一个数据元素没有前驱数据元素;
(3)最后一个数据元素没有后继数据元素。
注意:数组从0开始计算,线性表从1开始计算;

线性表分支:

(1)顺序表:使用顺序结构实现的线性表
ps:计算机有两种基本的存储结构(物理):顺序结构、离散结构
栈内存:顺序结构 堆内存:离散结构顺序表
(2)链表:使用链式存储结构的线性表
每个存储节点不仅包含元素本身的信息(数据域),还包含元素之间的逻辑关系的信息。即一个节点中包含有直接后继节点的地址信息,称为指针域
单链表:只设置一个指针域用以指向其后继节点。单链表
双链表:设置两个指针域用以指向前驱节点与后继节点。
双链表
顺序结构存储封装需要的三个属性:
1.存储空间的起始位置,数组data,它的存储位置就是线性表存储空间的存储位置;
2.线性表的最大存储容量,数组长度MAX_SIZE(初始化后一般不变);
3.线性表当前长度;
4.头结点(一般不存储任何数据),放在第一个节点之前,其数据与一般没有意义(可以存放链表的长度),并且头结点不一定是链表的必要元素;
5.头指针,头指针是指链表指向第一个节点的指针,若链表有头结点,则是指向头结点的指针,其具有标识作用,无论链表是否为空,头指针均不为空,并且头指针是链表的必要元素;
空链表:空链表
注意:单链表尽量不使用for控制循环,而是使用“工作指针”的右移

顺序存储结构与单链表

空间性能
顺序结构:需要一段连续的存储空间。
单链表:任意一块存储空间。
时间性能
查找:顺序结构通过下标查找O(1),单链表通过指针后移O(N)。
插入和删除:顺序结构平均移动一半的表长O(N),单链表指针后移O(1)。
空间性能
顺序结构:预分配空间,有溢出问题。
单链表:无

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值