线性表
顺序表
顺序表的静态分配
//线性表的元素类型为 ElemType//顺序表的静态分配
#define MaxSize=10
typedef int ElemType;
typedef struct{ElemType data[MaxSize];int length;
}SqList;
顺序表的动态分配
//顺序表的动态分配
#define InitSize 10
typedef struct{ElemType * data;int MaxSizeint length;
}SqList; //初始化
void InitList(SqList &L)
{L.data=(ElemType *)malloc(InitSize*sizeof(ElemType));L.length=0;L.MaxSize=InitSize;}
插入操作 O(n)
//插入操作
#define MaxSize=10
typedef int ElemType;
typedef struct{ElemType data[MaxSize];int length;
}SqList;bool 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;
}
删除操作 O(n)
//删除操作
#define MaxSize=10
typedef int ElemType;
typedef struct{ElemType data[MaxSize];int length;
}SqList;
bool ListDelete(SqList &L,int i,ElemType &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;}
按值查找 O(n)
int LocateElem(SqList L,ElemType e)
{int i;for(i=0;i<L.length;i++){if(L.data[i]==e) return i+1;}return 0;}