这是函数题模板。这里写题目要求。例如:本题要求实现一个函数,在顺序存储结构的线性表中删除一个表中的元素。
函数接口定义:
在这里描述函数接口。例如:
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;
}