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

有关 Java 中的 ADT 树的问题

吕岳
2023-03-14

我马上要考试了,其中一个题目是:< br >抽象数据类型:队列、队列、堆栈、树

我的问题是:什么是树?由于它不是一个界面,就像其他3个一样,您认为“树”是什么意思?是关于“树群”和“树状图”的共同点吗?

如果有人能帮我,我会非常感激的...

共有1个答案

堵景天
2023-03-14

您可能会提到ADT树组,它们可能出现在非常不同的实现中,因此也可能出现在运行时行为中。ADT通常意味着一个更抽象的概念(不是在Java的意义上)。最好的方法是查看队列、Deque、堆栈和(二进制)树的概念。一个很好的起点可能是维基百科,特别是本文末尾的数据结构表,其中解释了数据结构的细节。正如你所看到的,有很多树ADT,这只是冰山一角。

一旦你理解了它们的工作方式,阅读Java应用编程接口。您可能想阅读LinkedList、ArrayList、HashMap和HashSet、TreeMap和TreeSet的文档,它们是Java中最常用的ADT实现。

顺便说一句,最好省略不再使用的Java实现哈希表和向量,因为它们在每个操作上都是<code>同步的</code>的,这很可能不是您想要的(这是批量同步)。

 类似资料:
  • 我遇到了一个家庭作业的麻烦,创建一个调用另一个类的方法的类。给我们下一课: 然后给出以下提示: 实现一个类Portfolio。这个类有两个对象,checking和savings,类型为BankAccount。实现四种方法: 公用无效存款(双倍金额,字符串帐户) 公开无效提取(双倍金额,字符串帐户) 公有作废转账(双倍金额,字符串账户) 公共双getBalance(字符串帐户) 这里的帐户字符串是“

  • 问题内容: 我正在学习Java的死锁,并且有来自Sun官方教程的以下示例代码: 阿方斯(Alphonse)和加斯顿(Gaston)是朋友,也是礼貌的忠实信徒。严格的礼貌规则是当您向朋友鞠躬时,您必须保持鞠躬,直到您的朋友有机会归还弓箭为止。不幸的是,该规则不能解决两个朋友可能同时鞠躬的可能性。 这是Sun的解释: 死锁运行时,两个线程极有可能在尝试调用bowBack时阻塞。两个块都不会结束,因为每

  • 问题内容: 考虑以下代码: 使用new关键字时,Java会 再次创建吗?这将存储在常规堆还是池中?多少人在将s结尾池? 问题答案: 如果使用关键字,将创建一个新对象。请注意,对象始终在堆上-字符串池不是与堆分开的独立内存区域。 字符串池就像一个缓存。如果你这样做: 那么Java编译器是聪明足以让只有一个对象,并且将两者指的是同一个String对象。如果你这样做: 那么池中将有一个对象,该对象代表文

  • 我试图减少我的nextjs项目的捆绑包大小,但我遇到了一些树抖动的问题。让我解释一下。我有一个Flags.js文件,可导出多个标志组件: 然后,我只将两个标志导入到另一个组件中: 但我注意到,当我使用webpack bundle analyzer查看捆绑包时,所有标志都被导入。如果我在package.json中应用了sideEffects to false,js包文件大小会减少400kb,但是在导

  • 有一个要求,如果用户输入一个数字,解析它,并。如果用户输入一个数字和字符串的混合物,那么 因此,我编写了如下代码: 函数如下所示 但是,有一个问题。 当用户进入1923年-- 我想实现的东西有什么内在的(更好的)功能吗?我的代码可以修改以适应需要吗?

  • 我正在尝试使用IBMwatson TTS引擎播放文本。在播放声音时,我收到以下错误: ALSA库整合。c: 1286:(snd_func_refer)找不到定义“卡”。bcm28 35.pcm.subround51.0:CARD=0'ALSA lib conf.c:4259:(_snd_config_evaluate)function snd_func_refer返回了错误 或:没有这样的文件或目