用C语言实现顺序表的各种基本运算,并在此基础上设计一个主程序完成如下功能: (1)建⽴4个元素的顺序表list[]={2,3,4,5},实现顺序表建⽴的基本操作。 (2)在list[]={2,3,4,5}的元素4和5之间插⼊⼀个元素9,实现顺序表插⼊的基本操作。
时间: 2024-09-15 12:09:56 浏览: 53
(完整word)C语言程序设计100个经典例子.doc
在C语言中实现顺序表的基本运算通常包括初始化、插入、删除、查找、遍历等操作。下面我将给出顺序表的基本定义和操作的示例代码。
首先,我们需要定义一个顺序表的结构体,通常包含一个数组用于存储元素和一个整数用于记录顺序表的当前长度。
```c
#include <stdio.h>
#include <stdbool.h>
#define MAXSIZE 10 // 定义顺序表的最大长度
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int ElemType; // 元素类型定义为int
typedef struct {
ElemType data[MAXSIZE]; // 存储空间基址
int length; // 当前长度
} SqList;
// 初始化顺序表
bool InitList(SqList *L) {
L->length = 0;
return true;
}
// 在顺序表L中的第i个位置插入新元素e
bool ListInsert(SqList *L, int i, ElemType e) {
int k;
if (L->length == MAXSIZE) { // 顺序表已满
return false;
}
if (i < 1 || i > L->length + 1) { // 检查插入位置的有效性
return false;
}
if (i <= L->length) { // 若插入数据位置不在表尾,需要移动数据
for (k = L->length - 1; k >= i - 1; k--) {
L->data[k + 1] = L->data[k];
}
}
L->data[i - 1] = e; // 将新元素插入
L->length++;
return true;
}
// 主程序
int main() {
SqList list;
ElemType e;
// (1) 建立4个元素的顺序表list[]={2, 3, 4, 5}
InitList(&list);
ListInsert(&list, 1, 2);
ListInsert(&list, 2, 3);
ListInsert(&list, 3, 4);
ListInsert(&list, 4, 5);
// 打印当前顺序表
printf("顺序表当前元素为:");
for (int i = 0; i < list.length; i++) {
printf("%d ", list.data[i]);
}
printf("\n");
// (2) 在顺序表的第3个位置插入元素9
ListInsert(&list, 3, 9);
// 打印插入新元素后的顺序表
printf("插入元素9后的顺序表为:");
for (int i = 0; i < list.length; i++) {
printf("%d ", list.data[i]);
}
printf("\n");
return 0;
}
```
这段代码中,`InitList`函数用于初始化顺序表,`ListInsert`函数用于在顺序表的指定位置插入一个元素。主程序中首先创建了一个包含4个元素的顺序表,然后在这个顺序表的第3个位置插入了一个元素9,并打印了操作后的顺序表。
阅读全文