线性表的定义和基本操作
线性表
-
定义:“逻辑结构”---线性结构
-
基本操作:“运算”
顺序表的基本操作
#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]=0;
L->length=0;
}
int main(){
SqList L; //声明一个顺序表
InitList(&L); //初始化顺序表
return 0;
}
-
销毁表
void ListDrop(SqeList *L){
L->Null;
free(L);
return 0;
}
-
插入操作
void ListInsert(SqList *L,int i,int 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;
}
-
删除操作
bool ListDelete(SqList *L,int i,int *e){
if(i<1||i>L->length)
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;
}
-
按值查找
int LocateElem(SqList *L,int e){
for(int i=0;i<L->length;i++)
if(L->data[i]==e)
return i+1;
return 0;
}
-
按位查找
ElemType GetElem(SeqList *L,int i){
return L->data[i-1];
}
-
其他常用操作(求表长、输出操作、判空操作)