用JavaScript实现单向链表

来源:互联网 发布:怎样在mac上装office 编辑:程序博客网 时间:2024/06/05 08:07

        单向链表是一个非常常见的数据结构,下面用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的网友们要加强对数据结构的理解~

0 0
原创粉丝点击