热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PTA71jmuds顺序表区间元素删除(C语言)

本文提供了一个使用C语言实现的顺序表区间元素删除功能的完整代码示例。该程序首先初始化一个顺序表,然后根据用户输入的数据进行插入操作,最后根据指定的区间范围删除相应的元素,并输出最终的顺序表。

图1

实现代码如下:

#include
#include
#include
#define MAX_SIZE 1000
#define SUCCESS 1
#define FAILURE 0
typedef int Status;
typedef int ElementType;
typedef struct SeqList {
ElementType data[MAX_SIZE];
int size;
} *SeqListPtr;

SeqListPtr CreateSeqList() {
SeqListPtr list = (struct SeqList *)malloc(sizeof(struct SeqList));
list->size = 0;
return list;
}

Status InsertElement(SeqListPtr list, int index, ElementType element) {
if (list->size == MAX_SIZE || index <1 || index > list->size + 1) {
return FAILURE;
}
if (index <= list->size) {
for (int i = list->size - 1; i >= index - 1; i--) {
list->data[i + 1] = list->data[i];
}
}
list->data[index - 1] = element;
list->size++;
return SUCCESS;
}

Status DeleteElement(SeqListPtr list, int index) {
if (list->size == 0 || index <1 || index > list->size) {
return FAILURE;
}
if (index size) {
for (int i = index; i size; i++) {
list->data[i - 1] = list->data[i];
}
}
list->size--;
return SUCCESS;
}

void RemoveInRange(SeqListPtr list, int start, int end) {
for (int i = 0; i size; i++) {
if (list->data[i] >= start && list->data[i] <= end) {
DeleteElement(list, i + 1);
i--; // 调整索引,因为删除后列表长度减小
}
}
}

Status PrintList(SeqListPtr list) {
for (int i = 0; i size - 1; i++) {
printf("%d ", list->data[i]);
}
printf("%d\n", list->data[list->size - 1]);
return SUCCESS;
}

int main() {
SeqListPtr list = CreateSeqList();
int numElements, start, end, element;
scanf("%d", &numElements);
for (int i = 1; i <= numElements; i++) {
scanf("%d", &element);
InsertElement(list, i, element);
}
scanf("%d %d", &start, &end);
RemoveInRange(list, start, end);
PrintList(list);
return 0;
}


推荐阅读
author-avatar
非常异族图腾
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有