一、概述
线性表的顺序表示,特点是逻辑关系上相邻的两个元素物理位置上也相邻,这种数据结构的优点是可以随机读取表中的任意元素;缺点是做插入或者删除时,需要移动大量的元素。
与之相对的链式表示,不要求逻辑上相连的元素物理位置也相邻,每个元素除了存储其本身的数据之外,还存储了一个指示其后继元素位置的信息,因此在插入和删除时,不需要移动大量的元素,但是也不支持随机读取表中的任意元素。
二、线性链表的实现
# include & lt; stdio.h> typedef结构节点{ int数据; 结构节点*下; }节点; int initLinkList(节点(节点){ 节点→数据=https://www.yisu.com/zixun/0; 节点-> next=零; 返回0; } int getLinkListLen(节点(节点) { int i=0; (我=0;节点->下一个!=零;我+ +){ 节点=节点-> next; } 返回我; } int getLinkListElm (int, int num节点*节点*数据) { int i=0; int len; len=getLinkListLen(节点); 如果(num> len) { printf("数量超过链接列表披散下来\ n”); 返回1; } (我=0;i数据; 返回0; } int insertLinkList (int, int num节点*节点*数据) { int i=0; int len; 节点* newNode=(节点*)malloc (sizeof(节点)); newNode -> data=*数据; newNode ->=零; len=getLinkListLen(节点); 如果(num> len) { printf("数量超过链接列表披散下来\ n”); 返回1; } (我=0;i
数据结构之线性表