线性链表顺序存储结构(c语言实现).docx
线性链表顺序存储结构(C语言实现) 线性链表是一种常用的数据结构,它由一系列的节点组成,每个节点包含两个 部分:数据域和指针域。数据域用于存储数据,指针域用于指向下一个节点。在顺 序存储结构中,线性链表中的节点按照一定的顺序依次存储在一块连续的内存区域 中。 #include #include #define MAXSIZE 1000 //定义链表的最大长度 typedef struct { int data [MAXSIZE] ; //存储数据的数组 int length; //链表的长度 } List; //初始化链表 void InitList (List *L) { L->length = 0; } //插入元素 int InsertList(List *L, int ind㊀x, int value) { if (index L->length + 1 || L->length >= MAXSIZE) { return 0; //插入失败 ) if (L-〉l㊀ngth == 0) { L->data[0] = value; } else { for (int i = L->length; i >= index; i--) L->data[i] = L->data[i - 1]; ) L->data[index - 1] = value; ) L->length++; //更新链表长度 return 1; //插入成功 ) //删除元素 int DeleteList(List *L, int index) { if (index L->length) { return 0; //删除失败 ) for (int i = index; i length; i++) L->data[i - 1] = L->data[i]; } L->length--; //更新链表长度 return 1; //删除成功 ) //查找元素 int FindList (List *L, int value) { for (int i = 0; i length; i++) if (L->data[i] == value) { return i + 1; //找到元素,返回索引 ) } return 0; //没有找到元素 } //打印链表 void PrintList (List *L) { printf ( n [ H; for (int i = 0; i length; i++) printf(n%d ”, L->data[i]); } printf(n]\nn); int main () { List L; InitList( InsertList ( // 10); 20); 30); 输出[10 20 30 ] DeleteList ( PrintList ( printf(n%d\nn r printf(, // 输出[10 30 ] FindList ( // 输出 0 FindList ( // 输出 1 return 0;