小编use*_*750的帖子

静态比 Java中的动态绑定

我正在为我的一个类做一个任务,在其中,我必须使用Java语法给出静态动态绑定的示例.

我理解基本概念,即静态绑定在编译时发生,动态绑定在运行时发生,但我无法弄清楚它们实际上是如何工作的.

我在网上找到了一个静态绑定的例子,给出了这个例子:

public static void callEat(Animal animal) {
    System.out.println("Animal is eating");
}

public static void callEat(Dog dog) {
    System.out.println("Dog is eating");
}

public static void main(String args[])
{
    Animal a = new Dog();
    callEat(a);
}
Run Code Online (Sandbox Code Playgroud)

并且这将打印"动物正在吃"因为调用callEat使用静态绑定,但我不确定为什么这被认为是静态绑定.

到目前为止,我所看到的所有来源都没有设法以我能够遵循的方式解释这一点.

java dynamic-binding static-binding

80
推荐指数
3
解决办法
15万
查看次数

通过对二叉树的归纳证明

现在我正在研究算法设计教科书中的一个问题,而且我遇到了一些问题.

问题是:

二叉树是一个有根树,其中每个节点最多有两个子节点.通过归纳显示,在任何二叉树中,具有两个子节点的节点数正好比叶子数少一个.

我有理由相信如何做到这一点:基本情况有一个节点,这意味着树有一个叶子,零节点有两个子节点.但是,我不太确定归纳步骤究竟会带来什么.

algorithm tree

7
推荐指数
1
解决办法
9374
查看次数

删除无向图中的节点,该节点销毁其他两个节点之间的路径

我需要帮助解决我目前正在处理的这个问题,这个问题涉及在无向图中找到一个节点v,当被删除时,将破坏另外两个节点s和t之间的所有路径.

假设n节点无向图G =(V,E)包含两个节点s和t,使得s和t之间的距离严格大于n/2.表明必须存在某个节点v,不等于s或t,这样从G中删除v会破坏所有st路径.(换句话说,通过删除v从G获得的图形不包含从s到t的路径.)

给出一个运行时间为O(m + n)的算法来找到这样一个节点v.
(对于解决方案,你可以使用普通英语或伪代码.)

我对此的理解是,解决方案将涉及创建广度优先搜索,找到节点v并将其删除,但我不确定如何证明删除节点首先存在,以便删除它会破坏所有的路径.

algorithm graph breadth-first-search

4
推荐指数
1
解决办法
4703
查看次数

如何使用Java的Comparable比较树中的Generic对象?

现在我正在尝试做一个涉及创建可以接收任何通用对象的堆的赋值,并且节点可以通过实现Comparable接口相互比较.问题是,我找不到像这样比较通用对象的方法.

这是我到目前为止Node类的内容:

private class Node<E> implements Comparable<E>
{
    private E data;
    private Node left;
    private Node right;

    //constructors
    public Node(E data)
    {
        this.data = data;
        left = null;
        right = null;
    }

    public Node(E data, Node left, Node right)
    {
        this.data = data;
        this.left = left;
        this.right = right;
    }


   //returns current data
    public Object getData()
    {
        return this.data;
    }

    public int compareTo(E other)
    {
        return data.compareTo(other);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译时,它说"找不到符号 - 方法比较(E)." 方法compareTo()在Comparable接口中,所以我无法理解为什么会发生这种情况,我不知道如何修复它.任何人都有任何想法?

java compareto comparable

2
推荐指数
1
解决办法
7367
查看次数

从java中的各个位构造一个字节

我正在编写一个随机数生成器,它生成一个伪随机int,然后返回一个int,表示int值中的最低有效位.

public class RNG {

    //algorithm input: first input is the seed
    private int x;

    //primes for calculating next random number
    private int p;
    private int q;

    //constructor
    public RNG()
    {
        p = getPrime();
        q = getPrime();

        //make sure p and q are not equal
        while(p == q)
        {
            q = getPrime();
        }

        //seed must not be divisible by p or q
        //easiest way is to make the seed another prime number
        //this prime does not need to be congruent …
Run Code Online (Sandbox Code Playgroud)

java random bit

1
推荐指数
1
解决办法
81
查看次数