1.基础结构
typedef struct//基础结构
{
Elemtype elem[MAXSIZE];//Elemtype *elem;
int length;
}sqlist;
sqlist L;
L.elem = (int*)malloc(sizeof(int)*100)
//L.data = new int[100];
2.空间分配与释放
2.
C++动态内存分配:int *p1 = new int ;//new用来分配空间
释放:delete *p//释放p指向的指针 p是new的返回值
3.销毁线性表
void destorylist(sqlist &L)//销毁线性表 sqlist &L=int a
{
if(L.elem) delete L.elem;
}
4.清空线性表
void clearlist(sqlist &L)//清空线性表
{
L.length = 0;//长度为0即为空
}
5.线性表长度
int getlenth(sqlist L)//判断长度
{
return (L.length);
}
6.判断线性表是否为空
int getlenth(sqlist L)//判断长度
{
return (L.length);
}
7.取第i个数
int getelem(sqlist L, int i, int &e)//取第i个数
{
if(i<1||i>n) return ERROR;//错误判断
e = L.elemt[i - 1];//下标小一
return 1;
}
8.查找线性表里面e在第几位
int locateelem(sqlist L, int e)//查找线性表里面e在第几位
{
for(int i = 0; i < L.length; i++) if(L.elem[i] == e) return i+1;//有的话返回编号加一
return 0;
}
9.线性表插入
Status ListInsert_Sq(Sqlist &L,int i ,ELemtype e)//线性表插入
{
if(i < 1 || i > L.length + 1) return ERROR;
if(L.length == MAXSIZE) return ERROR;
for(int j = L.length - 1; j > i - 1; j--)
L.elem[j+1] = L.elem[j];
L.elem[i - 1] =e;
L.length++;
return OK;
}
10.线性表删除
Status Listdelete_sq(Sqlist &L, int i)//线性表删除
{
if(i < 1 || i > L.length + 1) return ERROR;
for(int j = i; j <= L.length; j++)
L.elem[j-1] = L.elem[j];
L.length --;
return OK;
}
11.查找数的位置(按值查找)
typedef struct//查找
{
int *data;
int lenth;
int Maxsize;
}seqlist;
int locatelement(seqlist l,int e)
{
for(int i=0;i<l.lenth;i++)
if(l.data[i]==e) return i+1;
return 0;
}//按值查找
12.查找第i位的数是多少(按位查找)
#define INitsize 10
typedef struct{
Elemtype *data;
int length;
int Maxsize;
}seqlist;
Elemtype Getelem(seqlist l;int i)
{
return l.data[i-1];
Elemtype data;
}//按位查找
Elemtype *data