《2023年数据结构顺序表的查找实验报告.pdf》由会员分享,可在线阅读,更多相关《2023年数据结构顺序表的查找实验报告.pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、合照学浣HEFEI UNIVERSITY计算机科学与技术系实 验 报 告专业名称 计算机科学与技术_课程名称 数 据 结 构 _项目名称 顺序表查找_班 级_学 号_姓 名_同组人员_先_实验日期一、实验目的与规定:(简述本次实验规定达成的目的,涉及到的相关知识点,实验的具体规定。)(一)实验目的:应用顺序表来实现对数据的查找(二)实验规定:用顺序表实现对数据进行查找(三)实验环境:VC+6.0.二、实验内容#i nc 1 u de#in clude#in c 1 u d e#de f i n e E R R O R 0#d e f i n e O K 1#def i n e I N I T
2、_S I ZE 5#d e f i ne I N C R E M 5typed e f in t E lemT y p e;t yp e def struc t S q 1 ist E 1 emT ype*slist;i nt 1 e ngt h;int lists i z e;/*初始分派的顺序表长度*/*溢出时,顺序表长度的增量*/*定义表元素的类型*/*存储空间的基地址*/*顺序表的当前长度*/*当前分派的存储空间*/S qlist;i n t I nitL i s t _ s q(S q 1 ist*L);int C reateL i st_sq(S q 1 i s t*L,int n
3、);i n t L istin s e r t _s q(S qlist*L,int i,E 1 e m T y p ee);i nt P r i n tL is t _ sq(S qlist*L);int L istD e 1 ete_sq(S ql i st*L,int i);i n t L istL ocat e(S qli s t*L,E 1 emT ype e);/初始化顺序表int I nitL i s t _sq(S ql i s t*L)L s 1 ist=(E lemT ype*)mallo c(I N I T _S I ZE*s izeof(E1 emT ype);if(!
4、L-slis t)r e tur n E R R O R;L-1 e ngth=0;L-list s ize=INI T S I ZE;return O K;/*I nitL ist*/创建顺序表int C r e at e L ist_ s q(S q 1 ist*L,int n)E lem Ty p e e;i nt i;for(i=0;i n;i+)p r in t f(in p u t d a ta%d ,i+1);wprintf(:);s c a nf(%d,&e);i f(!L istlns e rt_ s q(L,i+1,e)re t urn E R R O R;)re t u
5、r n O K ;/*C re a teL is t*/*输出顺序表中的元素*/int P r in t L i st_ s q(S q 1 is t*L)i n t i;for(i=l;i 1 e ngth;i+)print f(%-5 d”,L-sl i s ti 1);p r i ntf(n );r e t u r n OK;/*P rin t L i s t*/在顺序表中插入i nt L i s t I n s ert_ s q(S q list*L,int i,E l e mT ype e)in t k;oi f(i L-1 e n g t h+1)r e tur n E R R O
6、 R ;if(L-1 e n g t h =L-1 ist s i z e)L-sli s t=(E l e m T y pe*)realloc(L-s 1 ist,。(I N I T _S I ZE+I N C R E M)*s izeof(E lemT y pe);i f(!L-s list)retu r n E R R O R;L-l i s t s i z e+=I N C R E M;f o r(k=L-1 e ngth-1 ;k =i-l;k)L-s li s tk+1 =k;L slisti-1 =e;L-1 eng t h+;return O K;/*L i stlnsert*
7、/*在顺序表中删除第i个元素*/int L is t D elete_ s q(S qlist*L,int i),int j;i f(L-1 ength 0)sprint f(顺序表为空!n);return E R R O R;el s e if(i L-length)P r i ntf(i 的参数犯错!n);retur n E R R O R ;6 els e(f o r(j=i ;j leng t h;j+)a L-slis t j-1 =L-slis t j;L-1 e ngth;return O K;/*在顺序表中查找指定值元素,返回其序号*/int L is t L o ca t e
8、(S qlist*L,E 1 e mT y p e e)int i,z=0 ;f or(i =0;i length;i+)if(L-sli s ti=e)s(。printf(查找的元素 d在 第 d位置n ,e,i+1);,z=1;/retur n O K;g0printf(没有查找到相应的数n);return E R R O R;/主函数int m a in()S ql i st s 1;in t n,i;E lemT yp e e;prin t f(请创建表,输入顺序表的元素个数:;/*输入顺序表的元素个数*/scanf(%d,&n);if(n 0)dp r i n t f(n 1 C r
9、ea t e S qli s t:n );I n i tL is t _sq(&sl);C r ea t eL i s t_sq(&sl,n);prin t f(n2 P rint S qlist:n);P r i n tL ist_ sq(&s 1);sy s t e m(c 1 s);elsep r intf(E R R O R );sprintf(-请选择操作方式-n )(pr i n t f C t 1 :查找 t 2:删除 t 3:输出表 t0:退出 n输入操作数:);oscanf(%d”,&n);while(n),print f(n 链表元素:n );P r i nt L i s
10、t_sq(&s 1);i f(n=1)叼r i ntf(n请输入想要查找的元素:);烟can f(%d,&e);o L istL ocate(&sl,e);o if(n=2)prin t f(n请输入想要删除元素的位置:);s c a n f(%d ,&i);o L i s tD elete_ s q(&s 1 ,i);g8 i f(n=3)4(prin t f(n 链表元素:n );4 P r intL ist_sq(&sl);)p r intf(t-请选择操作方式-);p r intf(,?t 1 :查 找t 2 :删除 t 0:退出 n输入操作数:);s canf(%d”,&n);retu r n 0;三、实验分析与小结(实验过程中的问题分析、产生的因素以及解决方法;实验结果分析;有待优化思绪)(一)实验结果截图1:查找输入操作数:一遹施择操作方式一2:删除 3:输出表0:退出1-查找输入操作数:彳一请选择操作方式一2:删除 3:输出表0=退出隆表元素:64 352 23 16 43 51请艇人想要查找的反素口6查找口 为 2 仔亦 一没有查找到相应的数E的元素1 6在 第4位置1:瓷找 2:删除输入碟作数:一请选择操作方式0:退出(二)总结通过顺序表数组元素的特点,我们可以对数据实现顺序查找。四、其它得 分(百分制)