#数据结构学习笔记-线性表的基本方法
//注意:只要是需要输出的,就要声明为引用
#include <stdio.h>
#include <mm_malloc.h>
#define MaxSize 50
typedef char ElemType;
typedef struct
{
/* data */
ElemType data[MaxSize];
int length;
} Sqlist;
//整体建立顺序表,其实就是将 a[] 复制到 L 中,注意这里的 L是数组的头指针
// 可以直接代表数组
void CreateList(Sqlist *&L,ElemType a[],int n)
{
L = (Sqlist *)malloc(sizeof(Sqlist));
for(int i=0;i<n;i++)
L->data[i] = a[i];
L->length = n;
}
//初始化顺序表,其实就是:1,给L分配连续空间; 2,将L的长度置0
void InitList(Sqlist *&L)
{
L = (Sqlist *)malloc(sizeof(Sqlist));
L->length = 0;
}
//销毁线性表,就是将L的空间释放
void DestoryList(Sqlist *&L)
{
free(L);//free()释放了malloc所申请的内存,指针可能变为野指针
// 最好将指针指向NULL
}
//判断线性表是否为空表,为空则返回值为true,否则为false
bool ListEmpty(Sqlist *L)
{
return(L->length == 0);
}
//求线性表的长度,个人感觉此方法有点多余
int ListLength(Sqlist *L)
{