您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 实验二、有序表的建立、插入与删除
实验二、有序表的建立、插入与删除一、实验目的1、了解有序表的顺序存贮结构。2、掌握有序表元素在内存中是怎样存贮的。3、在有序表中实现如下操作:(1)插入一个新元素到第i个位置。(2)删除第i个位置的元素。(3)存一个新元素到第i个位置。二、实验要求:要求实现:建表操作、插入新元素、删除第i个位置的元素。写出实验原理、算法思想(流程图)、完整程序代码、输出结果验证。⊙实验原理:线性表是最常用的而且也是最简单的一种数据结构,线性表是N个数据元素的有限序列。LOC(ai+1)=LOC(ai)+m。其中m是存放每个元素所占的内存字数。LOC(ai)=LO+m·(i-1)。其中LO是ai的地址,即首地址。插入一个新元素到第i个位置,既把元素ai向后移一个位置,成为元素ai+1,把新元素放入到第i个位置,其他元素依次后移。删除第i个元素就是把余后的元素依次向前移一个位置。即:以元素ai+1,ai+2,···,依次取代ai,ai+1,···。删除后的表长是n-1(n是原表长)。⊙算法思想(流程图):见手稿⊙完整程序代码:1.插入新元素:#includestdio.h#includestdlib.h#includemalloc.h#defineOK1#defineERROR0#defineTRUE1#defineFALSE0#defineElemTypeint#defineMAXSIZE100typedefstruct{ElemTypeelem[MAXSIZE];intlast;}SeqList;intInsList(SeqList*L,inti,ElemTypee){intk;if((i1)||(iL-last+2)){printf(theillegalposition);return(ERROR);}if(L-last=MAXSIZE-1){printf(thelistisfull);return(ERROR);}for(k=L-last;k=i-1;k--)L-elem[k+1]=L-elem[k];L-elem[i-1]=e;L-last++;return(OK);}voidmain(){SeqList*l;intp,q,r;inti;l=(SeqList*)malloc(sizeof(SeqList));printf(pleaseinputthelengthofthelist:);scanf(%d,&r);l-last=r-1;printf(pleaseinputthedata:\n);for(i=0;i=l-last;i++){scanf(%d,&l-elem[i]);}printf(pleaseinputtheinsertednumberplace:\n);scanf(%d,&p);printf(pleaseenterthenewnumber:\n);scanf(%d,&q);InsList(l,p,q);for(i=0;i=l-last;i++){printf(%d,l-elem[i]);}}输出结果验证:2.删除第i个位置的元素:#includestdio.h#includestdlib.h#includemalloc.h#defineOK1#defineERROR0#defineTRUE1#defineFALSE0#defineElemTypeint#defineMAXSIZE100typedefstruct{ElemTypeelem[MAXSIZE];intlast;}SeqList;intDelList(SeqList*L,inti,ElemType*e){intk;if((i1)||(iL-last+1)){printf(theillegalposition!);return(ERROR);}*e=L-elem[i-1];for(k=i;i=L-last;k++)L-elem[k-1]=L-elem[k];L-last--;return(OK);}voidmain(){SeqList*l;intp,r;int*q;inti;l=(SeqList*)malloc(sizeof(SeqList));q=(int*)malloc(sizeof(int));printf(pleastinputthelengthofthelist:);scanf(%d,&r);l-last=r-1;printf(pleastinputthedata:\n);for(i=0;i=l-last;i++){scanf(%d,&l-elem[i]);}printf(pleaseinputthedeletednumberplace:\n);scanf(%d,&p);printf(thedeleteddata:%d\n,*q);}输出结果验证:
本文标题:实验二、有序表的建立、插入与删除
链接地址:https://www.777doc.com/doc-3876465 .html