顺序表中删除元素

这是函数题模板。这里写题目要求。例如:本题要求实现一个函数,在顺序存储结构的线性表中删除一个表中的元素。

函数接口定义:

在这里描述函数接口。例如:
void delnode1(SqList *&L,ElemType x);

在这里解释接口参数。L是线性表,x是要删除的表中的元素。

在这里给出函数被调用进行测试的例子。例如:
//顺序表基本运算算法
#include <stdio.h>
#include <malloc.h>
#define MaxSize 50
typedef int ElemType; 
typedef struct 
{    ElemType data[MaxSize];        //存放顺序表元素
       int length;                    //存放顺序表的长度
} SqList;                        //顺序表的类型
void CreateList(SqList *&L,ElemType a[],int n)
//建立顺序表
{
    L=(SqList *)malloc(sizeof(SqList));
    for (int i=0;i<n;i++)
        L->data[i]=a[i];
    L->length=n;
}
void InitList(SqList *&L)
{
    L=(SqList *)malloc(sizeof(SqList));    //分配存放线性表的空间
    L->length=0;
}
void DestroyList(SqList *&L)
{
    free(L);
}
void DispList(SqList *L)
{
    for (int i=0;i<L->length;i++)
        printf("%d ",L->data[i]);
    printf("\n");
}
void delnode1(SqList *&L,ElemType x);

int main()
{
    ElemType a[]={1,2,2,1,0,2,4,2,3,1};
    ElemType x=2;
    SqList *L;
    CreateList(L,a,10);
    printf("L:");DispList(L);
    printf("删除值为%d的元素\n",x);
    delnode1(L,x);
    printf("L:");    DispList(L);
    DestroyList(L);
    return 0;
}

/* 请在这里填写答案 */

裁判测试程序样例:

输入样例:

在这里给出一组输入。例如:


输出样例:

在这里给出相应的输出。例如:

L:1 2 2 1 0 2 4 2 3 1
删除值为2的元素
L:1 1 0 4 3 1

代码样例:

void delnode1(SqList *&L, ElemType x) {
 int k = 0, i = 0;
 while (i < L->length) {
  if (L->data[i] == x)
   k++;
  else
   L->data[i - k] = L->data[i];
  i++;
 }
        L->length-=k;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值