首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据结构之列表的定义

阅读文本大概需要 7 分钟。

列表是一种数据结构,在生活中也有广泛应用,例如待办事项清单、购物清单等都可以做成列表。在开发中,我们就可以把列表抽象成一个数据类型,将它写成一个可以循环使用并能用来解决问题的程序,这就是一个列表抽象类。

类的定义

用 JavaScript 定义一个 List 类,代码如下:

以上,基本把一个列表类的所有方法都列举出来了。下面针对每一个方法做一个具体的实现。

append:给列表添加元素

当调用 append 方法后,就会给列表的下一个位置增加一个新的元素,这个位置就等于变量 listSize 的值:

listSize 表示列表的元素个数,所以添加后就要加 1.

remove:删除元素

它的实现思路是:首先在列表中查找到我们传入的这个需要删除的元素,然后删除它,最后让所有元素移动以填补删除元素的空白。为方便,先定义一个查找元素的 find 方法:

这个方法类似于很多字符串或数组之类的查找方法,找到一个元素,就返回该元素在列表中的位置;否则返回 -1.接下来我们就可以写删除元素的 remove 方法.

还记得 splice 方法的使用吗?如果忘了,可以查看上一篇文章

数据结构之数组

里面有关于数组常用方法的介绍。

length:长度

这个方法无需多说,直接上代码:

toString:把元素陈列出来

这个方法就是输出列表中的元素:

测试

上面列了这么多方法,不妨来测试下,下面是简短的测试代码:

执行结果为:

John,Mike,Amy

John,Mike

insert:插入元素

insert 方法的实现思路是:首先找到一个元素 after ,你想要把元素插入在这个 after 元素之后,于是你得先找到这个 after 在列表里的位置,然后你就可以利用 splice 方法将你想插入的元素进行插入。插入成功返回 true,失败返回 false;

clear:清空元素

该方法相当于扫把,把所有列表里的东西都清理掉:

可以看到,使用了 delete 操作符来删除数组 dataStore,接着在创建一个空数组,最后将属性值归零。

contains:判断给定值是否在列表中

遍历列表

下面的这些方法可以在列表上移动元素

参考资料:Data Structure and Algorithms Using JavaScript, Michael McMillan 著

「Stay hungry,stay foolish.」

"关注、点赞、转发走一波!"

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180715G14FCB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券