我研究过min-sheaps和max-sheaps,我有几个问题:
我想知道为什么我们总是使用排序算法(如插入排序或合并排序,...)仅用于列表和数组?为什么我们不将这些算法用于堆栈或队列?
我想知道当我们可以使用Collections.sort方法对堆栈进行排序时,为什么我们需要一个像max heap这样的新数据结构?谢谢
这可能是完整二叉树中的节点只有一个子节点吗?谢谢
这可以是一个完整的二叉树吗?
23
/ \
12 15
/ \
9 11
/ \ \
10 5 13
Run Code Online (Sandbox Code Playgroud) 这是我的班级,我想对我的堆栈进行排序,但它会抛出异常请帮助我谢谢!
public class jj {
public static void main(String[] args){
Stack<Integer> s = new ImplimentingAStackUsingAnArrayOfAGivenSizeN(5);
s.push(1);
s.push(3);
s.push(5);
s.push(2);
s.push(4);
Collections.sort((List<Integer>) (s));
System.out.println(s);
while (!s.isEmpty()) {
System.out.println(s.pop());
}
}
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
Exception in thread "main" java.lang.ClassCastException:
datastructurechapter5.ImplimentingAStackUsingAnArrayOfAGivenSizeN
cannot be cast to java.util.List at datastructurechapter5.jj.main(jj.java:24)
`Collections.sort((List<Integer>) (s));`
Java Result: 1
BUILD SUCCESSFUL (total time: 2 seconds)
Run Code Online (Sandbox Code Playgroud) 这是我在维基百科网站上找到的一个问题(我想很好地学习排序算法)。无论如何,这是一个问题 - 你能向我解释一下如何展示它吗?
练习:假设 I 是数组 A 中的反转次数,则证明算法插入排序 (A) 的运行时间为 O(n + I)。
我有一个问题,在堆数据结构中,左孩子可以比其所在级别的右孩子多吗?我的意思是,考虑这三个数字 9、5、8,我想创建一个最大堆数据结构,因此根将为 9,并且 8 是其左子节点,5 是其右子节点,这是真的吗?请帮助我,谢谢
这是我的作业,我已经考虑了很多,但我无法得到答案,我需要你的指导,请帮助我谢谢
问:
我们在BST中有1到1000的密钥,我们想找到密钥= 363
以下哪些搜索不正确?
Run Code Online (Sandbox Code Playgroud)<925, 202, 911, 240, 912, 245, 363> <924, 220, 911, 244, 898, 258, 362, 363>