数据结构于JS也能够成为CP(二)列表

Hello小伙伴们~上次分享有小伙伴在后台留言说程序就是一个数据结构,怎么说呢,我以为这是片面的,在生产中,咱们每每会尽可能避免在前端写业务逻辑,由于有些不安全,并且也比较影响性能,确实离不开数据结构,可是呢也不能彻底说这两者相同啦~兔妞是这样理解的,若是理解的有问题还请后台留言,帮助改正哦~闲话很少说,开始今天的列表吧~css

列表前端

不知道你们有没有习惯作什么以前列一个to do list,反正列表是充斥在兔妞生活中的各处,购物列表、待办列表。。。咱们就来详细介绍一下列表这个数据结构吧!安全


1) 列表是什么呢?微信

列表是一组有序的数据。每一个列表中的数据项称为元素。JS中,列表中的元素能够是任何数据类型,列表中能够保存多少元素并无事先设定,实际使用时元素的数量受到程序内存的限制。列表甚至也能够是空的。数据结构


2)定义列表类app

function list(){ this.listSize=0; this.pos=0; this.dataStore=[]; this.clear=clear; this.find=find; this.toString=toString; this.insert=insert; this.append=append; this.remove=remove; this.front=front; this.end=end; this.prev=prev; this.next=next; this.length=length; this.currPos=currPos; this.moveTo=moveTo; this.getElement=getElement; this.contains=contains;}
function append(ele){ this.dataStore[this.listSize++]=ele;}function find(element) { for (var i = 0; i < this.dataStore.length; ++i) { if (this.dataStore[i] == element) { return i; } } return -1; }function remove(element) { var foundAt = this.find(element); if (foundAt > -1) { this.dataStore.splice(foundAt,1); --this.listSize; return true; } return false;}function length() { return this.listSize;}function toString() { return this.dataStore;}function insert(element, after) { var insertPos = this.find(after); if (insertPos > -1) { this.dataStore.splice(insertPos+1, 0, element); ++this.listSize; return true; } return false;}function clear() { delete this.dataStore; this.dataStore = []; this.listSize = this.pos = 0;}function contains(element) { for (var i = 0; i < this.dataStore.length; ++i) { if (this.dataStore[i] == element) { return true; } } return false;}function front() { this.pos = 0;}function end() { this.pos = this.listSize-1;}function prev() { if (this.pos > 0) { --this.pos; }}function next() { if (this.pos < this.listSize-1) { ++this.pos; }}function currPos() { return this.pos;}function moveTo(position) { this.pos = position;}function getElement() { return this.dataStore[this.pos];}

3)列表的特色性能

看过了上面的实现,你们应该发现了,列表中包含元素的个数称为length,能够获取某元素后的元素,能够对元素进行增删操做:能够remove能够insert。并且列表具备描述元素位置的属性,即先后,也能够将元素向前或向后移动。this


好啦,今天的分享就到这里啦,喜欢的小伙伴请关注+好看吧~~spa


本文分享自微信公众号 - 萌兔it(mengtu_it)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。.net

相关文章
相关标签/搜索