《2023年数据结构顺序表实验报告.docx》由会员分享,可在线阅读,更多相关《2023年数据结构顺序表实验报告.docx(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、洛阳理工学院实验报告系别计算机班级学号姓名课程名称数据结构实验日期1 0 /23实验名称顺序表的基本操作成绩实验目的:熟悉掌握线性表顺序存储结构,掌握与应用顺序表的查找、插入、删除等基 本操作算法,训练和提高结构化程序设计能力及程序调试能力。实验条件:计算机一台,Vis u a 1 C +6. 0实验内容:1 .问题描述以顺序表为存储结构实现以下基本操作:(1) 在第i个元素前插入一个新元素。(2) 查找值为x的某个元素。若成功,给出x在表中的位置;不成功给出提 醒信息。(3) 删除第i个元素,若成功,给出提醒信息并显示被删元素的值;不成功 给出失败的提醒信息。2 .数据结构类型定义type
2、d ef struct ElemTyp e e 1 e m MAXSIZE;I nt 1 a st; S e q L i s t;3.模块划分(1)创建顺序表输入函数:voi d Input (Seq List *L, int n);(2)创建顺序表输出函数:void Output(SeqList *L);(3)创建顺序表的内容查找函数:int L o cate ( S eqList L , ElemTyp e e);(4)创建顺序表的插入函数:int Ins Lis t ( S e q L ist *L, int i, E 1 e mType e);(5)创建顺序表的删除函数: int De
3、lL i st ( S eqLis t *L, int i, Ele mT y pe *e);(6)主函数:void main ()4.具体设计# i ncl u de # in elude # include # defi n e OK 1# define ERROR -1# d ef i ne TRUE 1# defi n e FALSE 0#def i ne El e mTy p e i nt#d efineoMA X S I Z E 100 最大长度t yp e def st r uct oElemType elemMAX SIZE;int last; Seq List;v oid I
4、n p u t (S e qLis t *L, int n) 输入函数 int i;pri n t f(请输入线性表的各元素值:n);f o r (i = 0: ielemi );)vo i d Ou t put (SeqList *L) 输出函数 int i;for( i =0; ilast; i +)。printf (,%2d,,z, L-elemi);printf (n);)int Locate (SeqL i s t L, El e mType e )内容查找函数 o i nt i;i=0;w h i le ( ( i =L. last) & (L. e 1 em i ) ! =e)
5、i+; i f ( i =L. last) return(i +1) ;/返回序号elser e t u rn (- 1 );)int InsList (Se q Lis t *L, i nt i, E 1 emTy p e e) / 插入数据 int k;。 if( i L last+2) /*一方面判断插入位置是否合法*/叩r i n t(插入位置不合法n);。 r eturn (ERR 0 R);)if(L-1 a s t = MAXSIZE-1)。叩rintf (表已满无法插入);o r e tur n (ERROR);)ofor ( k =L-1 a s t;k=i-l ;k)/为插
6、入元素而移动位置 elem k+l=L-el e mk;0L - e= e ;第i个元素的下标为i - 1I-last+;oretu r n (OK);)in t D e 1 List (S e q L is t e = L-elem i-1 ;/*将删除的元素存放到e所指向的变量中*/for (k= i ; k last; k + +)L-elem k -1 = L-elcmk ;/*将后面的元素依次前移*/aL last-;。o r e t u r n (TRUE);void main。/主函数 S e qL i st 1, *1 a ;in t p , q, r , k, j , m,
7、n u m ;L, i n t i , Elem T ype *e)/删除函数/*在顺序表L中删除第i个数据元素,并用指针参数e返回其值。i的合法 取值为 IWiW L. last+ 1 */ 0int k;。i f(iL-last+D) opr i ntf (删除位置不合法!n);。*retur n (ERROR);P r i ntf (请输入线性表的长度:”的scanf ( %d,& r );4. 1 a s t = r-1;a =&1;Inp u t (la, 1 a- last+1);Output (la);按内容查找元素叩r int f (请输入要查找的元素值:n“);s c a n
8、f (%d,& q );p=Lo c a te(L q);if (p = 1 )个ri nt f (在此线性表中没有该元素! n”);elseprintf(该元素在线性表中的位置为:%d n,p);/ /插入元素(在i处插入元素e)sprint f (请输入要插入的位置:n);scanf (d , & k );print f ( 请输入要插入的元素值:n);os can f (%d,&j);InsList ( 1 a, k, j) ;/调用插入函数。u tput (la);删除元素 删除第i个元素。pr i ntf(请输入需要删除的元素的位置:n ”);s c a nf (% d , & m)
9、;。D e 1 L i s t (1 a , m, &n u m);oprintfC删除成功,删除的元素为/d,num);pr i n t f ( n );O u tput (la) ; o)5.测试数据及结果C:UsersmypcDesktopVI3DDebugY.exe值:5素请输入要餐莪的片素值; CAUsersXmypcXDesktopVIJXDebugXY.exe请物入线性表的归度:7 请瑞入线桂表的客元素值:2 3 5 6 7 5 32. 3. 5, 6, 7, 5. 3,请输入要查找的元素值:2黯建献嘉鹘置为:13请输入要插入的元素值:902, 3,90, 5, 6, 7 5, 3.请输入需要删除的元素的位置:2删除成功,删除的元素为32.90. 5, 6, 7, 5, 3Press any key to continue实验总结:通过调试与测试,实验结果与测试预期一致。顺序表是在计算机内存中以数组的形 式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线 性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计 算机内存中一组地址连续的存储单元中。
限制150内