详解C语言之顺序表

Jacinthe ·
更新时间:2024-11-13
· 1951 次阅读

目录

一、思维导图

二、步骤

1.初始化

2.求表长

3.插入数据元素

4.删除数据元素

5.取出数据元素

按位查找

按位查找

所有代码

总结

一、思维导图

二、步骤 1.初始化

代码如下:

void ListInit(SeqList *L) { L->size = 0; } 2.求表长

代码如下:

int ListLength(SeqList L) { return L.size; } 3.插入数据元素

代码如下:

int ListInsert(SeqList *L, int i, DataType x) { int j; if (L->size >= MaxSize) { printf("顺序表已满,插入失败!!!\n"); return 0; } else if (i<0 || i>L->size) { printf("参数i不合法,插入失败!!!\n"); return 0; } else { for (j = L->size; j > i; j--) L->list[j] = L->list[j - 1]; L->list[i] = x; L->size++; return 1; } } 4.删除数据元素

代码如下:

int ListInsert(SeqList *L, int i, DataType x) { int j; if (L->size >= MaxSize) { printf("顺序表已满,插入失败!!!\n"); return 0; } else if (i<0 || i>L->size) { printf("参数i不合法,插入失败!!!\n"); return 0; } else { for (j = L->size; j > i; j--) L->list[j] = L->list[j - 1]; L->list[i] = x; L->size++; return 1; } } 5.取出数据元素 按位查找

代码如下:

int ListGet(SeqList L, int i, DataType *x) { if (L.size <= 0) { printf("顺序表已空,取出元素失败!!!\n"); return 0; } else if (i < 0 || i >= L.size) { printf("参数i不合法,取出元素失败!!!\n"); return 0; } else { *x = L.list[i]; return 1; } } 按位查找

代码如下:

int ListGetZ(SeqList L, DataType x, int *i) { int j; for (j = 0; j < ListLength(L); j++) { if (L.list[j] == x) { *i = j; return 1; } } return 0; } 所有代码 #include <stdio.h> #define MaxSize 1024 //数组能存储的最大最大元素个数 typedef int DataType; //存储数据元素的数据类型 typedef struct { DataType list[MaxSize]; int size; //当前存储的数据元素个数 }SeqList; //初始化 void ListInit(SeqList *L) { L->size = 0; } //求表长 int ListLength(SeqList L) { return L.size; } //插入数据元素 int ListInsert(SeqList *L, int i, DataType x) { int j; if (L->size >= MaxSize) { printf("顺序表已满,插入失败!!!\n"); return 0; } else if (i<0 || i>L->size) { printf("参数i不合法,插入失败!!!\n"); return 0; } else { for (j = L->size; j > i; j--) L->list[j] = L->list[j - 1]; L->list[i] = x; L->size++; return 1; } } //删除数据元素 int ListDelete(SeqList *L, int i, DataType *x) { int j; if (L->size <= 0) { printf("顺序表已空,删除失败!!!\n"); return 0; } else if (i < 0 || i >= L->size) { printf("参数i不合法,删除失败!!!\n"); return 0; } else { *x = L->list[i]; for (j = i; j < L->size - 1; j++) L->list[j] = L->list[j + 1]; L->size--; return 1; } } //取出数据元素 //按位查找 void ListGet(SeqList L, int i, DataType *x) { if (L.size <= 0) { printf("顺序表已空,取出元素失败!!!\n"); return 0; } else if (i < 0 || i >= L.size) { printf("参数i不合法,取出元素失败!!!\n"); return 0; } else { *x = L.list[i]; return 1; } } //安值查找 int ListGetZ(SeqList L, DataType x, int *i) { int j; for (j = 0; j < ListLength(L); j++) { if (L.list[j] == x) { *i = j; return 1; } } return 0; } int main() { SeqList L; int i, x; ListInit(&L); for (i = 0; i < 10; i++) ListInsert(&L, i, i + 10); ListDelete(&L, 4, &x); for (i = 0; i < ListLength(L); i++) { ListGet(L, i, &x); printf("%d ", x); } system("pause"); return 0; } 总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注软件开发网的更多内容!



顺序表 C语言

需要 登录 后方可回复, 如果你还没有账号请 注册新账号