数据结构链表如何学习,真的很头大 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
cjw6
V2EX    程序员

数据结构链表如何学习,真的很头大

  •  
  •   cjw6 2018-10-27 15:53:46 +08:00 6113 次点击
    这是一个创建于 2542 天前的主题,其中的信息可能已经有所发展或是发生改变。

    代码看的懂,原理看的懂,要是自己写代码,就是错的 主要是想说一说大家当时是如何度过这个难关的, 还有数据结构在嵌入式是上真的有用吗?

    44 条回复    2018-11-13 08:21:34 +08:00
    gnozix
        1
    gnozix  
       2018-10-27 15:56:50 +08:00
    照着抄几遍了再自己动手写
    AX5N
        2
    AX5N  
       2018-10-27 15:58:07 +08:00
    错的就改到对的为止,写代码不都是这样,这有什么问题吗。一步一步尝试,直到对为止,不然还能怎么样。

    不一定有用,除非你知道你要用来干什么,否则我认为可以不学或者以后再回头学。但如果你是学生,不学你也过不了考试啊。
    minami
        3
    minami  
       2018-10-27 16:04:48 +08:00
    不会写就写注释,写一行注释打一行代码
    minami
        4
    minami  
       2018-10-27 16:06:04 +08:00
    @minami #3 另外数据结构肯定有用的,没库调只能自己写,你做的还是嵌入式
    chashao
        5
    chashao  
       2018-10-27 16:15:09 +08:00 via Android
    试试刷题
    cjw6
        6
    cjw6  
    OP
       2018-10-27 16:16:20 +08:00
    @chashao 只是学习阶段还是,不急着找工作
    cjw6
        7
    cjw6  
    OP
       2018-10-27 16:20:30 +08:00
    @minami 数据结构未来会用在哪里,可以具体说说吗,我现在只是想加强编程的基础能力。以前听别人说,如果不会数据结构,堆栈,做大项目会很吃力的。
    Zchary
        8
    Zchary  
       2018-10-27 16:24:52 +08:00
    原理搞清, 背链表的实现代码, 之后的学习会水到渠成. 毕竟英语不是我们母语,记住了一些例子后容易举一反三
    3C3Ju2wXX3tpBWEL
        9
    3C3Ju2wXX3tpBWEL  
       2018-10-27 16:28:47 +08:00
    抽象的思维还是得需要自己反复的咀嚼吧。
    Linyvhan
        10
    Linyvhan  
       2018-10-27 16:40:30 +08:00
    emmm 刷题.
    AltairT
        11
    AltairT  
       2018-10-27 16:41:25 +08:00
    哇,链表是最基础的好不...不说嵌入式,即使是 web 开发,普通的 crud 用的也少,但是想往上走就要学.
    jzq526
        12
    jzq526  
       2018-10-27 16:53:20 +08:00
    多写几次。我当初看链表时,也感觉能看懂,但一上手就傻眼了,第一次写花了很长时间,主要是用来改各种错误。写完后放置几天再写一次,然后再过几天再写一次。三次的代码都不一样……因为每次重写,理解就加深一点。
    所以我建议你硬着头皮写下去,只要能写对一次,然后再修改一两次,就会理解得比较深入了。
    如果真写不下去了,找本有代码的书,先抄一下
    visonme
        13
    visonme  
       2018-10-27 16:55:31 +08:00
    我能想到的是编码时候太粗心了,没有彻底明白自己写的每一行代码运行的结果,所以才导致这种错误。比如用 C,那么要注意指针操作了,赋值不对或者操作不当,那就是一个连锁反应了。

    多敲几次,多错几次就知道了。


    数据结构肯定是有用的,只是大多数人不会直接的应用或者直接使用的很少,因为此类东西大多数会被封装在底层,而我们大多数工作其实只是一个调用而已~ 自然就感受不到它的存在,算法其实也是同样的。

    对于想在技术上进步的,基本都绕不开~
    yanxijian
        14
    yanxijian  
       2018-10-27 17:02:23 +08:00 via iPhone
    草稿纸上画图
    nicktogo
        15
    nicktogo  
       2018-10-27 17:17:17 +08:00 via iPhone
    知道 c 里的指针的话,应该链表就能理解吧。。。以前只学过 c,还没上数据结构算法,就能直接用链表写代码了。。。
    fugu37
        16
    fugu37  
       2018-10-27 17:24:32 +08:00
    当初是创建一个简单的链表,然后把所有指针的地址都打印出来。。。
    msputup
        17
    msputup  
       2018-10-27 17:25:17 +08:00
    画个图就懂了啊。
    t6attack
        18
    t6attack  
       2018-10-27 17:34:47 +08:00
    基于链表的学生成绩管理系统 or 基于链表的球队信息管理系统,是大学 C 语言课程作业。老师先讲一遍。然后大家分成小组,自己写一遍。然后交作业,接受老师提问,老师给作业打个分,算进期末考试成绩。就这样。
    考完试以后,具体代码怎么写,大家都渐渐忘了。但基本原理能记住。因为原理是小方块画出来的,比较形象。
    链表是计算机世界的基础,所以应用层面的开发中往往接触不到。就像装修店铺接触不到钢筋一样。
    liaokylin
        19
    liaokylin  
       2018-10-27 17:44:38 +08:00 via Android   1
    只有随意写的出来才叫懂原理
    Leigg
        20
    Leigg  
       2018-10-27 17:45:39 +08:00 via iPhone
    抄几遍,写上注释,再背着写
    Yourshell
        21
    Yourshell  
       2018-10-27 17:49:29 +08:00 via iPhone
    那应该是你语言没学好
    msg7086
        23
    msg7086  
       2018-10-27 17:56:11 +08:00
    无他,但手熟尔。
    wingkou
        24
    wingkou  
       2018-10-27 18:35:31 +08:00 via Android
    这不叫懂了,真懂了可以信手拈来...
    misaka19000
        25
    misaka19000  
       2018-10-27 18:58:46 +08:00 via Android
    如果真的花了很大的精力还是不能理解,那么可能真的是不适合干程序员
    cjw6
        26
    cjw6  
    OP
       2018-10-27 22:09:25 +08:00
    @visonme 这个说的和我的状况很像,确实我改注意指针的操作。这确实也是 c 的难点
    cjw6
        27
    cjw6  
    OP
       2018-10-27 22:10:41 +08:00
    @liaokylin 说的有道理,我还是代码不熟
    congeec
        28
    congeec  
       2018-10-27 22:15:38 +08:00
    链表原理简单,写起来就各种小错误,特别是用 C 语言写,多写多熟悉呗
    mrcn
        29
    mrcn  
       2018-10-28 01:04:28 +08:00 via Android
    我用指针写程序各种崩溃……后来我就偷懒用数组模拟链表……
    plqws
        30
    plqws  
       2018-10-28 10:26:55 +08:00 via iPhone
    用自己最熟悉的语言学,其实不是数据结构难,而是语言难。
    xx19941215
        31
    xx19941215  
       2018-10-28 10:47:38 +08:00
    感觉 linked list 不是很难,后面的图啥的比较不容易理解
    em2046
        32
    em2046  
       2018-10-28 11:38:25 +08:00 via iPhone
    画图方便理解
    cjw6
        33
    cjw6  
    OP
       2018-10-28 11:51:40 +08:00
    @mrcn 数组和链表是两种概念,数组是线性的,链表是断续的用指针连接一起的。
    wtdd
        34
    wtdd  
       2018-10-28 12:40:46 +08:00
    趁早改行吧,链表已经是最简单的数据结构之一了,如果这个都头大,后面学 C++得多痛苦……

    以上开玩笑,各种看得懂一写就错,基本上是记忆力问题,而 coding 最需要的就是记忆力,远超其他智商因素

    死记硬背也许是一种解决方案……
    laike9m
        35
    laike9m  
       2018-10-28 12:46:46 +08:00
    大部分人可能都没遇到过这个难关吧。。。
    adminii
        36
    adminii  
       2018-10-28 12:48:45 +08:00
    不然 bug 怎么来的,就是一步一步来的
    Raisu
        37
    Raisu  
       2018-10-28 15:53:27 +08:00 via Android
    自己实现一遍,链表,字典,set,树堆栈这些东西自己实现一遍
    JerryCha
        38
    JerryCha  
       2018-10-28 16:19:16 +08:00   1
    大概明白楼主想说啥,懂的原理,但是亲自实现一堆 bug。把 LeetCode Easy 刷一遍就好了。
    kongkongyzt
        39
    kongkongyzt  
       2018-10-28 23:17:00 +08:00 via Android
    链表已经是很简单的数据结构了,链表觉得有困难的话,后面的树还有各种翻转岂不是会觉得更加难?
    cjw6
        40
    cjw6  
    OP
       2018-10-28 23:20:28 +08:00
    @JerryCha 这个说的我的情况差不多。后来我想了想一下问题原因是是我的代码逻辑分析不太行,还有对自己写的 c 语言每个语句执行功能懂得不够透彻,特别是指针方面。
    lwj871731342
        41
    lwj871731342  
       2018-10-29 09:12:53 +08:00 via Android
    多写就好了
    LxkLxkLxk
        42
    LxkLxkLxk  
       2018-10-29 16:55:27 +08:00
    我也是做嵌入式,等你以后做操作系统相关的时候,数据结构会非常有用。
    学习的话,先画图,然后一点一点的写,别看例子,就自己鼓捣。本质上来说,还是你的逻辑思维能力不够,数据结构恰恰是锻炼你这方面的能力。
    mrcn
        43
    mrcn  
       2018-11-11 09:27:17 +08:00 via Android
    @cjw6 我知道……所以说是模拟的。不过不影响复杂度(貌似是的)

    例如 https://blog.csdn.net/m53931422/article/details/43087279
    cjw6
        44
    cjw6  
    OP
       2018-11-13 08:21:34 +08:00
    @mrcn 我看了,意思是要用数组创建数组值,创建数组位置,类似一列链表,但是感觉自由伸缩性是不如链表的,还有数组元素满了还是要创建多个数组的,多个数组的链接也不是很简单
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3633 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 00:16 PVG 08:16 LAX 17:16 JFK 20:16
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86