javascript中的数据结构与算法(二)--列表

第二章 列表
ps:整个文章所涉及的源代码我都发布在我的Github主页上,大家可以自行下载,如果对您有一丢丢的帮助的话,记得在我的github项目上点上【star】哟,当然不要忘了在本篇文章下方【点赞】哟~,你们的支持将是我最大的动力!

(利他之心是每个优秀开发者的传统美德!——@惜墨的少年)
列表是一组有序的数据。列表中可以保存多少元素没有事先设定,实际使用受到程序内存的限制。不包含任何元素的列表称为空列表。
列表的抽象数据类型定义:
listSize(属性)列表的元素个数
pos(属性)列表的当前位置
length(属性)返回列表中元素的个数

clear(方法)清空列表中所有的元素

toString(方法返回列表的字符串形式)
getElement(方法)返回当前位置的元素

insert(方法)在现有元素后插入新元素

【javascript中的数据结构与算法(二)--列表】append(在列表末尾添加新元素)
remove(方法)从列表中删除元素

front(方法)将列表的当前位置移动到第一个元素

end(方法)将列表的当前位置移动到最后一个元素

prev(方法)将当前位置后移一位

next(方法)将当前位置前移一位

hasNext(方法)判断后一位

hasPrev(方法)判断前一位

currPos(方法)返回列表的当前位置

moveTo(方法)将当前位置移动到指定位置
实现列表类 根据上面定义的列表抽象数据类型,可以直接实现一个List类。下面给出一些定义函数。
javascript中的数据结构与算法(二)--列表
文章图片
List类 javascript中的数据结构与算法(二)--列表
文章图片
append方法添加元素 javascript中的数据结构与算法(二)--列表
文章图片
find方法查找某一元素 javascript中的数据结构与算法(二)--列表
文章图片
remove方法删除某一元素,要用到find方法
javascript中的数据结构与算法(二)--列表
文章图片
length方法 javascript中的数据结构与算法(二)--列表
文章图片
toString方法 javascript中的数据结构与算法(二)--列表
文章图片
insert方法插入元素 javascript中的数据结构与算法(二)--列表
文章图片
clear方法清空列表所有元素
javascript中的数据结构与算法(二)--列表
文章图片
contains方法判断是否包含某元素 javascript中的数据结构与算法(二)--列表
文章图片
用户在列表上自由移动 javascript中的数据结构与算法(二)--列表
文章图片
用户在列表上自由移动 创建一个由姓名组成的列表,使用上面定义的方法:

javascript中的数据结构与算法(二)--列表
文章图片
通过构造函数创建一个姓名列表 javascript中的数据结构与算法(二)--列表
文章图片
查看第一个元素 javascript中的数据结构与算法(二)--列表
文章图片
查看下一个元素 javascript中的数据结构与算法(二)--列表
文章图片
先前移两次,再后移一次 使用迭代器访问列表 使用迭代器,可以不必关心数据的内部存储方式,以实现列表的遍历;
javascript中的数据结构与算法(二)--列表
文章图片
使用迭代器遍历列表 将列表的当前位置设置为第一个元素。只要currPos的值小于列表的长度,就一直循环,每次循环都调用next() 方法将当前位置向前移动一位。当然也可以从后向前遍历:

javascript中的数据结构与算法(二)--列表
文章图片
使用迭代器从后向前遍历 循环从列表的最后一个元素开始,当前位置大于或等于0时,调用prev() 方法后移一位,迭代器只是用来在列表上随意移动,而不应该和任何为列表增加或删除元素的方法一起使用。

    推荐阅读