JavaScript实现的一个单向链表

一个神奇的函数实现了单向链表的模拟
服务器君一共花费了162.195 ms进行了5次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

单向链表是一个非常常见的数据结构,下面用JavaScript实现一个单向链表,能够加深对单向链表的理解。

程序演示

已经基本实现了。单链表的基本功能!看下面演示。

当前链表数据

操作方法.把数据写入下面的TEXT 使用 按钮 add 添加 del 删除 get 获取

分析

单向链表可以用下图来说明其原理。

下面的函数实现了一个单向链表:

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> 

本文地址:http://www.nowamagic.net/librarys/veda/detail/492,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/492

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

大家都在看

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《JavaScript DOM编程艺术(第2版)》 基思(Jeremy Keith) (作者), 桑布尔斯(Jeffrey Sambells) (作者), 魏忠 (合著者), 杨涛 (译者), 王建桥 (译者), 杨晓云 (译者), 等 (译者)

《JavaScript DOM编程艺术(第2版)》内容简介:JavaScript是Web开发中最重要的一门语言,它强大而优美。无论是桌面开发,还是移动应用。JavaScript都是必须掌握的技术。W3C的DOM标准是开发Web应用的基石。已经得到所有现代浏览器的支持,这使得跨平台Web开发成了一件轻松惬意的事。《JavaScript DOM编程艺术(第2版)》是超级畅销书的升级版,由倡导Web标准的领军人物执笔,揭示了前端开发的真谛,是学习JavaScript和DOM开发的必读之作。

更多计算机宝库...