private BinaryNode splay(int x, BinaryNode t) {
     BinaryNode leftTreeMax, rightTreeMin;
    
     header.left = header.right = nullNode;
     
     leftTreeMax = leftTreeMax = header;
这个是数据结构中伸展树中伸展过程的代码(好吧、其实说这句多余了)这段代码我很懵 leftTreeMax、leftTreeMax、header是同一个变量吗(只占一个空间、内容相同、有三个名字)?
还是三个变量呢(占三个空间、内容相同、各自有各自的名字)我有些懵啊 前辈快来救救我

解决方案 »

  1.   

    BinaryNode 对象指向的是引用
    leftTreeMax=rightTreeMin=header
    leftTreeMax和rightTreeMin都指向header的引用。。所以是相同的一个空间
      

  2.   

    public class NumObject {
    int number;
    }
    public class TTT {
      public static void main(String args[]){
      NumObject b,c;
      NumObject a=new NumObject();
      a.number=8;
      b=c=a;
      System.out.println("before");
      System.out.println("b.number:"+b.number);
      System.out.println("c.number:"+c.number);
      System.out.println(" ");
      a.number=99;
      System.out.println("after");
      System.out.println("b.number:"+b.number);
      System.out.println("c.number:"+c.number);
      
      }
    }
    我也写了个东西测试了下
    输出:
    before
    b.number:8
    c.number:8
     
    after
    b.number:99
    c.number:99原来他们指向同一个内存单元啊=。=看伸展树看了两天居然被这地方卡住了 基础不扎实伤不起啊 谢谢前辈   引用 嗯嗯 记住了