2

声明数组(java声明数组)

前端每日干货

链表是什么?前端如何创建一个链表?

链表的定义理解上有两个比较关键的点:

1. 它是多个元素组成的列表。

2. 元素存储不连续,用next指针连在一起。

这个结构非常有意思,有人可能发现了,这和数组有些相似之处。

有没有想过,尽然有了数组为什么还要一个链表的数据结构?

下面我来说一下这两者的本质区别。

第一,数组:

在头尾删除和增加一个元素还比较好理解,但是如果是在数组中间增加和删除元素的话,往往就需要移动元素。

比如,增加一个元素,那后面的每一个元素都得向后移一位。

第二,链表:

在增删非首尾元素时,不需要移动元素,只需要更改next的指向即可。这就是它的优势,也就是链表存在的意义。

然而,在JavaScript中并没有链表。

没关系,有Object就行,所以,接下来我用Object来模拟一个链表及其操作。

const a = { val: 'a' };

const b = { val: 'b' };

const c = { val: 'c' };

const d = { val: 'd' };

a.next = b;

b.next = c;

c.next = d;

// 遍历链表

let p = a;

while(p) {

console.log(p.val);

p = p.next;

}

执行后输出:

a

b

c

d

上面这就是一个很好的链表结构的实现,接下来我带大家来实现一下插入和删除元素的操作代码。

// 插入

const e = { val: 'e' };

c.next = e;

e.next = d;

// 删除

c.next = d;

好了,这就链表的基本实现和操作。是不是也很简单,感兴趣的同学可以深入学习一下。

Hello小伙伴们,今天给大家分享的是: 数据结构-队列篇。

队列在日常生活中用途非常广泛,凡是用到“先来后到”的场合都涉及到队列的概念,即FIFO(first in first out)。队列的表示方法一般有两种,基于数组的表示方法(顺序表),基于链表的表示方法。因此可以定义一个抽象的接口类,具体的实现由继承它的子类来完成。

今天讲的是最简单的基于数组的实现方法,即用数组存储队列。并且实现的是环形队列,和普通队列相比,环形队列空间利用高效。

在定义类的时候,基本的方法有: 构造函数(完成数据成员的初始化,以及内存的申请),析构函数(内存释放),判空(队列是否为空),判满(队列是否满了),元素入队,元素出队,清空队列,获取当前队列的元素个数,以及输出运算符的重载。

另外,值得注意的是,输出(输入)运算符的重载只能定义为类的友元函数来完成,而不能定义为类的成员函数来完成。此外,当友元函数的参数有模板类的对象或者引用时,在类内声明友元函数时,需要在前面加上模板说明,如图2的22行所示。

明天将会以3个实例讲解队列的应用场景![呲牙][比心]

本文来自网络,不代表本站立场。转载请注明出处: https://tj.jiuquan.cc/a-2142980/
1
上一篇墨盒加墨(墨盒加墨后指示灯一直闪烁)
下一篇 处理器的作用(动态处理器的作用)

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: alzn66@foxmail.com

关注微信

微信扫一扫关注我们

返回顶部