程序填空题:线性表元素的区间删除
Luz4年前 (2021-08-19)题库1120
给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素。删除后表中剩余元素保持顺序存储,并且相对位置不能改变。
```c++
#include
#include
#define MAXSIZE 20
typedef int ElementType;
typedef int Position;
typedef struct LNode *List;
struct LNode {
ElementType Data[MAXSIZE];
Position Last; /* 保存线性表中最后一个元素的位置(下标) */
};
List ReadInput();
void PrintList( List L );
List Delete( List L, ElementType minD, ElementType maxD );
int main()
{
List L;
ElementType minD, maxD;
int i;
L = ReadInput();
scanf("%d %d", &minD, &maxD);
L = Delete( L, minD, maxD );
PrintList(L);
return 0;
}
List ReadInput()
{
int n,i;
List S=(List)malloc(sizeof(struct LNode));
scanf("%d",&n);
for(i=0;iData[i]);
S->Last=n-1;
return S;
}
void PrintList( List L )
{
int i;
for(i=0;i<=L->Last;i++)
printf("%d ",L->Data[i]);
}
List Delete( List L, ElementType minD, ElementType maxD )
{
int i,j=0;
for(i=0;;i++)
{
if()
;
}
L->Last=j-1;
return L;
}
```
答案:
第1空:i<=L->Last
第2空:!(minDData[i]&&L->Data[i]Data[j++]=L->Data[i]