线性表的基本操作的实现: 1.顺序表的定义CreateList(SeqList *L,int n); 2.顺序表的打印PrintList(SeqList *L); 3.顺序表的查找LocateList(SeqList *L,int x); 4.顺序表的插入InsertList(SeqList *L,int x,int i); 5.顺序表的删除DeleteList(SeqList *L,int i);
时间: 2023-04-12 07:01:54 浏览: 213
好的,以下是 CSDN 开发的 C知道 对线性表基本操作的实现:
1. 顺序表的定义:
typedef struct {
int *elem; // 存储空间基址
int length; // 当前长度
int size; // 当前分配的存储容量
} SeqList;
void CreateList(SeqList *L, int n) {
L->elem = (int *)malloc(n * sizeof(int));
if (!L->elem) {
printf("Memory allocation failed.\n");
exit(1);
}
L->length = 0;
L->size = n;
}
2. 顺序表的打印:
void PrintList(SeqList *L) {
int i;
for (i = 0; i < L->length; i++) {
printf("%d ", L->elem[i]);
}
printf("\n");
}
3. 顺序表的查找:
int LocateList(SeqList *L, int x) {
int i;
for (i = 0; i < L->length; i++) {
if (L->elem[i] == x) {
return i;
}
}
return -1;
}
4. 顺序表的插入:
int InsertList(SeqList *L, int x, int i) {
int j;
if (i < 1 || i > L->length + 1) {
return 0;
}
if (L->length >= L->size) {
return 0;
}
for (j = L->length; j >= i; j--) {
L->elem[j] = L->elem[j - 1];
}
L->elem[i - 1] = x;
L->length++;
return 1;
}
5. 顺序表的删除:
int DeleteList(SeqList *L, int i) {
int j;
if (i < 1 || i > L->length) {
return 0;
}
for (j = i; j < L->length; j++) {
L->elem[j - 1] = L->elem[j];
}
L->length--;
return 1;
}
希望这些代码能够帮助你实现线性表的基本操作。
阅读全文