美文网首页
单链表操作

单链表操作

作者: 刘大平 | 来源:发表于2018-10-11 16:58 被阅读0次

简单的单链表操作


public class ListNote {

T data;

  ListNotenext;

  public ListNote(T value) {

this.data = value;

  }

}

下面是操作类

public class ListNoteAction {

/**

  * 添加一个新的节点

  * @param head 当前头结点

  * @param newHead

  */

  public static void addHead(ListNote head, ListNote newHead) {

ListNote oldHead = head;

    head = newHead;

    head.next = oldHead;

  }

/**

  * 在当前尾节点添加一个新的尾节点

  * @param tail 当前尾节点

  * @param newTail

  */

  public static void tailAdd(ListNote tail, ListNote newTail) {

ListNote oldTail = tail;

    tail = newTail;

    oldTail.next = tail;

    tail.next =null;

  }

/**

  *  在 midNote 后面插入一个新的节点

  * @param midNote

  * @param newNote

  */

  public static void insert(ListNote midNote, ListNote newNote) {

ListNote odlNext = midNote.next;

    midNote.next = newNote;

    newNote.next = odlNext;

  }

/**

  * 遍历当前链表

  * @param head

  */

  public static void listAll(ListNote head) {

if (Objects.isNull(head)) {

return;

    }

ListNote tempHead = head;

    while (tempHead !=null) {

System.out.print(tempHead.data +" ");

      tempHead = tempHead.next;

    }

}

/**

  * 根据index 查询节点

  * @param head

  * @param index

  * @return

  */

  public static ListNoteindex(ListNote head, int index) {

if (Objects.isNull(head)) {

return null;

    }

int j =0;

    while (Objects.nonNull(head) && j < index) {

head = head.next;

      j++;

    }

System.out.println();

    System.out.println(head.data);

    return head;

  }

/**

  * 删除当前这个节点的后续节点

  * @param delAfterThisNode

  */

  public static void del(ListNote delAfterThisNode){

ListNote currentNext = delAfterThisNode.next;

    ListNote currentNextNext = currentNext.next;

    delAfterThisNode.next = currentNextNext;

    currentNext.next =null;

  }

public static void main(String[] args) {

ListNote node1 =new ListNote<>(1);

    ListNote node2 =new ListNote<>(2);

    ListNote node3 =new ListNote<>(3);

    ListNote node4 =new ListNote<>(4);

    node1.next = node2;

    node2.next = node3;

    node3.next = node4;

    node4.next =null;

    System.out.println(node1);

    ListNote node0 =new ListNote<>(0);

    addHead(node1, node0);

    ListNote node5 =new ListNote<>(5);

    tailAdd(node4, node5);

    ListNotenode2_2=new ListNote<>(22);

    insert(node2, node2_2);

    listAll(node0);

    index(node0, 3);

    del(node2);

    listAll(node0);

  }

}

相关文章

  • 线性表的链式存储-单链表

    单链表操作 [x] 单链表的创建(尾插法、头插法) [x] 单链表的查找操作 [x] 单链表的删除操作 [x] 单...

  • 单链表的删除操作

    单链表的删除操作

  • 2018-12-01

    数据结构使用二级指针创建单链表以及单链表的各种操作 //单链表创建 #include #include #incl...

  • 单链表的操作

    单链表代码定义 单链表的操作 初始化单链表 插入结点 注: L为插入的单链表,node为将要插入的结点 前插法 尾...

  • 单链表操作

    简单的单链表操作 下面是操作类

  • 数据结构-单链表学习目录

    1.单链表的基本操作 2.求单链表的长度 3.判断单链表是否为空 4.查找单链表中倒数第K个结点 5.单链表的反转...

  • 链表相关

    总结一下链表相关的操作 单链表节点的定义 实现单向链表的反向 删除单链表的所有节点

  • 数据结构课程 第三周 线性表--链式表

    逻辑次序和物理次序不一定相同 带头结点的单链表 单链表上的操作实现 初始化 判空 单链表销毁 清空单链表(头指针和...

  • Python--单向链表

    单链表python实现 节点实现 单链表操作 头部插入 尾部添加 在index位置插入 删除结点

  • 线性表

    1.线性表 1.1 顺序表(顺序存储) 静态分配 动态分配 1.2 单链表 单链表定义 不带头节点的单链表插入操作...

网友评论

      本文标题:单链表操作

      本文链接:https://www.haomeiwen.com/subject/cuobaftx.html