1、创建并初始化线性表
①静态分配
#include <stdio.h>
#define MaxSize 100
typedef struct{
ElemType data[MaxSize];
int length;
}SqList;
void InitList(SqList &L)
{ for(int i=0;i<MaxSize;i++)
L.data[i]=0;
L.length = 0;
}
int main()
{
SqList L;
InitList(L);
return 0;
}
②动态分配(这里我用的是C语言写的)
#include <stdio.h>
#include <stdlib.h> //需要额外加载一个头文件
#define InitSize 100
typedef struct{
ElemType *data;
int MaxSize,length;
}SqList;
void InitList(Sqlist &L)
{
L.data=(ElemType*)malloc(sizeof(ElemType)*InitSize);//C语言写法 (释放时使用free())
L.data=new ElemType[InitSize];//C++写法 (释放时使用delete)
L.length = 0;
L.MaxSize = InitSize;
}
2、插入元素
bool ListInsert(SqList &L,int i, ElemType e)
{ if(i<1 || i>L.length+1)
return false;
if(L.length>=Maxsize)
return false;
for(int j=L.length;j>=i;j--)
L.data[j] = L.data[j-1];
l.data[i-1]=e;
L.length++;
return true;
}
3、删除元素
bool ListDelete(SqList &L,int i ,ElemType &e) //使用引用型参数e返回被删除元素的值
{ if(i<1 || i>L.length)
return false;
if(L.length==0)
return false;
e = L.data[i-1];
for(int j=i;j<L.length;j++)
L.data[j-1]=L.data[j];
L.length--;
return true;
}
4、 按值查找
int LocateElem(SqList L,ElemType e)
{ for(int i=0;i<L.length;i++)
if(L.data[i]==e)
return i+1;
return 0;
}
5、按位查找
int GetElem(SqList L,int i)
{ return L.data[i-1];
}
6、求表长
int Length(SqList L)
{ return L.length;
}
7、判空操作
bool Empty(SqList L)
{ if(L.length==0)
return true;
else
return false;
}
8、销毁操作
int DestoryList(SqList &L)
{ delete L;
}