线性表的操作

void EmptyList(List *L)
{
L->length=0;

//线性表的清空即将表长度置为零。

//判空即判断顺序表长度是否为0。

//顺序表元素个数即L->length。

List * CreateList(int len)
{
List*L=(List*)malloc(sizeof(List));//申请顺序表空间 
L->length=0;//初始长度为0,无元素存在,即空表。 
L->capacity=len;//最大容纳量。 
L->Array=(ElemType*)malloc(len*sizeof(List));为数组元素申请空间。 
return L;
}

//创建一个顺序表。

完成ElemType* GetElem(List *L,int k)函数,获得顺序表中第k个元素(从0开始计数)的数据指针,如果k不在范围内,则返回空指针。

ElemType* GetElem(List *L,int k)
{
if(k<0||k>(L->length-1))///判断k是否在范围之内
{
return NULL;
}
else{
return &(L->Array[k]);//返回数据指针
}
}

完成void insertElem(List *L,int k,ElemType e)函数,在顺序表中第k个位置(从0开始计数)插入数据e,如果k不在范围内,则什么都不做。如果顺序表已满,则把顺序表空间扩展为现有空间的2倍后再插入。

void insertElem(List *L,int k,ElemType e)
{
  if(0>k||L->length<k);//k不在范围之内
     if(L->length==L->capacity)
     {
       L->Array=(ElemType*)realloc(L->Array,2*L->capacity*sizeof(ElemType));
         if(NULL==L->Array);
         else
         L->capacity*=2; //扩展空间为原来的两倍;
     }
     for(int i=L->length;i>k;--i)
  L->Array[i]=L->Array[i-1];//k之后的元素不断后移
  L->Array[k]=e;
  L->length++;
}

完成void deleteElem(List *L,int k);函数,删除顺序表中第k个元素(从0开始计数),如果k不在范围内,则什么也不做。

void deleteElem(List *L,int k)
{
int i;
if(k<0||k>(L->length-1))
{
return;
}
else{
for(i=k;i<=L->length-1;i++)
{
L->Array[i]=L->Array[i+1];
}
L->length--;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值