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