#include <iostream>
#include <algorithm>//fill()
#define InitSize 5
using namespace std;
/*线性表:线性表示;初始化,输出,插入,删除,查找*/
//静态分配数组
typedef struct{
int data[InitSize];
int length_;
}Sqlist_;
//动态分配数组
typedef struct{
int *data;
int MaxSize,length;
}SqList;
void OutputList(SqList L){
for(int i=0;i<L.MaxSize;i++)
printf("%d ",L.data[i]);
printf("\n");
}
void InitList(SqList &L){
L.MaxSize=InitSize;
L.length=L.MaxSize-1;
//L.data=(int *)malloc(sizeof(int)*L.MaxSize);
L.data=new int[L.MaxSize];
fill(L.data,L.data+L.MaxSize,-1);
for(int i=0;i<L.length;i++)
L.data[i]=i;
}
//插入
bool ListInsert(SqList &L,int i,int e){
for(int j=L.length;j>=i;j--){
L.data[j]=L.data[j-1];
}
L.data[i]=e;
L.length++;
return true;
}
//删除
bool ListDelete(SqList &L,int i){
for(int j=i;j<L.length-1;j++)
L.data[j]=L.data[j+1];
L.length--;
fill(L.data+L.length,L.data+L.MaxSize,-1);
}
//查找
int LocateElem(SqList L,int e){
for(int i=0;i<L.length;i++)
if(L.data[i]==e)
return i;
return -1;
}
int main()
{
/*线性表:线性表示;初始化,输出,插入,删除,查找*/
SqList L;
InitList(L);
OutputList(L);
ListInsert(L,1,9);
OutputList(L);
ListDelete(L,1);
OutputList(L);
LocateElem(L,1);
printf("%d",LocateElem(L,1));
return 0;
}
线性表的线性表示;初始化,输出,插入,删除,查找;
最新推荐文章于 2024-07-22 23:59:01 发布