给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素。删除后表中剩余元素保持顺序存储,并且相对位置不能改变。 函数接口定义:
时间: 2024-06-11 08:04:42 浏览: 16
给定一个顺序存储的线性表,如果要删除所有值大于min而且小于max的元素,并保证删除后表中剩余元素保持顺序存储并且相对位置不变,可以按照以下步骤进行操作:
1. 定义一个新的线性表newList,用于保存删除元素后的结果。
2. 遍历原始线性表,对于每个元素elem:
- 如果elem的值小于等于min或者大于等于max,将elem添加到newList中。
- 否则,跳过elem,继续遍历下一个元素。
3. 返回newList作为删除元素后的结果。
以下是一个示例C语言代码实现:
```c
#include <stdio.h>
#define MAXSIZE 20
typedef int ElementType;
typedef int Position;
typedef struct LNode *List;
struct LNode {
ElementType Data[MAXSIZE];
Position Last; /* 保存线性表中最后一个元素的位置 */
};
List Delete(List L, ElementType minD, ElementType maxD) {
List newList;
newList = (List)malloc(sizeof(struct LNode));
Position i, j;
j = 0; // 记录newList的下一个可插入位置
for (i = 0; i <= L->Last; i++) {
if (L->Data[i] <= minD || L->Data[i] >= maxD) {
newList->Data[j++] = L->Data[i];
}
}
newList->Last = j - 1; // 更新newList的最后一个元素位置
return newList;
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)