当前位置: 首页 > 知识库问答 >
问题:

链表--一个对象是如何一个接一个地存储这么多地址的?

裴宜春
2023-03-14

我学习数据结构和链表,但有些东西我不懂。一个对象怎么能存储这么多地址和数据。当我了解object时,我看到如果您想为一个变量存储许多数据,您需要创建新的对象,但现在在链表中,newNode对象将存储data1、next1、data2、next2,....大滩,下一个。

当程序运行list.insert(11)并且数据变为11时,为什么不删除原来为5的数据?

对不起,我的英语语法,任何反馈将被告知。谢谢!

public class Node {

    int data;
    Node next;

    public int getData() {

        return data;
    }

    public Node getNext() {

        return next;
    }

    public void setData(int data) {

        this.data = data;
    }

    public void setNext(Node next) {

        this.next = next;
    }

}
public class MyLinkedList {

    Node head;

    public void insert(int data) {

        Node newNode = new Node();
        newNode.setData(data); 
        newNode.setNext(null);

        if (head == null) {

            head = newNode;
        }
        else {

            Node n = head;
            while(n.getNext() != null) {

                n = n.getNext();
            }

            n.setNext(newNode);
        }
    }

    public void show() {

        Node newNode = head;
        while (newNode.getNext() != null) {

            System.out.println(newNode.getData());
            newNode = newNode.getNext();
        }

        System.out.println(newNode.getData());
    }

}

Runnner类:

public class Runner {

    public static void main(String args[]) {

        MyLinkedList list = new MyLinkedList();

        list.insert(5);
        list.insert(11);
        list.insert(9);
        list.insert(3);
        list.show();
    }

}

共有1个答案

裴俊豪
2023-03-14

链表本身几乎对它所包含的数据一无所知。它通常只保存总大小的变量和对第一个节点的引用,即头节点(在双链表中也包括尾节点)。

节点是一个自己的对象,它持有一个数据变量和对下一个节点的引用,下一个节点也是一个自己的对象,以此类推。(在双链表中,节点也有指向上一个节点的指针)

因此,为了访问第五个节点,您需要从头部开始,并跟随下一个指针直到第五个节点。在链表中没有直接访问。但是,它允许通过重新排列节点的下一个指针来轻松插入或删除元素,例如跳过一个节点。

// Memory address of fifth element of an int[] array
base + 4 * sizeof(int)
 类似资料:
  • 问题内容: 我是一个自学者。当前,我正在制作一个需要矩阵型数据库的GUI项目。 我想学习如何创建一个可以在arraylist中存储多个对象的类。 这是我的示例代码。请注意,这只是我的尝试。该代码尚未完成,因此无法正常工作。 谢谢你的热心帮助。 }} 问题答案: 我认为一种更好的方法是创建一个用户信息类来存储特定用户的信息。 然后将其放入ArrayList中。 然后,对于您当前的方法,您可以

  • 问题内容: 概念阶段问题: 我有几个表( 人 , 机构 , 工厂 ),每个表有多种 地址 ( 邮件 , 物理 地址 ) 有没有一种方法可以创建一个包含 所有* 实体的所有 地址 的 单个 地址表? * 我宁愿没有 PersonAddress 和 FactoryAddress 等表集。 还有其他选择吗? 数据量最多只能是几千个地址,因此影响很小。 问题答案: 我的建议基于以下原则:一个实体(个人,机

  • 我正在尝试编写一个简单的应用程序,其中包含一个跟踪每个用户支付的款项的表和一个包含每个用户支付的总金额(所有付款的总和)的第二个表。目前,两个表都有相同的字段(firstName、lastName、金额),我已经将它们从同一个Java类映射到多个表,我无法将该类映射到多个表。对此有什么简单的解决方案吗?

  • 我的目标是让一系列测试一个接一个地运行。我希望有一个“登录”脚本让用户登录,然后在同一窗口/驱动程序中继续执行以下脚本。我使用的是TestNG,所以我的测试套件设置在TestNG.xml文件中(如果有帮助的话)。 我要运行的下一个脚本:

  • 问题内容: 我正在制作通讯录,我需要循环浏览所有联系人。联系人是从文件导入的,并按以下方式读入: 姓名 电话 手机 地址 我该怎么做呢? 我试过了,它可以运行,但是按钮什么也没做。 编辑:现在使用此: } 问题答案: 用你的方法 你做 : 而不是我认为应该根据您的代码 - 编辑 - 或者避免在此处重新导入您的联系人,您的previous()方法应为: -最终编辑,pastebin中的代码源可用