gpt4 book ai didi

java - 在堆栈数据结构上存储新元素时,.next 如何工作? [Java]

转载 作者:行者123 更新时间:2023-12-02 12:05:16 26 4
gpt4 key购买 nike

我正在学习实现堆栈,并且正在努力理解 .next 的真正含义。我在许多数据结构中都见过它,很明显它的用途是什么,直到我真正问自己它是否是一个关键字或者它是如何工作的。它看起来像是一个对象,但它的作用似乎就像一个指向所创建的每个 item 对象的指针(如在 LinkedList 中)。

请以任何方式提供帮助,以阐明我的困惑!

class Item {
intdata;
Item next;

public Item(int data) {
this.data = data;
}
}

public class Stack {

private Item top;

public void push(int data) {
if (null == top) {
top = new Item(data);
} else {
Item item = new Item(data);
item.next = top;
top = item;
}
}
}

最佳答案

想一想,如果您有两个初始原始数据 1 和 2。另一方面,我告诉你将所有自然数映射为 Item,然后将它们放入堆栈中。

考虑一下,您可能会想出两个当前不相关的 Item 对象 -

Item item1 = new Item(1);

Item item2 = new Item(2);

然后当您将它们放入Stack时,您会推送item1,最终会推送item2您可能已经推送了 N 个类似的数据。

现在,为了让您变得更聪明,我要求您在从该 Stack弹出一个元素时记住下一个可能是什么 元素可能,只是为了看看我们是否需要从该堆栈中弹出更多内容。 [假设需要只显示大于 5 的元素]

这就是两个项目之间的关系变得有用的地方。您使一个项目指向下一个项目,同时将它们插入堆栈以保留相同的引用。所以你这样做:-

item2.setNext(item1); // using setter for 'next'

这最终意味着在访问 item2 时,您实际上可以知道它指向的下一个 Item,即 item1

PS:与 item2.setNext(item1) 相同的实现在代码的 push 方法中得到推广它接受数据并在每次调用时创建一个新的 Item 实例。

关于java - 在堆栈数据结构上存储新元素时,.next 如何工作? [Java],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46944552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com