顺序存储结构的线性表代码实现
在这里插入代码片
/**
free()函数、malloc()函数
1.malloc函数返回的是void类型地址,并不会指出地址位置,因此我们可以采用强制转换将地址赋给指针
2.如果不使用free函数,则在函数结束时会释放指针,但分配的内存不会释放。
当再次分配内存时,上次分配的内存就不可用,这样无限循环会导致内存泄漏
3.free的参数位置存放的是指针(也就是指向malloc分配内存的那个指针)
重点:c中的->用在前面是指针,而.用于一般变量,例如结构体
4.对于指针的++和+1的差别还未明确
对于-> . (*P). 的使用还不明确
*/
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define MaxSize 100
#define OK 1
/*struct student{
int name;
int age;
};*/
//定义student类型结点
typedef struct student{
int name;
int age;
}student;
typedef struct Sqlist{
student * data; //存储结点
int length; //链表长度
}Sqlist;
int InitList(Sqlist * L){
//链表初始化
L->data= (student *)malloc(sizeof(student)*MaxSize);
if(L->data == NULL)
exit(-1);
L->length = 0;
return OK;
}
void DestroyList(Sqlist * L){
//删除链表
if(L->data != NULL)
free(L->data);
}