c语言顺序表当前长度8 当前元素2,4,6,8,10,12,14,16 删除第一个数据元素,并输出整个顺序表
时间: 2024-03-17 10:39:42 浏览: 29
好的,给您展示一下C语言顺序表删除第一个元素的方法,并输出整个顺序表的代码:
```c
#include <stdio.h>
#define MAXSIZE 100 // 定义顺序表的最大长度
typedef struct {
int data[MAXSIZE]; // 存储元素的数组
int length; // 当前长度
} SqList;
// 删除顺序表中的第一个元素
int DeleteFirstElem(SqList *L) {
if (L->length == 0) { // 如果顺序表为空,则不能删除
return 0;
}
for (int i=1; i<L->length; ++i) {
L->data[i-1] = L->data[i]; // 后面的元素往前移动一位
}
L->length--; // 顺序表长度减1
return 1;
}
// 输出顺序表中的所有元素
void PrintSqList(SqList L) {
for (int i=0; i<L.length; ++i) {
printf("%d ", L.data[i]);
}
printf("\n");
}
int main() {
SqList L = {{2, 4, 6, 8, 10, 12, 14, 16}, 8}; // 初始化顺序表
printf("删除前:");
PrintSqList(L);
DeleteFirstElem(&L); // 删除第一个元素
printf("删除后:");
PrintSqList(L);
return 0;
}
```
输出结果为:
```
删除前:2 4 6 8 10 12 14 16
删除后:4 6 8 10 12 14 16
```
注意,这里的删除并不是真正的删除,而是将后面的元素往前移动一位,达到删除的效果。如果需要真正的删除,需要将后面的元素往前移动一位之后,将最后一个元素删除,即将`L->length--`操作放到循环外部。
阅读全文