大家懂二叉树吗?

2015-06-15 10:35:55 +08:00
 redhatping

首先:** 申明,我不是看到二叉树招聘门** 发这个主题的。

是在解决问题的时候,看到[数据结构]这本书,看到二叉树这个概念,我是菜鸟,这才知道二叉树是数 据结构。 所以我想问问,二叉树是必须学会的知识吗? 他在我们的日常编程中有很大作用吗?

6516 次点击
所在节点    程序员
46 条回复
unionx
2015-06-15 10:42:01 +08:00
是基础知识
lecher
2015-06-15 10:49:40 +08:00
简单的说,数据结构和算法这类的基础知识,看起来在开发的时候是没什么用处的,因为很多框架和库都封装好了,可以直接拿来用.
但是基础扎实的人debug和基础不扎实的人debug能力可以差出很远很远.
单纯是拿到需求再写代码的阶段,这些技术知识没多大用处的感觉,但是真的到了需要自己去构建业务的实现逻辑和代码的结构的时候,这些知识就很有用处了.
同样的业务,两个方案哪个效率高,那个方便管理,为什么?
因为数据结构和算法这类的基础知识,其实都是计算机领域的思维方式,如果不了解这些计算机的思维方式,出了问题就没办法去分析了.
redhatping
2015-06-15 10:52:08 +08:00
@lecher 经典~~~ 必须关注你
binux
2015-06-15 10:52:47 +08:00
比如 DOM 就是一棵树
est
2015-06-15 11:06:09 +08:00
不要说二叉树了,会写链表都可以鄙视ruby圈子一大波人了 https://github.com/rubygems/rubygems/pull/1188
101
2015-06-15 11:14:18 +08:00
数据结构基础知识,哪本数据结构不讲,别闹
21grams
2015-06-15 11:17:27 +08:00
其实没啥用,写了这么多年程序,还真没发现哪里要用到树结构。
yueyoum
2015-06-15 11:30:18 +08:00
最近这事闹的这么大,周末赶紧用C写了 binary search tree 来压压惊!

顺便写了写 四叉数
zonghua
2015-06-15 11:37:27 +08:00
@binux 但是感觉比用C写的好理解得多。用上指针我脑袋就昏了。
Andiry
2015-06-15 11:54:46 +08:00
基本的二叉树没啥用。有用的是平衡二叉树
XadillaX
2015-06-15 11:56:34 +08:00
基础而已,不会的话不是不能写代码,只是基本功不扎实而已。
loading
2015-06-15 12:01:19 +08:00
不知道这究竟是什么
otakustay
2015-06-15 12:05:05 +08:00
二X树我能写,但二B树我真写不来,大学时被这个折磨得要死要死的……
mouhong
2015-06-15 12:25:58 +08:00
开发框架/类库型的产品时,知道一下应该是会有帮助的,至少当你在使用基础库提供的现成实现时,对它们的时空复杂度会有一定的概念,要不然面对链表和平衡树(都是实现好的)时,就不知道怎么选择咯~~

不过现在要是让我写出一个红黑树出来,我是真的不会写,但要是有 Google,查查应该也是可以写得出来。不过不要误解,我不引以为荣,我还是觉得算法很重要,倒不是说要把某些特定的算法背下来(我想这永远背不完,不同领域有不同的算法),我觉得更多的是通过学习来培养算法设计能力,所以我也准备找个时间再好好学习一下的 (太惭愧也有点后悔,大学睡了一年,翘了两年)
yaqink
2015-06-15 12:41:49 +08:00
不懂。
數據結構還是在費腦筋解決一個問題之後,自己才意識到,原來使用不同數據類型,可以減輕大量的工作量。
然而一牽扯到各種算法,自己就懵了。
基本功不扎實的我,需要學。
然而學校算法課講師連基本數據類型都不說w
yxzblue
2015-06-15 13:03:51 +08:00
红黑树算不算
0x61
2015-06-15 13:05:53 +08:00
二叉树是离散数学里面的,楼主可以去看离散数学,里面说的很详细
hahasong
2015-06-15 13:53:52 +08:00
不知道,还是最近看新闻才知道的,找本书了解了一下,业务开发中完全用不到,无所谓了
ibcker
2015-06-15 13:58:56 +08:00
听过,哈哈
aphantee
2015-06-15 14:19:21 +08:00
必须学,因为这是一个最经典、最简单的展现如何以几何速度降低运算复杂度的范例。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/198606

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX