下面的程序是构成一个链表
代码中的方法
public void Add(int t) {
MyItem n = new MyItem(t);
n.Next = myItem;
myItem = n;
}代码中n是一个局部变量,在该方法调用结束后应该会消失.而myItem每次都是保存(单个)n的信息,而myItem原来的
值是不是就被替代了,也就是myItem每次只有一个值,那何以能组成一个链表,希望您能帮我解决一下,在此先谢过了!程序清单:
class Program {
static void Main(string[] args) {
MyList myList = new MyList(); for (int x = 0; x < 5; x++) {
myList.Add(x);
} }
}
public class MyList {
private class MyItem {
public MyItem(int t) {
next = null;
data = t;
} private MyItem next;
public MyItem Next {
get {
return next;
}
set {
next = value;
}
} private int data; public int Data {
get {
return data;
}
set {
data = value;
}
}
} private MyItem myItem; public MyList() {
myItem = null;
}
public void Add(int t) { //该方法不是很明白
MyItem n = new MyItem(t);
n.Next = myItem;
myItem = n;
}
}
}
代码中的方法
public void Add(int t) {
MyItem n = new MyItem(t);
n.Next = myItem;
myItem = n;
}代码中n是一个局部变量,在该方法调用结束后应该会消失.而myItem每次都是保存(单个)n的信息,而myItem原来的
值是不是就被替代了,也就是myItem每次只有一个值,那何以能组成一个链表,希望您能帮我解决一下,在此先谢过了!程序清单:
class Program {
static void Main(string[] args) {
MyList myList = new MyList(); for (int x = 0; x < 5; x++) {
myList.Add(x);
} }
}
public class MyList {
private class MyItem {
public MyItem(int t) {
next = null;
data = t;
} private MyItem next;
public MyItem Next {
get {
return next;
}
set {
next = value;
}
} private int data; public int Data {
get {
return data;
}
set {
data = value;
}
}
} private MyItem myItem; public MyList() {
myItem = null;
}
public void Add(int t) { //该方法不是很明白
MyItem n = new MyItem(t);
n.Next = myItem;
myItem = n;
}
}
}
因为myItem 还没有被释放,所以n也就不会被释放了
MyItem n = new MyItem(t);
n.Next = myItem;
myItem = n;
}
private MyItem myItem;
-------------------------------
对照一下,应该能看明白了吧?