对于学习数据结构(用c语言描述)怎样学(有什么方法)吗?萌新用的数据结构那本书是王晓东第三版的

但是刚看到引论这里的时候就感觉看的挺懵逼看不懂,学霸们有没有什么建议或者学习方法呢?多谢了... 但是刚看到引论这里的时候就感觉看的挺懵逼看不懂,学霸们有没有什么建议或者学习方法呢?多谢了 展开
 我来答
百度网友374a8a3
2021-02-09 · 超过11用户采纳过TA的回答
知道答主
回答量:54
采纳率:50%
帮助的人:11万
展开全部
多看代码,多画图。
比如一个链表,你就把它画成链的样子,指针什么直接标标上去。如果是树,那就画一棵树。(网上数据结构的教程都有图的)

然后就是分析每一行代码的作用,可以把教材上的代码一行行打下来,边打边理解,写一些注释。

malloc2d(r, c):为2d(二维)int数组(大小为r*c)分配空间
malloc(r * sizeof(int*)):有r行,每行头元素指针都需要储存,一个指针要占用sizeof(int*)的空间,r个就需要乘以r
前面的(int**)就是说t是一个指针,指向(int*) 这个指针t是二维数组的头元素(然而这个二维数组空间可能是分散的),*t即t[0]的类型是int*,是一个一维数组头元素的指针(这个应该容易理解)t[0][0]就是0行0列,是一个int。你可以这样赋值:t[0][0]=1
ps: malloc返回值是(void*)类型,因此需要加上(int**)进行强制类型转换,你可能会见到(int)1.5,就是类似的(不过指针进行类型转换是不会丢失数据的)

for语句就是对每一行进行分配空间。
t[i] = (int*)malloc(c * sizeof(int)) 这个就是对第i行分配,一个int要占用sizeof(int)的空间,c个就是c*sizeof(int)
更多追问追答
追问
好的,多谢
追答
图中的t是一个指针,指向的是一个int*。
这么理解,t[0]就是*(t+0)就是一个int指针,t[1]就是*(t+1)也是一个int指针
初始化之后,这些t[0...r]的指针都指向数组的头元素(就是一个一维数组的头元素),然后也要把它们初始化一下
(可以采纳一下吗)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式