zoukankan      html  css  js  c++  java
  • 【读书笔记】数据结构与算法js描述-链表实现

     
    
     
    6.1 // 数组的缺点:1. 很多编程语言中,数组的长度是固定的 2. 添加、删除元素比较麻烦 3. js中的数组被实现成为对象,与其他语言相比,效率很低
    
    6.2 // 定义链表
    // 链表是由一组节点组成的集合。每个节点都使用一个对象的引用指向它的后继,指向另一个节点的引用叫做链
    
    6.3 // 我们设计的链表包含两个类,node类用于表示节点, LinkedList类提供了插入节点,删除节点,显示列表元素的方法,以及其他一些辅助方法
    
    // Node 类
    
    function Node(ele) {
    this.ele = ele; // 用来保存节点上的数据
    this.next = null; // 保存指向下一个节点的连接,初始化为null
    }
    
    // LinkedList类
    
    function LList() {
    this.head = new Node('head'); // 存储链表的头节点
    // this.find = find; // 查找节点
    // this.insert = insert; // 插入节点
    // this.remove = remove; // 删除节点
    // this.display = display;
    }
    // 插入新节点前要先find()
    LList.prototype.find = function(item) {
    var currNode = this.head;
    while (currNode.ele != item) {
    currNode = currNode.next;
    }
    return currNode;
    }
    
    LList.prototype.insert = function(newElement, item) {
    // 新建插入的节点
    var newNode = new Node(newElement);
    // 寻找要插入的节点位置
    var current = this.find(item);
    // 修改新节点指向
    newNode.next = current.next;
    // 修改老节点指向
    current.next = newNode;
    }
    
    LList.prototype.display = function() {
    var currentNode = this.head;
    while (!(currentNode.next == null)) {
    console.log(currentNode.next.ele);
    currentNode = currentNode.next;
    }
    }
    
    LList.prototype.findPrevious = function (ele) {
    
    }
    
    LList.prototype.remove = function(targetEle) {
    // 根据传入节点 获取链表上的节点值
    var cur = this.find(targetEle);
    // 下一个节点值
    var nextNode = cur.next
    // 需要找到这个元素的上一个元素 上一个元素的this.next 一定是targetEle
    var currNode = this.head;
    while (currNode.next != cur) {
    currNode = currNode.next;
    }
    currNode.next = nextNode;
    }
    
    // var cities = new LList();
    // cities.insert('Conway', 'head');
    // cities.insert('Russellville', 'Conway');
    // cities.insert("Alma", "Russellville");
    // cities.remove('Conway')
    // cities.display()

    吾生有涯 而知也无涯矣
  • 相关阅读:
    通过gridview隐藏的一列的值,来设置该行的背景颜色。
    修改js文件后,浏览器不会立即发现js文件更新,连接状态是200 (from cache)缓存
    getDate()显示格式
    设置gridview自动分页的页码不显示
    数据库字段类型,如果是bool类型,数据库中用bit
    给dropdownlist手动添加一列"请选择"(不是从数据库中读取的数据)
    数据库中使用关键词时注意
    获取服务器控件的id时,遇到使用到模板列取不到的问题
    页面自动刷新代码
    启用IIS的Gzip压缩功能
  • 原文地址:https://www.cnblogs.com/Sherlock09/p/12056274.html
Copyright © 2011-2022 走看看