列表:

  • 定义:一组有序的数据;
function List() {
this.listSize = 0;
this.pos = 0;
this.dataStore = [];
this.find = find;
.........................
}
  • 方法:

    • append:添加数据

function append(element) { this.dataStore[this.listSize++] = element; }

    • find:查找元素://indexOf
 function find(element) {
for(var i=0; i < this.dataStore.length; ++i) {
if(this.dataStore[i] === element) {
return 1;
}
}
return -1;
}
    • remove:删除元素;
 function  remove(element) {
var foundAt = this.find(element);
if(foundAt > -1) {
this.dataStore.splice(foundAt,1);
--this.listSize;
return true;
}
return false;
}
    • length:返回元素个数;
function length() {
return this.listSize;
}
    • toString:显示元素;
function toString() {
return this.dataStore;
}
    • insert:插入元素;
function insert(elem,after) {
var insertPos = this.find(elem);
if(insertPos > -1) {
this.dataStore.splice(insertPos+1,0,elem); //
++this.listSize;
return true;
}
return false;
}
    • clear:清空所有元素;
function clear() {
delete this.dataStore;
this.dataStore = [];
this.listSize = this.pos = 0;
}
    • contains:判断元素;
function contains(elem) {
for(var i = 0; i < this.dataStore.length; ++i) {
if(this.dataStore[i] === elem) {
return true;
}
}
return false;
}
    • 遍历:
function front() {
this.pos = 0; //pos范围[0-listSize-1]
} function end() {
this.pos = this.listSize - 1;
} function prev() {
if(this.pos > 0) {
--this.pos;
}
} function next() {
if(this.pos < this.listSize) {
++this.pos; //
}
} function currPos() {
return this.pos;
} function moveTo(position) {
this.pos = position;
} function getElement() {
return this.dataStore[this.pos];
}

使用迭代器访问列表:迭代器只是用来在列表上随意移动,而不应该和任何为列表增加或删除的方法一起使用;

demo

js:数据结构笔记2---列表的更多相关文章

  1. js:数据结构笔记4--队列

    队列是一种特殊的列表,数据结构为FIFO: 定义: function Queue() { this.dataStore = []; this.enqueue = enqueue; this.deque ...

  2. js:数据结构笔记3--栈

    栈是一种特殊的列表,数据结构为LIFO: 定义: function Stack() { this.dataStore = []; this.top = 0; this.push = push; thi ...

  3. js:数据结构笔记12--排序算法(2)

    高级排序算法:(处理大数据:百万以上) 希尔排序:是插入排序的优化版: 首先设置间隔数组,然后按照每个间隔,分别进行排序: 如第一个间隔为5,首先a[5]与a[0]进行插入排序;然后a[6]和a[0] ...

  4. js:数据结构笔记10--图和图算法

    图:是由边和定点的集合组成:  按照图的定点对是否有序可以分为:有向图和无向图:  路径:所有顶点都由边连接构成:路径长度为第一个定点到最后一个顶点之间的数量:  环:指向自身的顶点,长度为0:圈:至 ...

  5. js:数据结构笔记7--哈希表

    哈希表(散列表):通过哈希函数将键值映射为一个字典; 哈希函数:依赖键值的数据类型来构建一个哈希函数: 一个基本的哈希表:(按字符串计算键值) function HashTable() { this. ...

  6. js:数据结构笔记5--链表

    数组: 其他语言的数组缺陷:添加/删除数组麻烦: js数组的缺点:被实现为对象,效率低: 如果要实现随机访问,数组还是更好的选择: 链表: 结构图: 基本代码: function Node (elem ...

  7. js:数据结构笔记1---数组

    JS中数组: 只是一种特殊的对象,比其他语言中效率低: 属性是用来表示偏移量的索引:在JS中,数字索引在内部被转化为字符串类型(这也是为什么写对象属性的时候可以不叫引号),因为对象中的属性必须是字符串 ...

  8. js:数据结构笔记14--高级算法

    动态规划: 递归是从顶部开始将问题分解,通过解决所有分解出小问题来解决整体问题: 动态规划从底部开始解决问题,将所有小问题解决,然后合并掉一个整体解决方案: function dynFib(n) { ...

  9. js:数据结构笔记13--检索算法

    顺序查找:也称线性查找,暴力查找的一种 基本格式: var nums = []; for(var i = 0; i < 10; ++i) { nums[i] = Math.floor(Math. ...

随机推荐

  1. 《深入PHP与jQuery开发》读书笔记——Chapter3

    <深入PHP与jQuery开发>第三章学习笔记 1.PHP的魔术方法(在对象中发生某些例行事件时会自动调用这些方法) PHP提供了魔术方法__construct()(构造函数),在新对象被 ...

  2. HTML中的IE条件注释

    IE条件注释是一种特殊的HTML注释,这种注释只有IE5.0及以上版本才能理解.比如普通的HTML注释是: <!--This is a comment--> 而只有IE可读的IE条件注释是 ...

  3. Android 遍历界面控件

    //遍历界面上的控件 fubin.pan LinearLayout sLinerLayout = (LinearLayout)findViewById(R.id.layout_scr); for (i ...

  4. jsp&servlet学习笔记

    1.路径引用问题 一个css.jsp.html.或者javascript文件从从一个工程复制到另一工程,如果引用的时候使用的时相对路径,看似没有错误,但是却一直引用不进来,这时候要使用绝对路径,这样才 ...

  5. Mathematica 中 Minimize函数无法找到全局最小值时的解决方法

    一直使用Minimize来找到指定约束下的函数的最小值,最近发现在一个非线性函数中使用Minimize无法提供一个"全局"最小值(使用Mathematica只是用来验证算法的,所以 ...

  6. 2015安徽省赛 B.求和

    题目描述 对于正整数n,k,我们定义这样一个函数f,它满足如下规律 现在给出n和k,你的任务就是要计算f(n,k)的值. 输入 首先是一个整数T,表示有T组数据 接下来每组数据是n和k(1<=n ...

  7. HDU1879 kruscal 继续畅通工程

    继续畅通工程 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  8. PHPNG (next generation)

    PHPNG (next generation) This page gives short information about development state of a new PHP branc ...

  9. 【Network】一张图看懂 Reactor 与 Proactor 模型的区别

    首先来看看Reactor模式,Reactor模式应用于同步I/O的场景.我们以读操作为例来看看Reactor中的具体步骤:读取操作:1. 应用程序注册读就需事件和相关联的事件处理器2. 事件分离器等待 ...

  10. 【Hadoop】史上最全 Hadoop 生态 全景图