文档介绍:()§=(D,R)其中:D={ai|ai∈D0,i=1,2,…,n,n≥0}R={N}N={<ai-1,ai>|ai-1,ai∈D0,i=2,3,…,n}线性表特点:1、存在着唯一被称为“第一个”的元素2、存在着唯一被称为“最后一个”的元素3、除第一个外,每个元素均只有唯一前驱(predecessor)4、除最后一个外,每个元素均只有唯一后继(essor)线性表的基本操作:InitiateLengthGetPriorNextLocateInsertDeleteEmptyClear§、顺序存储结构bb+lb+2l…b+(i-1)l…b+(n-1)l#defineMAXLENuser_supplytypedefstruct{elemtypeelem[MAXLEN];intlistsize;}sqlist;#defineLIST_INIT_SIZEuser_supply#defineLISTINCREMENTuser_supplytypedefstruct{elemtype*elem;intlength;intlistsize;}sqlist;也可以用动态数组实现:statusInitiate(splist&L){=(elemtype*)malloc(LIST_INIT_SIZE*sizeof(elemtype));if(!)exit(overflow);=0;=LIST_INIT_SIZE;}//还可用realloc函数来重新分配空间,大小调整为增量顺序表的插入:这是我的地方,我要住这儿!行,我们这就给你倒地儿!顺序表的插入:二、链式存储结构a1a2aian……Htypedefstructlnode{elemtypedata;structlnode*next;}lnode,*linkedlist;由上可见,在链表的某一结点后插入一结点是很容易的,但若要插在链表头部,则需另行处理。为使插入操作统一,可在链表头部加上一个头结点(headnode)。带头结点的链表,插入和删除操作就统一了。a1aian……H链表的插入:ai+1a1aiai+1an……H我要插在这儿!行,你就插这儿吧!上面讲的是单链表(singlylinkedlists),此外,还有静态链表(implementinglinkedlistsusingarray)、循环链表(circularlinkedlists)、双向链表(doublylinkedlists)和双向循环链表(doublycircularlinkedlists)。12ina1a2anH…H…ana2a1TH…ana2a1T你们有谁能告诉我数组和链表在使用时的优缺点?2、在数据量已确定时,数组比链表节约空间;3、在数据量不确定时,链表比数组节约空间;4、链表的插入删除时不需要大量的数据移动。1、数组能随机存取(ess)各数据元素,亦即给出元素下标(index),就能访问该元素;§(polynomial)的表示及运算typedefstruct{intcoef;intexp;}eletp;eletppoly[m];顺序存储结构表示:链式存储结构表示:intcoef;intexp;}*poly;typedefstructlnode{structlnode*next;、B按降次排列,用带头结点的链表存储,求C=A×B,试编程实现。