学数据结构当然会比学第二门语言觉得难

简介: 【问题】  贺老师,我有一个问题:在同时学C++和数据结构时,课本是谭浩强编的《C++程序设计》和烟蔚敏编的《数据结构(C语言版)》,为什么我感觉C++挺好学的,觉得这本书写的太好了,都比老师交的提前自学了好几章,而数据结构,我却是比c++先接触的,感觉很难,觉得书编的不好,特别书中函数都是抽象、大概、笼统的,没有一个完整的代码,无法参照学习,感觉都看不下去了,没法自学,而老师讲都又很笼统,

【问题】

  贺老师,我有一个问题:在同时学C++和数据结构时,课本是谭浩强编的《C++程序设计》和烟蔚敏编的《数据结构(C语言版)》,为什么我感觉C++挺好学的,觉得这本书写的太好了,都比老师交的提前自学了好几章,而数据结构,我却是比c++先接触的,感觉很难,觉得书编的不好,特别书中函数都是抽象、大概、笼统的,没有一个完整的代码,无法参照学习,感觉都看不下去了,没法自学,而老师讲都又很笼统,特别落实到代码上很难,难道是学新的语言比较容易(背景是大一时我们一整年学的都是C),而深入、进一步的学习算法就难?现在感觉陷入了一个宁愿学习C++也不愿学数据结构,哪怕强迫自己看数据结构,也完全无法学习里面的东西的窘境。希望贺老师及时解答我的疑惑,同时也可以告诉我在数据结构上应该怎样学,谢谢了!

【回答】

  现在是你该再上升一个层次的时候了。学过了C语言,当然再在语言层面上学习会感觉顺利,尽管C++中增加了不少新的成份。你需要做的是,在抽象的层面上的数据结构和算法上获得新的感受。只在语言的层面上学习,不是专业学习的路子。我在http://blog.csdn.net/sxhelijian/article/details/7959647中谈了一些对抽象层面的体验,也讲了将语言与算法往一起拉的办法。另外,作为第二门语言,建议你在学习C++时,同时看Bjarne Stroustrup的《C++程序设计语言(特别版)》,而不是在谭老师的书上找容易的感觉。

【再问】

  谢谢老师的及时解惑,仔细看了您推荐的文章后,算是有了点小启发,知道了以后学习的大概方向。同时我还想问关于数据结构代码上的小细节问题:其一在线性表的ADT中有这样的语句: “Status InitList_sq(SqList &L)”,在看您的视频是用的VC++ 6.0的编译器使用的是c语言,对这样的语句编译完全没问题,而如果在codeblocks上会出现errors,直接想到的是将形参修改为指针变量运行通过了,但是这样往往会牵连修改很多处,很麻烦,而用类似的C++引用“SqList &L"非常方便,不知您是否有好的办法?
其二:在栈的那章,用的是VC++ 6.0,编译器,注意到在主函数中定义栈的变量(可能表述不规范)”SqStack L",然后调用初始化函数”Init_Stack(L)“完成栈的初始化,系统会报错,但是如果修改为:在主函数中完成栈的初始化,如分配内存空间等,则编译通过,自我感觉是”L没有初值,在参数传递过程中无法执行“,但是如果修改为在在主函数中完成初始化,感觉到就破坏了栈的ADT中各个函数的定义样,将初始化函数置于了一个特殊的位置,显得很不和谐,不知为什么会出现这样的问题。

【回答】

  你看得很细,这样认真的态度确实也能够保证你的学习成就。不过,对这个问题,我有些为难是,我的咨询完全用业余时间,这么细的问题我没有时间去琢磨了。我在我的学生中间致力于营造“有兄弟,不孤单”相互帮助的氛围,我的精力用在方向和一般的方法上。所以,我希望你能够挖掘好周围的同学、老师的力量。写下这个回复,我需要5分钟,而解答你的问题,可能熟悉内容、再调试代码,我真力不从心了。希望你能理解,也相信你能找到途径和人讨论这样的问题。

【真心话】

  今天白天完全是8个小时全和学生在一起的,繁重的教学任务和自愿的学生学习参与,使我的时间很紧。有时不得不作出这样的答复,希望同学们理解,我深感抱歉。也不希望由于我的原因,让找到网络求助途径的同学关上通过互联网或在现实世界寻到帮助的努力。



==================== 迂者 贺利坚 CSDN博客专栏=================

|==  IT学子成长指导专栏  专栏文章分类目录(不定期更新)    ==|

|== C++ 课堂在线专栏   贺利坚课程教学链接(分课程年级)   ==|

======== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =======



目录
相关文章
|
6月前
|
Go 索引
掌握Go语言:Go语言范围,优雅遍历数据结构,简化代码操作实战解析(24)
掌握Go语言:Go语言范围,优雅遍历数据结构,简化代码操作实战解析(24)
|
6月前
|
存储 Go iOS开发
掌握Go语言:探索Go语言指针,解锁高效内存操作与动态数据结构的奥秘(19)
掌握Go语言:探索Go语言指针,解锁高效内存操作与动态数据结构的奥秘(19)
|
SQL
(三)数据结构化查询语言(高级用法)
(三)数据结构化查询语言(高级用法)
98 0
(三)数据结构化查询语言(高级用法)
|
27天前
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
62 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
1月前
|
存储 Go 容器
深入探究Go语言中的数据结构
深入探究Go语言中的数据结构
39 3
|
3月前
|
搜索推荐 算法 Go
深入探索堆:Go语言中的高效数据结构
深入探索堆:Go语言中的高效数据结构
|
6月前
|
存储 缓存 算法
【C 言专栏】C 语言中的数据结构应用
【5月更文挑战第4天】本文探讨了C语言中的核心数据结构,包括数组、链表(单链表和双链表)、栈、队列、二叉树(如二叉搜索树和二叉堆)以及图结构。这些数据结构在程序设计中扮演着关键角色,如数组的快速访问、链表的动态管理、栈和队列的处理流程控制、树和图的复杂关系表示。理解并选择适当的数据结构可优化程序性能,而内存管理和算法优化则进一步提升效率。通过案例分析和展望未来发展趋势,本文旨在帮助读者深化对C语言数据结构的理解和应用。
100 4
【C 言专栏】C 语言中的数据结构应用
|
5月前
|
存储 安全 Java
Go语言入门之路——数据结构
Go语言入门之路——数据结构
123 0
|
12月前
|
Cloud Native Go
GO语言初始化数据结构的方法你知道吗?
GO语言初始化数据结构的方法你知道吗?
|
6月前
|
存储 安全 Go
掌握Go语言:Go语言类型转换,解锁高级用法,轻松驾驭复杂数据结构(30)
掌握Go语言:Go语言类型转换,解锁高级用法,轻松驾驭复杂数据结构(30)
下一篇
无影云桌面