hello 大家好,今天是兴趣祖入住博客之后的第一次写博。兴趣祖想通过写博的方式记录自己萌新成长的经验。我遇到的问题也很大可能是萌新们遇到的问题,我会把我自己的理解和问题反馈给大家,希望对萌新有所帮助,欢迎批评与指正,谢谢!
1.线性表的顺序存储结构
(线性表的定义啥的都在书上,我就不做介绍了)
线性表的顺序存储结构:用一组地址连续的存储单元依次存储线性表的数据元素。
所以根据定义可以知道,数组刚好能满足连续的存储单元依次存储这个要求。
接下来来的硬货(顺序存储结构的结构体定义)
#define MaxSize 100 typedef struct { int data[MaxSize]; //定义一个总长度为MaxSize的数组 int Length; //当前存放数据的长度(也就是说顺序表有5个元素, Length=5) }Sqlist;
不知道有多少萌新没有看懂这个,反正我当时没有看到(学完c语言的前提下,当时感觉自己学了个假C)
这个问题在准备跨考的同学身上最明显,(其实我就是准跨考生),所以啊大家别担心,看不懂很正常,慢慢就会了。
#define MaxSize 100 这个代码想必大家都能明白,说白了就是 用MaxSize代替了数字100(所以在这个程序里出现MaxSize就是指100)
那这么写的好处是啥? 不就是下次想定义一个长度为999的数组的时候你不需要在把100一个一个的改成999嘛
typedef struct { int data[MaxSize]; int Length; }Sqlist;
学过C的同学都知道 typedef和结构体struct,所以这个你可以理解为我给结构体取了个别名叫Sqlist(注意这里并不是声明结构体变量)
也就是说 Sqlist等价于 这个 结构体类型,说到这儿你可能还是没有太明白。看下面的例子:
假设有个 结构体
struct Str { int num; char ch; };
那如何声明结构体变量呢?
struct Str s1,s2; //结构体变量声明
用typedef简化:
typedef struct Str { int data[MaxSize]; int Length; }Sqlist; Sqlist s1,s2; //声明变量,所以大家有没有发现 Sqlist 相当于 struct Str (结构体类型),是不是就很省事了
那现在 顺序存储结构的结构体定义的疑问点说完了
接下来看看形象点的(在这里我引用一句小甲鱼的一句话“No pic say a J8!”):
所以当你看到这个的时候你就应该意识到,前面的那些花哨的结构的 其实就是在描述数组 ,你可以理解为顺序表就是数组。
我们只是用结构体把数组和他的当前长度整合到了一起而已;
第一次写博感觉还不错,嘿嘿。明天继续,顺序表的插入,删除,查找操作;