列表
列表是一种最自然的数据组织方式。上一章已经介绍如何使用 List 类将数据组织成一个列
表。如果数据存储的顺序不重要,也不必对数据进行查找,那么列表就是一种再好不过的
数据结构。
var List = function () {
this.pos = 0;
this.dateStore = [];
this.listSize = 0;
}
List.prototype = {
clear: function () {
delete this.dateStore;
this.dateStore = [];
this.pos = [];
this.listSize = 0;
},
//查找一个元素
find: function (element) {
for (let index = 0; index < this.dateStore.length; index++) {
if (this.dateStore[index] == element) {
return index;
}
}
return -1;
},
//移除指定的元素
remove: function (element) {
var index = this.find(element);
if (index > -1) {
this.dateStore.splice(index, 1);
this.listSize--;
return true;
} else {
return false;
}
},
//转化为字符串
roString: function () {
return this.dateStore;
},
//插入元素
insert: function (element, after) {
var index = this.find(after);
if (index > -1) {
this.dateStore.splice(index + 1, 0, element);
this.listSize++;
return true;
} else {
return false;
}
},
//向列表中添加元素
append: function (element) {
this.dateStore[this.listSize++] = element;
},
//访问第一个元素
front: function () {
this.pos = 0;
},
end: function () {
this.pos = this.listSize - 1;
},
prev: function () {
if (this.pos > 0) {
this.pos--;
}
},
next: function () {
if (this.pos < this.listSize - 1) {
this.pos++;
}
},
lengths: function () {
return this.listSize;
},
currentPos: function () {
return this.pos;
},
moveTo: function (position) {
this.pos = position;
},
//判断给定的值是否在列表中
contents: function (element) {
for (let index = 0; index < this.dateStore.length; index++) {
if (this.dateStore[index] == element) {
return true;
}
}
return false;
},
//
getElement: function () {
return this.dateStore[this.pos];
},
};