javascript实现单链表

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<title>JavaScript实现单链表</title>  
</head>  
<body>  
<div>当前链表数据</div>  
<textarea id="linkslist" style="width:500px;"></textarea>  
<p>操作方法:把数据写入下面的text,使用按钮add添加,del删除,get获取</p>  
<input type="text" id="linkslist_test" value="1"/>  
<input type="button" value="add" style="width:70px;height:22px;" οnclick="linksList.add(document.getElementById('linkslist_test').value),linkslist()"/>  
<input type="button" value="del" style="width:70px;height:22px;" οnclick="linksList.del(document.getElementById('linkslist_test').value),linkslist()"/>  
<input type="button" value="get" style="width:70px;height:22px;" οnclick="linksList.get(document.getElementById('linkslist_test').value),linkslist()"/>  
</div>  
</body>  
<script type="text/javascript">  
var createLinkList = function(){  
    var _this = {}, first = null;          
    _this.length = 0;  
  
    // --- add  
    _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)  
            }  
        }  
    }  
          
    // --- show  
    _this.show = function(fn) {   
        for(temp=first;temp;temp=temp.next) {   
//alert(first.data);
            fn(temp.data);   
        }   
    }           
        return _this;  
}  
  
var linksList = createLinkList(); // 创建一个单链表实例  
linksList.add("jelle"); // 向链表添加一个元素  
linksList.add("you");// 再次添加元素  
linksList.add(1);  
  
function linkslist(){  
    var text="";  
    linksList.show(function(data){  
        text+="-"+data;  
// alert(text);
    });  
    document.getElementById("linkslist").value=text;  
}  
linkslist();  
</script>  
</html>  
此文为转载

转载于:https://my.oschina.net/wizardpisces/blog/112014

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值