package NodeDefine;public class SqList {
final int MAXSIZE=20;
public node[] r;
public int length;
public SqList()
{
r=new node[this.MAXSIZE+1];
length=0;
}
}
class node
{
public int key;

}
///上面是一个包里面定义的数据结构
///下面是再另外一个包里面写的代码,两个包都在一个工程里面。
package QuickSort;
import NodeDefine.*;
public class myQuickSort {
SqList L;
myQuickSort(int A[])
{
L=new SqList();
for(int i=0;i<A.length;i++)
{
L.r[i+1].key=A[i];
}
L.length=A.length;
}
}为什么说我L.r[i+1].key=A[i]; L.node 不可见;怎么搞的,我改怎么写;

解决方案 »

  1.   

    debug一下,就会发现此时的数组Node[]中的元素都为Null
    L.r[i+1].key=A[i];当然就会有空指针异常了
    作如下修改便可:public SqList() {
    r = new Node[this.MAXSIZE + 1];
    for (int i = 0; i < r.length; ++i) {
    r[i] = new Node();
    }
    length = 0;
    }
      

  2.   


    L.r[i+1].key=A[i]; 
    L.r是一个长度为21的数组,里面是空。L.r[i]都是空,当然就没有L.r[i].key了。
    另外楼组用get方法啊,都用点啊,点啊的。