define宏定义 Maxsize为顺序表最大长度为10,定义了一个Sqlist类型,里面有一个类型为int 名字为data的整型数组,最大长度为Maxsize,也就是10;还定义了一个常量length,用于记录顺序表的长度。
InitList函数用来初始化顺序表,作用是通过for循环将顺序表从下标0到下标Maxsize-1这么多个顺序表的值都设置为0,然后将顺序表的长度设置为0。
在main函数中,Sqlist L用来声明一个顺序表,顺序表的名字就是L,接着调用InitList函数,调用之后,L这个顺序表就有10个元素,每个元素的值就都为0了;这样顺序表的静态分配就初步实现了,我们可以对这个顺序表L进行各种操作,这里我们使用for循环遍历一下顺序表L。结果如截图所示:
OK 顺序表的静态分配大致如此实现....
PS.关于typedef关键字 个人理解大致如下:
typedef意为类型定义,有两层含义,一是类型的重新定义,二是类型重命名
举个例子 这里我定义一个无符号型unsigned int num=99;编译器输出99
接下来我用typedef关键字将unsigned int重命名为uint 这里注意uint其实还是和unsigned int是同一种类型,只不过是类型换了个名字,叫uint而已,输出的结果还是一样的,相当于是起了个小名。运行结果如下:
看这张图 意思就是通过typedef关键字将struct类型重定义为一个新的类型,这个新的类型名叫做SqList,我们把它叫做顺序表类型,这就是上面说的typedef的第二层含义----类型重定义。
综上 typedef两个作用
1、类型重命名
2、类型重定义
感谢阅读!!!
2024.4.23
顺序表的静态分配就是用数组接受一个顺序表,然后将顺序表的元素都设置为0,将长度也设置为0,有的人可能会这么想,既然都有元素,为何不将长度定义为别的,只能说定义是这么定义的,这是一个待操作的顺序表。
这里我们实例化一下
#include <stdio.h>
#define MaxSize 10 //定义最大长度
typedef struct{
int data[MaxSize];//使用静态的"数组"存放数据元素
int length;//顺序表的长度
}SqList;//顺序表的类型定义
void InitList(SqList &L){
for(int i=0;i<MaxSize;i++)
L.data[i]=1314;//使用for循环将所有元素从下标0到MaxSize-1都设置为0
L.length=MaxSize;//顺序表初始长度置为0
}
int main(){
SqList L;//声明一个顺序表
InitList(L);//初始化顺序表
//以下是对已初始化的顺序表的相关操作
//比如使用for循环遍历顺序表
for(int j=0;j<MaxSize;j++) {
printf("%d ",L.data[j]);
}
printf("\n");
printf("顺序表的长度是:%d",MaxSize);
return 0;
}
我们把值设置为1314,将长度改为MaxSize,这样for循环遍历的时候,输出的将会是MaxSize个1314,顺序表的长度也会是MaxSize的值,MaxSize的值取决于define如何宏定义......