<!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>
这是实现单链表创建,删除,创建的三个功能打Demo。
此文为转载。