“顺序线性表”的创建Create、显示Display、插入Insert、删除Delete代码
时间: 2024-02-01 08:02:48 浏览: 52
顺序线性表的建立、插入及删除
顺序线性表是一种使用数组实现的线性数据结构,它的元素在物理存储上是连续的。下面是顺序线性表的创建、显示、插入和删除的代码实现:
1. 创建Create
```c
#define MAXSIZE 100 // 定义最大长度
typedef int ElementType;
typedef struct {
ElementType data[MAXSIZE]; // 存储线性表的数组
int length; // 线性表的长度
} SeqList;
SeqList Create() {
SeqList L;
int n;
printf("请输入线性表的长度: ");
scanf("%d", &n);
if (n < 0 || n > MAXSIZE) {
printf("输入的长度不合法!\n");
exit(1);
}
printf("请输入线性表的元素: ");
for (int i = 0; i < n; i++) {
scanf("%d", &L.data[i]);
}
L.length = n;
return L;
}
```
2. 显示Display
```c
void Display(SeqList L) {
if (L.length == 0) {
printf("线性表为空!\n");
return;
}
printf("线性表中的元素为: ");
for (int i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
```
3. 插入Insert
```c
SeqList Insert(SeqList L, int pos, ElementType value) {
if (pos < 1 || pos > L.length + 1) {
printf("插入位置不合法!\n");
return L;
}
if (L.length == MAXSIZE) {
printf("线性表已满,无法插入!\n");
return L;
}
for (int i = L.length - 1; i >= pos - 1; i--) {
L.data[i + 1] = L.data[i];
}
L.data[pos - 1] = value;
L.length++;
return L;
}
```
4. 删除Delete
```c
SeqList Delete(SeqList L, int pos) {
if (pos < 1 || pos > L.length) {
printf("删除位置不合法!\n");
return L;
}
for (int i = pos; i < L.length; i++) {
L.data[i - 1] = L.data[i];
}
L.length--;
return L;
}
```
注意:以上代码仅供参考,具体实现细节可能需要根据实际情况进行调整。
阅读全文