CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  扩充话题 >  程序人生

讨论:做OOP难道就不需要学习数据结构吗?

楼主millfox(胡某)2006-03-03 20:49:14 在 扩充话题 / 程序人生 提问

我是个在校的大学生,专业是计算机科学技术.  
   
  在我们数据结构课上,不知道是这门课真的很枯燥还是老师讲的不够好,到课率不高而且考试基本能过的没几个人,不过我倒是很努力的在学(因为老师说这是程序设计的灵魂),我们有几个同学是这样说的:现在只流行JAVA,C#了,你学那个也没多大用,基本的函数库都高度封装了,指针也取消了,你花在那上面的功夫还不如多学一些OO思想。为以后找工作做准备。面视都是问你继承,接口,多态之类的问题。  
   
  我想问问各位前辈,是否真的如此,我自己认为数据结构应该是一门计算机科学,就算我以后打算做JAVA或C#,难道数据结构对OOP一点帮助都没有吗?  
   
  现在我一些搞C#的同学数据结构很烂,但他们确实做出了一些动态网页,播放器,数据库编程什么的,我是不是真的在学一门过时的课程?  
   
  恳请各位前辈给迷惘的我一个指引,谢谢. 问题点数:30、回复次数:21Top

1 楼liangqingzhi(老之)回复于 2006-03-03 20:58:22 得分 1

数据结构很重要Top

2 楼tabris17(四不象)回复于 2006-03-03 21:03:10 得分 1

你的同学再蒙你  
  他们瞎扯蛋Top

3 楼feelfine(bluerain)回复于 2006-03-03 21:56:56 得分 1

华为面试!就要考数据结构!  
  请问楼主二叉树,图,排序,查找学的怎么样?  
  其实排序很经典的!!快速排序,插入排序,选择排序非常重要!!还有最短路径!最小生成树!!  
  深度优先,广度优先  
  数据结构主要领会算法思想,  
  也有JAVA描述数据结构,不信你到www.china-pub.com去看一看.  
  看不懂清华严版教材,可以参考配西电版的数据结构!!Top

4 楼Jiana(Robin.English)回复于 2006-03-03 22:35:58 得分 1

你的那些同学就是低级程序员的命Top

5 楼BeginnerCpp(禅)回复于 2006-03-03 22:52:50 得分 1

做系统性质开发的时候,  
   
  为了效率和可靠考虑,连STL都用的少,  
   
  这个时候数据结构的知识就是必须的了.Top

6 楼jiajie828(班迪特)回复于 2006-03-04 08:50:23 得分 1

很重要,好好学.   虽然我没学过.Top

7 楼wayne23(人生如梦,一樽还酹江月)回复于 2006-03-04 10:59:32 得分 10

你同学那是瞎说,只会用几个控件只能说是一个普通的技术工人,一个优秀的程序员不论用什么语言,数据结构和算法都是灵魂.Top

8 楼scjpsz1860(友情UP友情接分)(快乐升星!预祝明天更好!:)回复于 2006-03-04 11:13:46 得分 1

DSA的重要性怎么形容都不过分。Top

9 楼tabris17(四不象)回复于 2006-03-04 11:34:25 得分 1

回复人:BeginnerCpp(禅)   (   )   信誉:71 2006-3-3   22:52:50 得分:0  
  ?  
   
  做系统性质开发的时候,  
   
  为了效率和可靠考虑,连STL都用的少,  
   
  这个时候数据结构的知识就是必须的了.  
   
  ========================================  
   
  我估计STL的效率要比你写的代码的效率要高Top

10 楼JackieQ(小强)回复于 2006-03-04 22:17:27 得分 1

KAO  
  数据结构的绝对是NO旺重要,基础才是最重要的,其它的  
  以后可以慢慢来  
  Top

11 楼pankun(剑神一笑 Console下面干革命)回复于 2006-03-04 22:22:43 得分 1

回复人:tabris17(四不象)   (   三级(初级))   信誉:100   2006-03-04   11:34:00   得分:0  
  ?    
  回复人:BeginnerCpp(禅)   (   )   信誉:71   2006-3-3   22:52:50   得分:0  
  ?  
   
  做系统性质开发的时候,  
   
  为了效率和可靠考虑,连STL都用的少,  
   
  这个时候数据结构的知识就是必须的了.  
   
  ========================================  
   
  我估计STL的效率要比你写的代码的效率要高  
   
  ---------------------------------------  
  有些地方不一定,你看过STL源代码没  
   
  另外楼主,你的那几个同学原意做低级程序员,就随他们去吧.  
  你自己应该有你自己的判断能力.Top

12 楼BeginnerCpp(禅)回复于 2006-03-04 23:39:35 得分 4

回复人:tabris17(四不象)   (   三级(初级))   信誉:100   2006-03-04   11:34:00   得分:0  
  ?    
  回复人:BeginnerCpp(禅)   (   )   信誉:71   2006-3-3   22:52:50   得分:0  
  ?  
   
  做系统性质开发的时候,  
   
  为了效率和可靠考虑,连STL都用的少,  
   
  这个时候数据结构的知识就是必须的了.  
   
  ========================================  
   
  我估计STL的效率要比你写的代码的效率要高  
   
  ---------------------------------------  
  有些地方不一定,你看过STL源代码没  
   
  另外楼主,你的那几个同学原意做低级程序员,就随他们去吧.  
  你自己应该有你自己的判断能力.  
   
   
  ============  
   
  1.STL的泛型设计,会引入额外的负担.从代码尺寸到运行时间(不重要的原因)  
  2.STL让代码的运行机制,不那么明显,给维护代码,解bug带来了负担.程序员对于代码的控制能力,被STL屏蔽掉了一部分(比较看重的).  
   
  当然,  
  前面的2点,是一种特例.  
  大多数情况下(对性能影响不大的地方,自己实现算法比较复杂的),STL还是在更加适合的.  
   
  并且随着代码书写时间的演进(比较大的项目,从旧的项目"长"起来的.从注释看,最早有96年的代码)  
  STL用的越来越多了(大概是程序员也成长起来了,对c++的了解深入了),也喜欢用流操作来处理文件或者字符串了.  
   
  这种情况,可能是早期的c++程序员是从C程序员转的,所以对不熟悉的东西(STL)比较慎重吧.  
  Top

13 楼wd_6532(用frontpage写asp,jsp,php,ace)回复于 2006-03-05 07:13:49 得分 1

做系统性质开发的时候,  
   
  为了效率和可靠考虑,连STL都用的少,  
   
  这个时候数据结构的知识就是必须的了.  
   
  ========================================  
   
  我估计STL的效率要比你写的代码的效率要高  
   
   
  ====================================================  
  估计你也是看了别人那么说,你就那么说.  
   
  我以前也是那么认为的.直到我遇到了一个问题.  
   
  list<long>   lst;   200000万次lst.pushback(0),用了7M内存,  
  而   new   long(200000)来用了700K内存.  
   
  7M和700K的区别,也许你觉得无所谓.  
   
  但是70M和700M的区别呢?如果你做成文件映射方式,那速度可就低了很多很多了.  
   
  "STL的效率要比你写的代码的效率要高"   这句话是对高手来说的,  
  这儿的高手就是既懂算法设计又懂STL实现的人.  
  他知道什么地方可以用STL,什么地方绝对不能用STL.  
   
  而不是   "STL的效率要比你写的代码的效率要高"  
   
  Top

14 楼wd_6532(用frontpage写asp,jsp,php,ace)回复于 2006-03-05 07:15:21 得分 0

你可以跟你同学说,现在计算机软件这么发达,  
   
  数学也不用学了,点点鼠标,爱因斯坦就被你推翻了.Top

15 楼BeginnerCpp(禅)回复于 2006-03-05 09:49:15 得分 0

做系统性质开发的时候,  
   
  为了效率和可靠考虑,连STL都用的少,  
   
  这个时候数据结构的知识就是必须的了.  
   
  ========================================  
   
  我估计STL的效率要比你写的代码的效率要高  
   
   
  ====================================================  
  估计你也是看了别人那么说,你就那么说.  
   
  我以前也是那么认为的.直到我遇到了一个问题.  
   
  list<long>   lst;   200000万次lst.pushback(0),用了7M内存,  
  而   new   long(200000)来用了700K内存.  
   
  7M和700K的区别,也许你觉得无所谓.  
   
  但是70M和700M的区别呢?如果你做成文件映射方式,那速度可就低了很多很多了.  
   
  "STL的效率要比你写的代码的效率要高"   这句话是对高手来说的,  
  这儿的高手就是既懂算法设计又懂STL实现的人.  
  他知道什么地方可以用STL,什么地方绝对不能用STL.  
   
  而不是   "STL的效率要比你写的代码的效率要高"  
   
  ==============  
   
  STL胜在写出的程序很清晰。  
   
  自己写的代码,往往数据,算法,业务思路粘合的太强了,让程序变的不优雅了很多。  
   
   
   
  现在我所看到的代码,  
  基本上STL被用于保存“不常用”的数据,  
   
  频繁使用的数据,还是在用自己编写的链表来存储的。  
   
  就这个问题我请教我们部门的老员工,他说是因为STL因为为了支持泛型设计,导致很多操作变的很隐秘(不知道编译器做了什么手脚),所以为了方便控制程序的运行情况,是使用自己编写的链表。  
  Top

16 楼millfox(胡某)回复于 2006-03-06 11:15:29 得分 0

顶Top

17 楼DiabloWalkOnTheEarth(我想到个绝妙的昵称,只是地方太小,写不下)回复于 2006-03-06 11:39:41 得分 1

说   "STL的效率要比你写的代码的效率要高"   绝对是说话没经过大脑   ....  
  Top

18 楼jiaaong(海兵)回复于 2006-03-06 11:55:51 得分 1

学习。。  
  处于什么阶段说什么话,你同学没写过什么程序,所以说数据结构没用。。  
  上面有位老兄说“STL的效率要比你写的代码的效率要高”,估计是还没有到大师级。  
  再后面大师级的任务估计不会讨论stl、数据结构这种东西了,估计是什么方法论、哲学方面的了。  
  汗一个先。。。hohoTop

19 楼galen_wang(小丑)回复于 2006-03-06 12:13:58 得分 1

足球运动员   在练习球技的同时也要练习体能Top

20 楼shangguancheng(潜龙勿用)回复于 2006-03-06 14:26:46 得分 1

你的同学只能做低级程序员,大家都会做的值什么钱,要研究一些深层次的东西。数据结构很重要,工作中会经常遇到,当然数据结构大家都学过,但不是都能够灵活运用其中的思想,类库虽然封装了很多,但是你写程序的时候很多还是需要自己写,因为有特定的需求。Top

21 楼pcboy1982(pcboy)回复于 2006-03-06 14:58:25 得分 1

其实,从lz的口气看,答案就在你自己的心里,看了大家的回复你应该更加确定!  
  学生的时候好好打你的基础,别忘了,除了基础课,还要学好英语  
   
  ....Top

相关问题

  • 数据结构讨论群
  • 数据结构讨论群
  • 学习数据结构对时间复杂性的要求有多高?请讨论一下
  • 学习数据结构,难吗?
  • 如何学习数据结构?
  • 学习数据结构的用处
  • 怎么学习数据结构?
  • 大家讨论C++描述数据结构(清华黄皮书)
  • 数据结构大讨论,这样设计到底行不行
  • 深入浅谈如何学习c++数据结构

关键词

  • c#
  • c++
  • 数据结构
  • stl
  • 代码
  • 信誉
  • 排序
  • 程序员
  • 内存
  • 系统

得分解答快速导航

  • 帖主:millfox
  • liangqingzhi
  • tabris17
  • feelfine
  • Jiana
  • BeginnerCpp
  • jiajie828
  • wayne23
  • scjpsz1860
  • tabris17
  • JackieQ
  • pankun
  • BeginnerCpp
  • wd_6532
  • DiabloWalkOnTheEarth
  • jiaaong
  • galen_wang
  • shangguancheng
  • pcboy1982

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo