前端算法 渡一学习记录 线性数据结构

欢迎关注掘金 https://juejin.cn/user/2551305355400797

数据结构与算法

数据结构与算法有什么关系?

可以容纳数据的结构称为数据结构

算法是用来对数据结构进行处理的方法 ;数据结构是静态的,算法是动态的

线性数据结构之数组

一维数据结构:(线性数据结构)

线性的数据结构强调存储与顺序

数组:底层上数组定长

数组特性:

  1. 存储在物理空间上是连续的
  2. 底层的数组长度是不可变的 (JS引擎做出优化导致学的是可变的)
  3. 数组的变量指向的是数组第一个元素的位置
var a={
   1,2,3,4,5,6,7,8}
a[1], a[2], a[3]   //方括号表示的是存储地址的偏移。
  1. 操作系统小知识:通过偏移查询数据性能最好
    优点:查询性能最好。指定查询某个位置。
    缺点:
    1. 因为空间必须连续,所以如果数组比较大,当系统的空间碎片较多的时候,容易存不下
    2. 因为数组的长度是固定的,所以数组的内容难以添加和删除

深究操作系统课程

var a = [1,2,3,4,5];
var arr = new Array(10);//初始化数组长度

线性数据结构之链表

计算机四门专业课自学

演示demo

var b = {
   
    value : 2,
    next : null
}	
// 实验得知:b要定义在a声明的前面
var a = {
   
    value : 1,
    next : b//不是嵌套关系,而是引用关系
}
console.log(a.next == b);//两个对象比较,比较的是地址

链表的特点:

  1. 空间上不是连续的。
  2. 每存放一个值,都要多开销一个引用空间。

优点:

单链表。我想传递一个链表,我必须传递链表的根节点。
每一个节点都认为自己是根节点(因为每个节点都记录自己和next)

  1. 只要内存足够大,就能存的下,不用担心空间碎片的问题
  2. 链表的添加和删除非常容易

缺点:

  1. 查询速度慢。(查询某个位置)
  2. 链表每一个节点都需要创建一个指向next的引用,浪费一些空间。
  3. 当节点内数据越多的时候(即value越多),这部分多开销(即next)的内存影响较少。

创建链表

function Node(value){
   
    this.value = value;
    this.next = null
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值