数据结构之线性表1

 

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!”):

所以当你看到这个的时候你就应该意识到,前面的那些花哨的结构的 其实就是在描述数组 ,你可以理解为顺序表就是数组。
我们只是用结构体把数组和他的当前长度整合到了一起而已;

第一次写博感觉还不错,嘿嘿。明天继续,顺序表的插入,删除,查找操作;

 

猜你喜欢

转载自www.cnblogs.com/zulkar/p/10960672.html