• JS实现一个基于对象的链表


    JS实现一个基于对象的链表
    /*JS实现一个基于对象的链表*/
    
    function Node(element){
        this.element = element;//节点存储的元素
        this.next = null;//节点指向的下一个节点,这里先设置为空
    }
    
    function LList(){
        this.head = new Node("head");//生成一个头节点
        this.find = find;//在链表中找到某个节点
        this.insert = insert;//在链表中某个元素后面插入某个节点元素
        this.display = display;//在将链表中的节点元素显示出来
        this.findPrevious = findPrevious;//找到某个节点的上一个节点
        this.remove = remove;//删除某个节点
    }
    
    function remove(item) {
        var prevNode = this.findPrevious(item);
        if (!(prevNode.next == null)) {
            prevNode.next = prevNode.next.next;
        }
    }
    
    function findPrevious(item) {
        var currNode = this.head;
        while (!(currNode.next == null) &&
            (currNode.next.element != item)) {
            currNode = currNode.next;
        }
        return currNode;
    }
    
    function display() {
        var currNode = this.head;
        var nodestr = "";
        while (!(currNode.next == null)) {
            nodestr +="  "+currNode.next.element;
            currNode = currNode.next;
        }
        console.log(nodestr);
    }
    
    function find(item) {
        var currNode = this.head;
        while (currNode.element != item) {
            currNode = currNode.next;
        }
        return currNode;
    
    }
    
    function insert(newElement, item) {
        var newNode = new Node(newElement);
        var current = this.find(item);
        newNode.next = current.next;
        current.next = newNode;
    }
    
    
    
    /*测试例子*/
    var num = new LList();
    num.insert("a1","head");
    num.insert("b1","a1");
    num.insert("c1","b1");
    num.display();//  a1  b1  c1
    num.remove("b1");
    num.display();//  a1  c1
  • 相关阅读:
    UI和3D物体的堆叠响应
    UI中的事件系统EventSystem
    UI的管理
    学习笔记--2020年12月30日
    Java集合框架
    Java基本数据类型
    数据存储
    intent和手势探测
    即时消息Toast和对话框
    Android事件处理的三种方法
  • 原文地址:https://www.cnblogs.com/baiyangyuanzi/p/6689483.html
Copyright © 2020-2023  润新知