V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
cjw6
V2EX  ›  程序员

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

  •  
  •   cjw6 · Oct 27, 2018 · 6466 views
    This topic created in 2739 days ago, the information mentioned may be changed or developed.

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

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

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

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


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

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

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

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

    例如 https://blog.csdn.net/m53931422/article/details/43087279
    cjw6
        44
    cjw6  
    OP
       Nov 13, 2018
    @mrcn 我看了,意思是要用数组创建数组值,创建数组位置,类似一列链表,但是感觉自由伸缩性是不如链表的,还有数组元素满了还是要创建多个数组的,多个数组的链接也不是很简单
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1059 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 99ms · UTC 18:49 · PVG 02:49 · LAX 11:49 · JFK 14:49
    ♥ Do have faith in what you're doing.