[讨论] 想重新学好资料结构

楼主: Chen334 (古先生)   2018-01-10 23:12:39
如题……刚转入资工系,第一次遇到几百行的程式码,都还是用以前天真的写法。
想当然这学期已经差不多要被当了,但是我想认真学好这门科目,学校是用horowitz的c资料结构这本书。
我的问题不是上课无法理解内容,考试还算过得去,自己唸书也大致可以吸收,但是老师出的作业我从来没有自己完成过,都要询问同学,甚至看过同学的code,到最后甚至都不是我的逻辑了……想当然实作的分数相当低。
想请问各位有没有推荐的资料结构书,内容大概到hash就符合我的要求了,前几天有去找老师问过,我们老师推荐用图解资料结构使用c
想请问版上各位大神还有没有其他推荐的书,比较想要每章背后都有基本到进阶的实作题目可以练习的课本……真的不想放弃这个科目啊
弱弱在问一下,如果资料结构都学不好是不是以后要考虑转行了……
作者: sunneo (艾斯寇德)   2018-01-10 23:21:00
倒是不用转行,每个人的技能树点的方式都不一样
作者: steve1012 (steve)   2018-01-11 00:12:00
可以找些题目来刷 就知道怎么用了
作者: Hazukashiine (私は幸せです)   2018-01-11 00:26:00
单纯听你的叙述 我觉得你应该懂一些资料结构的概念但是对于C语言不够熟悉 让你觉得你好像不懂资料结构
作者: james732 (好人超)   2018-01-11 00:35:00
先把书上的范例程式亲手打到电脑跑过
作者: freeunixer (御剑客)   2018-01-11 00:57:00
作者: chuegou (chuegou)   2018-01-11 01:32:00
作业没办法自己完成这问题比较严重表示要google什么关键字都没头绪?
作者: s0914714 (YA)   2018-01-11 02:05:00
应该先把C学好吧 资料结构了解使用时机比较重要
作者: springman (司布林)   2018-01-11 04:39:00
多练习将资料结构的程式写出来,拿来在其他程式中使用.写程式可能要一、两年才会比较习惯电脑的想法。
作者: testPtt (测试)   2018-01-11 08:02:00
最好不要c
作者: dou0228 (7777)   2018-01-11 08:56:00
用 C 是好事啊,C 学的好,表示你有相当程度的基础
作者: Ommm5566 (56天團)   2018-01-11 09:18:00
楼上不要乱推阿不要用C 建议python
作者: jamfly (jamfly)   2018-01-11 09:34:00
推python 还有mit的开放式课程
作者: Neisseria (Neisseria)   2018-01-11 09:37:00
可以练两轮,第一轮用 Python,比较简单,着重观念第二轮改用 C,这时候就是熟悉一些语法细节我猜学校应该还是要求用 C/C++ 实作,迟早要会的
作者: descent (“雄辩是银,沉默是金”)   2018-01-11 10:20:00
大话资料结构 参考一下, 我是买简体版本
作者: damody (天亮damody)   2018-01-11 10:27:00
c吧 python太简单
作者: MOONRAKER (㊣牛鹤鳗毛人)   2018-01-11 11:04:00
哇咧这到底什么版阿 版名有python喔
作者: Sidney0503 (Sidney0503)   2018-01-11 11:33:00
楼上 所以呢? 这篇文章本身就跟C/C++无关了学概念的时候本来就是用简单可以达到的语言阿不然还不知道自己有没有想错先死在语言语法
作者: TWkobe (中华柯比)   2018-01-11 12:13:00
用哪一种都没差 只是用py简单的多我觉得你可以试试先在纸上run一遍 想通后再写程式观念通了就剩下是语法的熟悉度
作者: asd456fgh778 ( )   2018-01-11 12:47:00
不要 python
作者: loa123 (撕裂地中海)   2018-01-11 12:58:00
你们老师推的那本看过...很难 但学起来的话会很精实
作者: MOONRAKER (㊣牛鹤鳗毛人)   2018-01-11 14:16:00
不错很好 顺便把版上问linklist的通通干掉吧那都是资料结构 都跟C++无关 科科看起来现在有很多人从python起步所以也叫别人用py学习本人完全不觉得需要多搞一种语言治丝益棼你们说顺手 对原po就真的顺手?有没有听过邯郸学步?这个也学那个也学 最后都学不好 大有人在而且py实在是很难用 没错很难用 我可以再说一次
作者: Sidney0503 (Sidney0503)   2018-01-11 14:43:00
自己不会用说难用 看过太多人这样说了一大早就要战语言?战力这么弱就别出来讨打脸了C++的优势在于拥有最多的feature 选择上非常多所以适合极致效能调教 对于不同case使用不同手段优化相反的python的简洁非常适合快速实作算法所以很多library都是c/c++写library包成python界面现在原PO要学得是最上层的抽象算法实作 不是效能你说难用 对原po就真的难用?很多人自己没脑也以为别人没脑 希望你不是这种人之前有问linklist通常是贴程式码寻求一些状况处理两种情况问题本质不一样 连这都分不清楚还乱回答
作者: james732 (好人超)   2018-01-11 15:08:00
话说有人会想用python自己实作个linked list出来吗...?如果原PO问题是在实作的话python应该不是好建议
作者: ilms49898723 (LittleBird)   2018-01-11 15:37:00
写不出来有可能是1.死在语法 2.死在逻辑如果死在逻辑我不认为换语言有帮助
作者: james732 (好人超)   2018-01-11 15:50:00
我觉得死在逻辑的话学一下debugger有帮助XD
作者: Schottky (顺风相送)   2018-01-11 16:11:00
不是啊你在 C/C++ 板推 Python 摆明是来乱的嘛我在其他板不会说 Python 难用,在这个板就一定要大声说我觉得啊,C 是最好的语言了,其他的语言都应该废除(战)
作者: druid0214 (Assassin)   2018-01-11 16:23:00
初学推OO语言 java不错
作者: uranusjr (←這人是超級笨蛋)   2018-01-11 16:27:00
@Schottky 你这样不就挑起 C vs C++ 内战了不过我用经验告诉你 Python 不太适合拿来学资料结构, 因为课本上要你实作的有 87% 都内建你会写到人格分裂如果要学“好”资料结构用 C 从头做一次还是很有帮助
作者: james732 (好人超)   2018-01-11 16:30:00
确实,python的list简单到根本不用担心任何实作问题XD
作者: Schottky (顺风相送)   2018-01-11 16:37:00
@uranusjr 别这样我只是推文字数不够 XDDDD确实课本上的资料结构,语言多半都有内建了还练个○
作者: james732 (好人超)   2018-01-11 16:49:00
练习python的资料结构怎么正确使用也是一种练习啦....不过就看这算不算是原PO需要的了
作者: cphe (魔鬼藏在垃圾筒里)   2018-01-11 18:14:00
你用的教科书其实就够了,我猜应该是你对C不熟~资料结构的实作用pointer其实还蛮直觉得~ 如果你觉得直接看code很复杂,可以上网找你想实作的pseudo code,或是图解现在网络很方便阿~ 书上不懂的总是可以上网找到更适合理解的换一本书不见得可以解决你的全部问题好比说一个merge sort,看完精神之后就自己动手写一次能跑的
作者: SecondRun (雨夜琴声)   2018-01-11 23:45:00
sort我以前好像都去youtube看跳舞影片XD
作者: CoNsTaR ((const *))   2018-01-12 01:00:00
要简单当然用 Haskell 啊只是有些资料结构做出来会觉得很没意义就是了
作者: oToToT (屁孩)   2018-01-12 08:57:00
一些资料结构用python明明就很难写
作者: Darkautism (达卡特森)   2018-01-12 11:53:00
python狂你在偷换概念?原po是要学资料结构不是写演算
作者: CoNsTaR ((const *))   2018-01-12 12:31:00
楼上求不用算法的资料结构。。。上面就说了 资结难的地方在算法难实作 所以有人提供能够让算法简单点的建议 看懂了吗?
作者: steve1012 (steve)   2018-01-12 12:59:00
算法跟资料结构是一体两面
作者: Lipraxde (Lipraxde)   2018-01-12 17:14:00
增加实作能力的是练习,书是补充理论用的。走迷宫的话是别人告诉你要用DFS、stack走,还是你自己想出要怎么走的?
作者: freeunixer (御剑客)   2018-01-12 19:22:00
大家本来都不知道,都是听人家讲的.所以你先去把你的 C 课本找出来,先把指标,结构搞好吧.
作者: SecondRun (雨夜琴声)   2018-01-12 19:33:00
走地图之前 你先看看你的容器是不是做得出来 可以用
作者: cphe (魔鬼藏在垃圾筒里)   2018-01-13 00:05:00
跟你写几行code没有关系,是你对程度熟练度不够,多写吧如果是程式本身不熟,就把书的习题拿出来一题一题做
作者: Lipraxde (Lipraxde)   2018-01-13 01:06:00
资料结构会教怎么把程式写得更快、更好,我修过后回头看以前自己写的程式发现许多可以改善的地方。本来程式就不太会写的话不会修过资料结构就突然变很会写的。
作者: art1 (人,原来不是人)   2018-01-14 10:20:00
既然已经知道关键字,就先去了解DFS是什么,然后再去看别人的程式码是怎么实现用DFS来走地图的不需要在基础不好的时后强求自己想出来怎么写候但看别人的程式码的时候需要搞懂每一行写的内容,知道那些程式码是在做什么?像是搬移资料、储存资料、运算后储存之类
作者: dmjohnny ( )   2018-01-14 22:17:00
多写,看完同学的记起来,自己写一遍,再看书,再写一遍
作者: kobe8112 (小B)   2018-01-15 00:53:00
建议你先厘清到底是程式应用不熟悉,还是根本搞不懂算法怎么套用在题目上,验证方式就是看自己写不写的出能够完成题目的pseudo code
作者: xjpjeass (人人)   2018-01-15 16:11:00
我也是转系..资结的实作写作业我也是很头痛 可能是同时修一二年级的课 之前没有修过程式课程 还没摸透写程式的感觉 我觉得我的问题跟原po满像的orz

Links booklink

Contact Us: admin [ a t ] ucptt.com