c语言顺序表简单操作实例
时间: 2023-06-10 19:02:32 浏览: 128
好的,我了解您的要求。关于c语言顺序表的简单操作实例,以下是一个例子:
```
#include <stdio.h>
#define MAXSIZE 10 // 定义顺序表的最大长度
typedef struct {
int data[MAXSIZE]; // 用数组存储数据元素
int length; // 存储顺序表的当前长度
} SqList; // 顺序表的类型定义
// 初始化一个空的顺序表
void InitList(SqList *L)
{
L->length = 0;
}
// 在第i个位置插入元素e
int ListInsert(SqList *L, int i, int e)
{
int j;
if (i < 1 || i > L->length + 1) // i的位置不合法
return 0;
if (L->length >= MAXSIZE) // 顺序表已满
return 0;
for (j = L->length; j >= i; j--) // 将第i个位置及以后的元素后移
L->data[j] = L->data[j - 1];
L->data[i - 1] = e; // 将e插入到第i个位置
L->length++; // 顺序表长度加1
return 1;
}
// 删除第i个位置的元素
int ListDelete(SqList *L, int i)
{
int j;
if (i < 1 || i > L->length) // i的位置不合法
return 0;
for (j = i; j < L->length; j++) // 将第i个位置及以后的元素前移
L->data[j - 1] = L->data[j];
L->length--; // 顺序表长度减1
return 1;
}
// 获取第i个位置的元素值
int GetElem(SqList L, int i)
{
if (i < 1 || i > L.length) // i的位置不合法
return -1;
return L.data[i - 1];
}
// 打印顺序表的元素
void PrintList(SqList L)
{
int i;
for (i = 0; i < L.length; i++)
printf("%d ", L.data[i]);
printf("\n");
}
int main()
{
// 初始化一个顺序表
SqList L;
InitList(&L);
// 插入元素
ListInsert(&L, 1, 1);
ListInsert(&L, 2, 2);
ListInsert(&L, 3, 3);
ListInsert(&L, 4, 4);
ListInsert(&L, 5, 5);
PrintList(L); // 打印顺序表元素,输出为:1 2 3 4 5
// 删除元素
ListDelete(&L, 3);
PrintList(L); // 打印顺序表元素,输出为:1 2 4 5
// 获取元素值
int e = GetElem(L, 2);
printf("%d\n", e); // 输出2
return 0;
}
```
这是一个简单的顺序表的C语言代码,实现了插入、删除和获取元素值等操作。希望对您有所帮助。
阅读全文