单链表的简单实现

Posted halo-漾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单链表的简单实现相关的知识,希望对你有一定的参考价值。

//定义一个节点类 
class Node{
    int data;
    Node nextNode;
    
    public Node(int data) {
        // TODO Auto-generated constructor stub
        this.data = data;
    }
}

链表类:

package test;

/**
 * 
 * @author dao
 *
 */
// 链表类
public class ListNode {
    Node firstNode; // 第一个节点
    int length = 0;
    Node current; // 当前节点
    Node previous; // 指定位置插入的未插入时current的下一节点

    // 增加node
    public void addNode(int data) {
        if (length == 0) { // 链表为空时,增加的为首节点
            Node node = new Node(data);
            node.nextNode = node;
            firstNode = node;
            current = firstNode;
            length++;
        } else {
            Node node = new Node(data); // 不为空的链表增加节点
            current.nextNode = node;
            current = node;
            length++;
        }
    }

    // 任意位置增加node
    public void insertNode(int i, int data) {
        int pos = 1;
        Node node = new Node(data);
        current = firstNode;
        if (i == 1) { // 插入位置为1时,首节点更换
            firstNode = node;
            node.nextNode = current;
            current = firstNode;
        } else if (i > length) { // 判断链表是否有插入位置
            System.out.println("不能在该位置插入");
            return;
        } else {
            while (i - 1 != pos) {
                current = current.nextNode;
                pos++;
            }
        }
        Node nodeNext = current.nextNode; // 未插入时current的下一节点,因为要在两个节点间插入要临时保存这两个节点的。
        current.nextNode = node; // 下个节点的引用更换
        node.nextNode = nodeNext;
        length++;
    }

    // 取出所有node
    public void printAllNode() {
        current = firstNode;
        for (int i = 1; i <= length; i++) { // 从第一个节点开始,依次打印出所有节点
            System.out.println(current.data);
            current = current.nextNode;
        }
    }

}

// 定义一个节点类
class Node {
    int data;
    Node nextNode;

    public Node(int data) {
        // TODO Auto-generated constructor stub
        this.data = data;
    }
}

 

以上是关于单链表的简单实现的主要内容,如果未能解决你的问题,请参考以下文章

数据结构 单链表的简单理解和基本操作

单链表的简单实现

侵入式单链表的简单实现

单链表的简单实现

侵入式单链表的简单实现(cont)

栈的简单实现-单链表实现