构造一个长度为5的线性表,在指定元素前插入一个新的元素,删除第3个元素。c语言代码
时间: 2024-11-29 12:36:16 浏览: 3
为了构造一个长度为5的线性表,在指定元素前插入一个新的元素,删除第3个元素,可以使用C语言中的数组和指针来实现。具体实现的代码如下:
```
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 5
typedef struct {
int data[MAXSIZE];
int length;
} SqList;
// 在指定位置前插入元素
int ListInsert(SqList *L, int pos, int elem) {
if (pos < 1 || pos > L->length + 1 || L->length == MAXSIZE) {
return 0;
}
for (int i = L->length - 1; i >= pos - 1; i--) {
L->data[i + 1] = L->data[i];
}
L->data[pos - 1] = elem;
L->length++;
return 1;
}
// 删除指定位置的元素
int ListDelete(SqList *L, int pos) {
if (pos < 1 || pos > L->length) {
return 0;
}
for (int i = pos; i < L->length; i++) {
L->data[i - 1] = L->data[i];
}
L->length--;
return 1;
}
int main() {
SqList L = {{1, 2, 3, 4, 5}, 5};
int elem = 6;
int pos = 3;
// 在指定位置前插入元素
if (ListInsert(&L, pos, elem)) {
printf("在第%d个位置前插入元素%d成功\n", pos, elem);
for (int i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
} else {
printf("在第%d个位置前插入元素%d失败\n", pos, elem);
}
// 删除指定位置的元素
if (ListDelete(&L, 3)) {
printf("删除第%d个元素成功\n", pos);
for (int i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
} else {
printf("删除第%d个元素失败\n", pos);
}
return 0;
}
```
阅读全文