BBS水木清华站∶精华区
发信人: Compiler (编译器), 信区: Java
标 题: Re: 如何实现链表等数据结构?
发信站: BBS 水木清华站 (Fri Jan 29 22:19:32 1999)
Java中并非没有指针和引用,事实上,Java中的对象全部是由指针("引用")
在"堆"中进行内存分配的(与C++不同,后者可以在"栈"中直接生成对象,
但是这种对象不适于进行多态操作).
C++中既有指针,又有引用,指针和引用在实现上有共同点,他们的最大区别
在于,指针可以进行运算,而引用不行,所以,引用要比指针安全的多.
在很多Java的书籍中,都会出现"引用"一词.或者说Java有指针,只是
其指针不能参加运算.这两种说法在本质上是一致的.
链表等数据结构是必须由指针来完成的,但是在链表的的操作中,涉及的
是内存的分配和对象的联系,几乎不会,也不提倡使用指针加减法等运算.
所以,用Java的引用是完全可以实现的.
我认为,数据结构中指针的加减法运算主要使用鲁棒性来换取速度,
数据结构是完全可以用引用实现的.至于使用Java天然提供的predefined classes,
自然更好.
一点陋见,欢迎指正.
【 在 lenlon (九天) 的大作中提到: 】
∶ 在JAVA中由于没有指针和引用,无法实现许多传统的数据结构,
∶ 如链表、二叉树等,有没有什么变通的办法?
--
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.99.47.87]
BBS水木清华站∶精华区