顺序表的实现(静态分配)

        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如何宏定义......

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值