自己收集后学习的代码,希望可以成为博友自己知识的一部分,读懂才 。注释我已经加了,如果再看不懂,我还真没办法
//
定义数组列表
function ArrayList()
... {
//得到头节点,如果长度为0,头节点处始化
//content为头节点
//count为长度
if(arguments.length==0)
...{
this.content = new Array();
this.count=0;
}
else
...{
this.content=arguments[0];
this.count=this.content.length;
}
//判断是否为正确的索引号
this.isValidIndex=function(index)
...{
return /^d+$/.exec(index) && index>=0 && index<this.count
}
//添加节点
this.add=function(data)
...{
this.content[this.count++]=data;
}
//得到节点
this.items=function(index)
...{
if(!this.isValidIndex(index)) return null; //判断是否为正确索引号
return this.content[index];
}
//删除节点
this.remove =function(index)
...{
if(!this.isValidIndex(index)) return false;
if(this.count>1)
...{
for(var i=index;i<this.count;i++)
this.content[i]=this.content[i+1];
}
delete this.content[this.count-1]; //清空数据
this.count--; //长度-1
}
//查找节点
//elem节点值
this.indexOf=function(elem)
...{
for (var i=0;i <this.count;i++)
if (this.content[i]==elem) return i;
return -1;
}
//后序查找节点
//elem节点值
this.lastIndexOf = function(elem)
...{
for (var i = this.count-1; i >= 0; i--) //倒排查找
if (this.content[i]==elem ) return i;
return -1;
}
//查询该节点是否存在
this.contains=function(elem)
...{
return this.indexOf(elem) >= 0;
}
//整个数组转成字符串字符串
this.toString=function()
...{
if(this.count==0)
return "[]";
//:<数组对象>.slice(<始>[, <终>]);返回一个数组,该数组是原数组的子集,始于<始>,终于<终>。如果不给出<终>,则子集一直取到原数组的结尾。
//join() 用法:<数组对象>.join(<分隔符>);返回一个字符串,该字符串把数组中的各个元素串起来,用<分隔符>置于元素与元素之间。这个方法不影响数组原本的内容。
return "['"+this.content.slice(0,this.count).join("','")+"']";//slice 方法一直复制到 end 所指定的元素,但是不包括该元素
}
}
function ArrayList()
... {
//得到头节点,如果长度为0,头节点处始化
//content为头节点
//count为长度
if(arguments.length==0)
...{
this.content = new Array();
this.count=0;
}
else
...{
this.content=arguments[0];
this.count=this.content.length;
}
//判断是否为正确的索引号
this.isValidIndex=function(index)
...{
return /^d+$/.exec(index) && index>=0 && index<this.count
}
//添加节点
this.add=function(data)
...{
this.content[this.count++]=data;
}
//得到节点
this.items=function(index)
...{
if(!this.isValidIndex(index)) return null; //判断是否为正确索引号
return this.content[index];
}
//删除节点
this.remove =function(index)
...{
if(!this.isValidIndex(index)) return false;
if(this.count>1)
...{
for(var i=index;i<this.count;i++)
this.content[i]=this.content[i+1];
}
delete this.content[this.count-1]; //清空数据
this.count--; //长度-1
}
//查找节点
//elem节点值
this.indexOf=function(elem)
...{
for (var i=0;i <this.count;i++)
if (this.content[i]==elem) return i;
return -1;
}
//后序查找节点
//elem节点值
this.lastIndexOf = function(elem)
...{
for (var i = this.count-1; i >= 0; i--) //倒排查找
if (this.content[i]==elem ) return i;
return -1;
}
//查询该节点是否存在
this.contains=function(elem)
...{
return this.indexOf(elem) >= 0;
}
//整个数组转成字符串字符串
this.toString=function()
...{
if(this.count==0)
return "[]";
//:<数组对象>.slice(<始>[, <终>]);返回一个数组,该数组是原数组的子集,始于<始>,终于<终>。如果不给出<终>,则子集一直取到原数组的结尾。
//join() 用法:<数组对象>.join(<分隔符>);返回一个字符串,该字符串把数组中的各个元素串起来,用<分隔符>置于元素与元素之间。这个方法不影响数组原本的内容。
return "['"+this.content.slice(0,this.count).join("','")+"']";//slice 方法一直复制到 end 所指定的元素,但是不包括该元素
}
}