zoukankan      html  css  js  c++  java
  • 【分享】JS超精简实现链表!拜请各位JAVA C# 大牛指点

    单向链表

    单向链表 百度百科:http://baike.baidu.com/view/549479.htm?fr=ala0_1

    最近家里来了个高手,他是学JAVA的。正在努力跟他学习!

    如果有对链表的误读,还请高手指点..小弟感激不尽。

    JS实现 链表!直接上代码。

    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");// 再次添加元素

    当然链表不能仅仅只有 一个add方法。于是我添加了 get获取元素  del 删除元素 与 show遍历元素

    // --- 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(){

    for( var temp = first ; temp; temp= temp.next){
    if(temp.data == val){
    return temp
    }
    }


    }

    // ---------
    _this.show = function(fn) {
    for(temp=first;temp;temp=temp.next) {
    fn(temp.data);
    }
    }

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

    当前链表数据

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



    ------全部源码-----------

    全部源码
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>

    </head>

    <body>



    <div>当前链表数据</div>
    <textarea id="linkslist" style="500px;"></textarea>
    <P>操作方法.把数据写入下面的TEXT 使用 按钮 add 添加 del 删除 get 获取</P>
    <input type="text" id="linkslins_test" value="1" />
    <input type=button value="add" style="70px; height:22px;" onClick="linksList.add(document.getElementById('linkslins_test').value);linkslist();">
    <input type=button value="del" style="70px; height:22px;" onClick="linksList.del(document.getElementById('linkslins_test').value);linkslist();">
    <input type=button value="get" style="70px; height:22px;" onClick="linksList.get(document.getElementById('linkslins_test').value);"><br/><br/>
    <script type="text/javascript">
    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("jelle"); // 向链表添加一个元素
    linksList.add("you");// 再次添加元素
    linksList.add(1);

    function linkslist(){
    var text = '';
    linksList.show(
    function(data){
    text
    +='-'+ data;
    });
    document.getElementById(
    'linkslist').value = text;
    }
    linkslist();
    </script>
    </body>
    </html>
  • 相关阅读:
    猪猪的机器学习笔记(八)聚类
    猪猪的机器学习笔记(七)最大熵模型
    猪猪的机器学习笔记(九)推荐系统
    标签button:点击button按钮时,出现了页面自动刷新的情况
    SQL案例
    SQL学习记录:函数(二)
    SQL学习记录:定义(一)
    C# 后台报错输出到日志
    DateTime 时间类型总结(前端)
    笛卡尔积的使用
  • 原文地址:https://www.cnblogs.com/idche/p/1787351.html
Copyright © 2011-2022 走看看