顺序表基本操作

#include<stdio.h>
#define MaxSize 10
typedef int ElemType;
typedef struct{
ElemType data[MaxSize];
ElemType length;
}SqList;
void InitList(SqList &L)	//初始化
{
L.length=0;
}
bool InserList(SqList &L,ElemType i,ElemType e)	//插入操作
{
if(i<0 || i>L.length+1 || L.length>=MaxSize)
return false;
for(ElemType j=L.length;j>=i;j--)    //将i及i后面位置元素依次后移
L.data[j]=L.data[j-1];
L.data[j]=e;
L.length++;
return true;
}
bool DeleteList(SqList &L,ElemType i,ElemType &e)	//删除操作
{
if(i<0 || i>L.length)
return false;
e=L.data[i-1];
if(L.length==0)
return false;
for(ElemType j=i-1;j<L.length;j++)    //将i及i后面位置依次前移
L.data[j]=L.data[j+1];
L.length--;
return true;
}
int GetElem(SqList L,ElemType i)	//按值查找
{
if(i<0 || i>L.length)
return 0;
return L.data[i-1];
}
int LocateElem(SqList L,ElemType e) //按位查找
{
for(int j=0;j<L.length;j++)
if(L.data[j]==e)
return j+1;
return 0;
}
void PrElemType(SqList L)	//输出
{
for(ElemType i=0;i<L.length;i++)
printf("data[%d]=%d\n",i,L.data[i]);
}
void main()
{
SqList L;
ElemType e=-1;
InitList(L);
InserList(L,1,2);
InserList(L,2,3);
InserList(L,3,4);
InserList(L,4,5);
InserList(L,1,10);
InserList(L,7,20);
PrElemType(L);
printf("e=%d\n",e);
printf("第%d个位置是%d\n",2,GetElem(L,2));
printf("10是第%d个元素\n",LocateElem(L,10));
printf("*********************\n");
DeleteList(L,2,e);
PrElemType(L);
printf("e=%d\n",e);
}

  

posted @ 2020-06-17 20:26  石乐智先生  阅读(185)  评论(0编辑  收藏  举报