Answers for "linked list js"

2

Javascript singly linked list

/**
 * @constructor SLL
 *
 * @param head The head of the list.
 * @param klass The reference to the SLLNode class
 * @param size the size or length of the list.
 * @arguments <klass:SLLNode>
 * @description The SLL Factory
 *
 */
export function SLL(klass = Node) {
    this.head = new Node();
    this.klass = Node;
    this.size = 0;
}

/**
 * @function Add|Method
 *
 * @returns SLLNode
 * @param node The node you will append
 * @arguments <key:string>
 * @description A method that will insert a new node at the beginning of the
 * list.
 */
SLL.prototype.add = function insert(key) {
    const node = new this.klass(key);
    this.head = this.head.add(node);
    this.size++;
    return this;
}

/**
 * @function Find|Method
 *
 * @returns SLLNode
 * @param key The key of the node you wish to find.
 * @arguments <key:string>
 * @description A method that will retireve a node associated with the
 * corrosponding key.
 */
SLL.prototype.find = function find(key) {
    return this.head && this.head.find(key);
}

/**
 * @function Insert|Method
 *
 * @returns SLLNode
 * @param key The key of the node you wish to append a new node.
 * @param key1 The key of the node you wish to insert
 * @arguments <key:string>, <key1:string>
 * @description A method that will insert a new node into the middle of the
 * list
 */
SLL.prototype.insert = function insert(key, key1) {
    const node = new this.klass(key1);
    return this.head && this.head.insert(key, node);
}

/**
 * @function Del|Method
 *
 * @returns SLLNode
 * @param key The key of the node you wish to delete.
 * @arguments <key:string>
 * @description A method that will delete a node associated with the
 * corrosponding key.
 */
SLL.prototype.del = function del(key) {
    return this.head.del(key);
}

/**
 * @returns SLLNode
 * @param key The key of the node you wish to create.
 * @arguments <key:null?string>
 * @description The SLLNode Interface
 *
 * @interface ISLLNode
 */
function ISSLNode(key=null) {
    this.key = key;
    this.next = null;
}

/**
 * @constructor SLLNode
 *
 * @param key The key of the node you wish to create.
 * @arguments <key:null?string>
 * @description The SLLNode Factory
 * 
 * @implements ISLLNode
 */
export function SLLNode(key=null) {
    ISSLNode.call(this, key=null);
}

/**
 * @function Add|Method
 *
 * @returns SLLNode
 * @param node The node you will append
 * @arguments <node:SLLNode>
 * @description A method that will insert a new node at the beginning of the
 * list.
 */
SLLNode.prototype.add = function add(node) {
    if(!this.key && !this.next) {
        this.key = node.key;
        this.next = node.next;
        return node;
    }
    node.next = this;
    return node;
}

/**
 * @function Find|Method
 *
 * @returns SLLNode
 * @param key The key of the node you wish to find.
 * @arguments <key:string>
 * @description A method that will retireve a node associated with the 
 * corrosponding key.
 */
SLLNode.prototype.find = function find(key) {
    if (this.key === key) {
        this.next = null;
        return this;
    }
    if (this.key !== key) {
        if(!this.next) {
            return 0;
        }
        return this.next.find(key);
    }
}

/**
 * @function Insert|Method
 *
 * @returns SLLNode
 * @param key The key of the node you wish to append a new node.
 * @param node The node you will append
 * @arguments <key:string>, <node:SLLNode>
 * @description A method that will insert a new node into the middle of the
 * list
 */
SLLNode.prototype.insert = function insert(key, node) {
    if (this.key === key) {
        let tmp = this.next;
        this.next = node;
        node.next = tmp;
        return node;
    }
    if (this.key !== key) {
        if (!this.next) {
            return 0;
        }
        return this.next.insert(key, node);
    }
}

/**
 * @function Del|Method
 *
 * @returns SLLNode
 * @param key The key of the node you wish to delete.
 * @param pre 
 * @arguments <key:string>, <pre:null?SLLNode>
 * @description A method that will delete a node associated with the
 * corrosponding key.
 */
SLLNode.prototype.del = function del(key, pre=null) {
    if (this.key === key) {
       let tmp = this.next;
       pre.next = tmp;
        return this;
    }
    if (this.key !== key) {
        if (!this.next) {
            return 0;
        }
        return this.next.del(key, this);
    }
}
Posted by: Guest on February-08-2020
0

java linked list iterator

// Java code to illustrate listIterator() 
import java.io.*; 
import java.util.LinkedList; 
import java.util.ListIterator; 
  
public class LinkedListDemo { 
    public static void main(String args[]) 
    { 
        // Creating an empty LinkedList 
        LinkedList<String> list = new LinkedList<String>(); 
  
        // Use add() method to add elements in the list 
        list.add("Geeks"); 
        list.add("for"); 
        list.add("Geeks"); 
        list.add("10"); 
        list.add("20"); 
  
        // Displaying the linkedlist 
        System.out.println("LinkedList:" + list); 
          
        // Setting the ListIterator at a specified position 
        ListIterator list_Iter = list.listIterator(2); 
  
        // Iterating through the created list from the position 
        System.out.println("The list is as follows:"); 
        while(list_Iter.hasNext()){ 
           System.out.println(list_Iter.next()); 
        } 
    } 
}
Posted by: Guest on January-28-2020
0

linkedlist javascript

class LinkedList {
                value;
                next;
                constructor(value,next=null){
                    this.value = value;
                    this.next = next;
                };
            }
            const root = new LinkedList(10);
            root.next = new LinkedList(20);
            root.next.next = new LinkedList(30);
        
            console.log(root.next.next); 
            // Output LinkedList {value: 30, next: null}
Posted by: Guest on October-24-2021

Code answers related to "Java"

Java Answers by Framework

Browse Popular Code Answers by Language