当前位置:C++技术网 > 资讯 > 线性表的学习心得

线性表的学习心得

更新时间:2015-06-24 15:58:03浏览次数:1+次

    自学数据结构也有快3周了,回想走过来的路真是无比崎岖,不知走了多少弯路。数据结构确实难以理解,需要长期的运用才能炉火纯青。所以本渣写这个的目的就是给那些好学的初学者学神一点点建议,同时记录自己的学习历程,毕竟弯路我一个人走就够了。
    前言:不懂指针的请先拿下指针(不要小看了指针以为没什么东西可学,而且线性表就是指针的应用,不能大意)

    1.关于开辟内存malloc()

    本人其实也不是很了解这个,只是拿来就用,但是用的久了自然还是能有点体会的。malloc是获取一个数据类型和数据长度后在内存中开辟一块用以存放数据。数据类型(elemtype *),对于数据结构来说就是链表名,因为一个链表是以结构体的方式创建的一组数据的集合,所以链表名可以说是一种数据类型。数据长度sizeof(elem len),这个sizeof就是获取这数据的长度,比如一个一维数组a[],sizeof(a[0])就是获取了a<0>元素的长度(这里所说的长度是二进制位)。关于malloc, 在《malloc函数内部执行过程分析》这篇文章中讲的非常详细。
    ps:sizeof只是一个操作符,不要误以为它是函数,带括号的不一定是函数。

    2.关于结点

    什么是结点?书上没做详细的定义,但是个人认为,结点就是数据域+指针域。数据域和指针域就是两条线,只有纠缠在一起才能打成“结”。有的童鞋把“结”写成“节”,这是不对的。这样既不方便自己理解,还给别人造成误解,所以请养成专业素养,说不定就因为你写错一个字老马就不要你哦。老马可是很黑的哦,咳咳,跑题了。如果说还不知道数据域、指针域,请看书。

    3.学习方法

    其实也谈不上什么方法,说说自己的学习历程。一般学一门高级语言,随着深度的加深,不理解的越来越多是正常的。所以我的方法就是首先背下来代码,然后按部就班的操作个一二十遍。因为脑子里有东西才可以去理解,熟练才能举一反三,否则一条语句都写不出来何谈理解? 接着我看了动态数组的建立,这个使我更明确malloc的执行机制。这之后就开始在实践中体会,后来发现,画一张结点图看看,真的是很有用,指针指向,操作顺序,一目了然,各部分的实现方法也可以说了然于胸。推荐画图理解,后面的栈和树也可以这样来学,只不过麻烦点,但是怕麻烦还请不要来学编程,它真的会麻烦死你的。
    ps:顺序表这里没有提到,因为顺序表是数组的应用,关于数组暂且不提,本人也是初学者,路还长的很,慢慢来。

    ok就到这里。