【数据结构】开端序幕

写在前面,感同身受

初学数据结构,是不是一脸懵,下面你中招了几条?😭

  • 怎么全是指针!指针都不会啊!

  • 怎么变量名那么长,好难理解啊!

  • 什么p,什么next,p=p->next究竟是什么意思!

  • 结构体的类型和变量的概念太容易弄混,为什么要用typedef!

  • Status,ElemType是一种像int,float类型吗!

  • 为什么能return ERROR ,OK这样的东西!

  • 函数传参,一会儿带*,一会儿不带*,一会儿带&,好疑惑!

  • 有些代码一会用C,一会儿用C++,好难懂!

  • 有些课讲代码是伪码,不能运行,好难受!

这些痛点徘徊在像我们这样的初学者身边,如果你被上面的问题困扰着,那么看这篇文章就是正确的。当然前提是你得学完C语言,

2023,开篇之作,用上CSDN新版编辑器(好用),我决定写一个数据结构专栏来记录我的学习过程,同时来帮助和我一样有相似困难的同学们共同进步。


写在中间,指点迷津

一、为什么数据结构都用指针?

为了方便传递地址所以有了指针,指针也是一个变量,只不过里面存的内容是一个地址。为了方便操作,提升效率,我们逐渐都将要实现的功能用函数封装起来。指针就起到了它的作用

至于涉及到代码的部分,我们就放到具体的章节中去讲解, 本篇文章就先讲一个typedef的用法

二、为什么变量名字那么长?

其实,我们定义变量名字的时候,通常要尽可能明确的传达这个函数的功能,比如

GetElem就是功能+对象,主要用于查找元素,记住一些常见的缩写也是有益的,多读代码,见多识广

常见缩写

ret

return

返回

add

addition

sub

subtraction

mul

multiplication

乘法

div

division

除法

Seq

Sequence

序列

queue

queue

队列

row

row

col

column

pt

point

ptr

pointer

指针

index

index

索引、指示

cur

current

当前的

temp或tmp

temporary

临时

三、为什么要使用typedef?

当然是为了简单了,我们定义一个结构体,你能说出两者的区别吗?(先不要管代码中的 ElemType,MAXSIZE,我们下一篇文章讲解)

//使用typedef
typedef struct SqList
{
    ElemType data[MAXSIZE];
    int length;
}SqList;
SqList L;

//不使用typedef
struct SqList
{
    ElemType data[MAXSIZE];
    int length;
}SqList;

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
//使用typedef
typedef struct SqList
{
    ElemType data[MAXSIZE];
    int length;
}SqList,SqList_1,SqList_2;

//不使用typedef
struct SqList
{
    ElemType data[MAXSIZE];
    int length;
}SqList,SqList_1,SqList_2;

分界线以上

  • 前者,把类型名struct SqList重命名为SqList,这样就能起到简化的作用,这样我们定义变量L的时候就可以写成SqList L;而不用写成struct SqList L;

  • 后者,把就是正常的结构体,类型是struct SqList,并且直接就定义了一个变量SqList,当然有点误导大家的意思,所以谁拿SqList当变量名?

分界线以下

  • 前者,SqList,SqList_1,SqList_2都是类型名,对你没听错,都是类型名,定义变量的时候你就可以这样写SqList_1 L; SqList_2 L;两者表示的意义相同

  • 后者,SqList,SqList_1,SqList_2都是变量名,当然你把SqList,SqList_1,SqList_2,换成短一点的变量名的话就更好了


写在最后

好了本篇文章就到这里结束了,下一篇文章,我们来学习线性表👉👉 👈👈

👍🏻 点赞,你的认可是我创作的动力!
收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

畅游星辰大海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值