单向链表是一个非常常见的数据结构,下面用JavaScript实现一个单向链表,能够加深对单向链表的理解。
分析
单向链表可以用下图来说明其原理。
下面的函数实现了一个单向链表:
var createLinkList = function(){
var _this = {}, first = null;
_this.add = function(val) {
first = {data:val, next: first || null};//这句比较重要
}
return _this;
}
用下面的代码,就可以使用这个单向链表。
var linksList = createLinkList(); // 创建一个单链表实例
linksList.add("jelle"); // 向链表添加一个元素
linksList.add("you");// 再次添加元素
完整代码
<script type="text/javascript">
// <![CDATA[
var createLinkList = function(){
var _this = {}, first = null;
_this.length = 0;
_this.add = function(val) {
first = {data:val, next: first || null};
_this.length++;
}
// --- del
_this.del = function(val){
if (first.data == val){
first = first.next;
return ;
}
var ptemp = temp = first;
for( ; temp; ptemp = temp ,temp= temp.next){
if(temp.data == val){
ptemp.next = temp.next;
_this.length--;
return ;
}
}
}
// --- get
_this.get = function(val){
for( var temp = first ; temp; temp= temp.next){
if(temp.data == val){
alert( temp )
}
}
}
// ---------
_this.show = function(fn) {
for(temp=first;temp;temp=temp.next) {
fn(temp.data);
}
}
return _this;
}
var linksList = createLinkList(); // 创建一个单链表实例
linksList.add("NowaMagic"); // 向链表添加一个元素
linksList.add("Gonn");// 再次添加元素
linksList.add(1);
function linkslista(){
var text = '';
linksList.show(function(data){
text +='-'+ data;
});
document.getElementById('linkslist').value = text;
}
linkslista();
// ]]>
</script>
数据结构在Javascript研发方面是很重要的,所以希望正在学Javascript的网友们要加强对数据结构的理解~