顺序线性表的基本操作之创建、显示、插入、删除
时间: 2023-09-28 14:12:20 浏览: 208
顺序线性表的基本操作
顺序线性表是一种基于数组的数据结构,其中元素按照线性顺序存放,可以通过下标访问。以下是顺序线性表的基本操作:
1. 创建操作:创建一个空的顺序线性表,需要指定表的最大长度,通常使用动态分配内存的方式实现。例如,在 C 语言中,可以使用 malloc 函数动态分配内存。
2. 显示操作:遍历顺序线性表,输出其中所有元素的值。
3. 插入操作:向顺序线性表中插入一个新元素,需要指定插入位置和插入值。插入操作需要考虑顺序线性表的容量限制,如果插入位置已经有元素,需要将该位置后面的元素依次向后移动一位。
4. 删除操作:从顺序线性表中删除一个元素,需要指定删除位置。删除操作也需要考虑顺序线性表的容量限制,如果删除位置后面有元素,需要将该位置后面的元素依次向前移动一位。
下面是 C 语言实现顺序线性表的示例代码,其中使用了结构体来表示顺序线性表的数据结构:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
typedef struct {
int data[MAX_SIZE];
int length;
} SeqList;
// 创建操作
void create(SeqList *list) {
list->length = 0;
}
// 显示操作
void display(SeqList list) {
int i;
for (i = 0; i < list.length; i++) {
printf("%d ", list.data[i]);
}
printf("\n");
}
// 插入操作
int insert(SeqList *list, int index, int value) {
int i;
if (list->length >= MAX_SIZE) {
printf("Error: List is full\n");
return 0;
}
if (index < 0 || index > list->length) {
printf("Error: Invalid index\n");
return 0;
}
for (i = list->length - 1; i >= index; i--) {
list->data[i+1] = list->data[i];
}
list->data[index] = value;
list->length++;
return 1;
}
// 删除操作
int delete(SeqList *list, int index) {
int i;
if (list->length == 0) {
printf("Error: List is empty\n");
return 0;
}
if (index < 0 || index >= list->length) {
printf("Error: Invalid index\n");
return 0;
}
for (i = index; i < list->length - 1; i++) {
list->data[i] = list->data[i+1];
}
list->length--;
return 1;
}
int main() {
SeqList list;
create(&list);
insert(&list, 0, 1);
insert(&list, 1, 2);
insert(&list, 2, 3);
display(list);
delete(&list, 1);
display(list);
return 0;
}
```
阅读全文