-->
当前位置:首页 > 题库 > 正文内容

程序填空题:线性表元素的区间删除

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]


发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。