顺序表代码c语言的结果
时间: 2023-10-14 11:30:54 浏览: 95
顺序表是一种线性表的存储结构,可以用数组实现。以下是一个简单的顺序表代码示例:
```c
#include <stdio.h>
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int length;
} SqList;
void InitList(SqList* L) {
L->length = 0;
}
void Insert(SqList* L, int index, int value) {
if (L->length == MAXSIZE) {
printf("List is full\n");
return;
}
if (index < 1 || index > L->length + 1) {
printf("Invalid index\n");
return;
}
for (int i = L->length; i >= index; i--) {
L->data[i] = L->data[i - 1];
}
L->data[index - 1] = value;
L->length++;
}
void Delete(SqList* L, int index) {
if (index < 1 || index > L->length) {
printf("Invalid index\n");
return;
}
for (int i = index; i < L->length; i++) {
L->data[i - 1] = L->data[i];
}
L->length--;
}
void PrintList(SqList L) {
for (int i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
int main() {
SqList L;
InitList(&L);
Insert(&L, 1, 10);
Insert(&L, 2, 20);
Insert(&L, 1, 30);
Insert(&L, 3, 40);
Delete(&L, 2);
PrintList(L);
return 0;
}
```
这个程序创建了一个结构体 `SqList`,其中包含了一个整型数组 `data` 和一个整型变量 `length`,用于记录当前顺序表中元素的个数。`InitList` 函数用于初始化顺序表,将 `length` 设置为 0。`Insert` 函数用于在指定位置插入一个元素,如果插入位置无效或者顺序表已满,则会输出错误信息。`Delete` 函数用于删除指定位置的元素,如果删除位置无效,则会输出错误信息。`PrintList` 函数用于输出顺序表中所有元素的值。
在 `main` 函数中,我们首先调用 `InitList` 函数来初始化顺序表。然后,我们按照顺序插入了四个元素,分别是 30、10、40 和 20。接着,我们调用 `Delete` 函数删除了第二个元素,即 10。最后,我们调用 `PrintList` 函数输出了顺序表中的所有元素。程序的输出结果为:
```
30 40 20
```
这说明顺序表中的元素已经按照正确的顺序存储,并且删除操作也成功地删除了指定位置的元素。
阅读全文