数据结构跟指针的疑惑

mykcc 发布于 2014年05月14日
无人欣赏。

最近在看《数据结构与算法分析——c语言描述》,看到了排序这一章。。。。就是对前面的表,栈,队列,树都用到了指针。。。那么怎么应用到这些没有指针的语言,像php或js。。。。我在网上搜,说现在是面向对象的数据结构。。。。是否有推荐的书可以看?

共11条回复
mougua 回复于 2014年05月14日
skydiver 回复于 2014年05月14日

没有指针的语言相对于直接是对象的引用吧。用起来一样。

董一凡 回复于 2014年05月14日

这些语言不是没有指针,而是几乎只有指针

mykcc 回复于 2014年05月14日

3楼 @董一凡 php,js?只有指针。?

mykcc 回复于 2014年05月14日

1楼 @mougua 看起来好像不错。。。准备入手。。。。

ffdqlff 回复于 2014年05月14日

指针只是一个指向地址的东西 在没有指针的语言里 你分清楚传值和传址 一样的道理

mykcc 回复于 2014年05月14日

6楼 @ffdqlff 嗯嗯。。。好像问的有点2b了

gpra8764 回复于 2014年05月14日

3楼 @董一凡 总结的有点精辟过头了哈哈。差不多可以说除了基础数据类型外都是指针,但是这些语言不允许直接操作指针的地址就是

qtdc1229 回复于 2014年05月19日

3楼 @董一凡 说的好,所以还是懂C这种有指针的语言能更好理解计算机

brambles 回复于 2014年05月19日

3楼+1,但是不全都是之指针。

现在的语言不太喜欢把指针称之为“指针”,而喜欢称之为“引用”。当年java就把自己的“没有指针”作为重点宣传,因为程序员害怕指针。而事实上java自己也有指针,只是换了个名字,叫做引用。

当你 new 一个对象实例的时候,会在堆上分配一个空间,同时返回一个对象的引用。比如 Object* object = new Objec() //c艹写法,这个object 的类型实际上是一个对象引用,事实上也是指针。一些具有垃圾回收的语言,当这个对象不再被引用的时候,这个对象的内存会被回收如java,js等。另一些不具有垃圾回收的语言,不如c艹,需要手动delete回收对象。

而且这种引用类型直接用类似 object2 = object1 这样的赋值方式是不会复制一个新对象的,而是直接把这个对象的引用复制给新的引用类型。也就是说object2 = object1以后,object2 和 object1 是指向同一个对象的。

在这些语言里,你直接把引用当成指针用就行了。比如链表啊,树啊啥的需要用指针的数据结构,在c语言实现是用 struct指针 的实现方式。如果用面对对象的实现方式,那就变成了 对象引用。其实你在写的过程中把struct换成了class,malloc换成了new,就差不多了能够实现了。

本人技术渣渣,如果有不对的地方,请轻喷。

mykcc 回复于 2014年05月19日

10楼 @brambles 谢谢啊。。。。

本帖有11个回复,因为您没有注册或者登录本站,所以,只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。

登录 或者 注册
相关帖子

[顶 楼]
|
|
[底 楼]
|
|
[首 页]