第3周-顺序表

1.写出顺序表数据类型定义语句。

typedef struct

{

ElemType *elem;

int length;

int listsize;

}SqList;

Status initList(SqList &L)

{

L.length=0;

L.listsize=MAX_SIZE;

L.elem=(ElemType *)malloc(MAX_SIZE*sizeof(ElemType));

}

Status emptyList(SqList L)

{

if(L.length==0)

return OK;

else

return FALSE;

}

2.画出顺序表存储结构示意图。

第3周-顺序表_第1张图片     第3周-顺序表_第2张图片

3.写出顺序表在第i个位置之前插入元素e的算法。

Status listLength(SqList L)

{

return L.length;

}

void insert(SqList &L,int i)

{

L.elem[i]=i;

L.length++;

}

void listInsert(SqList &L,int i,ElemType e)

{

int j;

for(j=L.length;j>=i;j--)

L.elem[j]=L.elem[j-1];

L.elem[i-1]=e;

L.length++;

}

 

4.写出删除顺序表第i个位置元素并返回该位置上元素值e的算法。

void listDelete(SqList &L,int i,ElemType &e)

{

e=L.elem[i-1];

int j;

for(j=i;j

L.elem[j-1]=L.elem[j];

L.length--;

}

你可能感兴趣的:(第3周-顺序表)