单链表的尾插,头插,遍历,查找和插入

Posted 等风来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单链表的尾插,头插,遍历,查找和插入相关的知识,希望对你有一定的参考价值。

单链表的基本结构

function Node(val,next){
    this.val = val;
    this.next = next || null;
}
1.链表的创建
a.尾插法,就是正常的尾部顺序插入,从数组创建链表
function tailCreateList(aSrc){
    var head = new Node();
    pHead = head;
    aSrc.forEach((item) => {
        var node = new Node(item);
        pHead.next = node;
        pHead = node;
    })
    return head;
}
b.头插法,将后面的数据插入到头部,头结点后面,形成倒序的列表
function headCreateList(aSrc){
    var head = new Node();
    pHead = head;
    aSrc.forEach((item) => {
        var node = new Node(item);
        node.next = pHead.next;
        pHead.next = node;
    })
    return head;
}
2.链表的遍历
function traverse(head,fVisit){
    if(head == null){
        return;
    }
    var cur = head.next;
    while(cur){
        fVisit && fVisit(cur);
        cur = cur.next;
    }
}
3.链表的查找
function find(head,val){
    if(head == null){
        return;
    }
    var cur = head;
    while(cur && cur.val != val){
        cur = cur.next;
    }
    return cur;
}
4.链表的插入
function insert(head,val,newVal){
    if(head == null){
        return;
    }
    var cur = head;
    while(cur && cur.val != val){
        cur = cur.next;
    }
    if(cur){
        var newNode = new Node(newVal);
        newNode.next = cur.next;
        cur.next = newNode;
    }
}

 

以上是关于单链表的尾插,头插,遍历,查找和插入的主要内容,如果未能解决你的问题,请参考以下文章

线性表的链式存储之单链表的尾插法

单链表基本操作

数据结构链表,看这两篇就足够了(上集,动图版)

单链表~增删查改(附代码)~简单实现

用Python实现单链表的头插,尾插和中插

C实现头插法和尾插法来构建单链表(不带头结点)