首页 > 代码库 > javascript 数据结构和算法读书笔记 > 第三章 列表
javascript 数据结构和算法读书笔记 > 第三章 列表
1. 结构分析
列表首先要有以下几个属性:
listSize 长度
pos 当前位置
dataStore 数据
我们要通过以下方法对上面三个属性进行操作:
length() 获取长度 | getPos() 获取当前位置 | toString() 打印list内容
add(ele) 顺序添加元素 | insert(newEle, afterEle) 在某元素后插入元素 | remove(ele) 删除某元素
clear() 清空列表 | find(ele) 查询元素位置 | get(index) 根据位置获取元素 | contain(ele) 是否包含某元素
prev() 下标前移一位 | next() 下标后移一位 | front() 定位到头部 | end() 定位到尾部
2. 实现:
function List(){ this.listSize = 0; this.dataStore = []; this.pos = 0; this.length = function(){ return this.listSize; }; this.getPos = function(){ return this.pos; }; this.prev = function(){ this.pos--; }; this.next = function(){ this.pos++; }; this.front = function(){ this.pos = 0; return 0; }; this.end = function(){ this.pos = this.listSize; return this.listSize; }; this.find = function(ele){ for(var i=0; i<this.listSize; i++){ if(this.dataStore[i] === ele){ return i; } } return -1; }; this.add= function(ele){ this.dataStore[this.listSize++] = ele; }; this.insert = function(ele, afterEle){ var index = this.find(afterEle); if(index > -1){ this.dataStore.splice(index, 0, ele); this.listSize++; return true; }else{ return false; } }; this.remove = function(ele){ var index = this.find(ele); if(index > -1){ this.dataStore.splice(index, 1); this.listSize--; return true; } return false; }; this.clear = function(){ delete this.dataStore; this.dataStore = []; this.listSize = this.pos = 0; }; this.contains = function(ele){ if(this.find(ele) > -1){ return true; }else{ return false; } }; this.get = function(index){ return this.dataStore[index]; }; this.toString = function(){ return this.dataStore.toString(); };}
3. 应用:
var users = [‘Jenny‘, ‘Penny‘, ‘Tenny‘, ‘Anny‘, ‘Lily‘];var list = new List();for (var i = 0; i <users.length - 1; i++) { list.add(users[i]);}for(list.front(); list.getPos()<list.length(); list.next()){ console.info(list.getPos() + ":" + list.get(list.curPos()));}
javascript 数据结构和算法读书笔记 > 第三章 列表
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。