2023年数据结构顺序表实验报告.pdf
洛阳理工学院实验报告系别计算机班级学号姓名课程名称数据结构实验日期1 0/23实验名称顺序表的基本操作成绩实验目的:熟悉掌握线性表顺序存储结构,掌握与应用顺序表的查找、插入、删除等基本操作算法,训练和提高结构化程序设计能力及程序调试能力。实验条件:计算机一台,V isu a l C+6.0实验内容:1 .问题描述以顺序表为存储结构实现以下基本操作:(1)在 第 i 个元素前插入一个新元素。(2)查找值为x的某个元素。若成功,给 出 x在表中的位置;不成功给出提醒信息。(3)删 除 第 i个元素,若成功,给出提醒信息并显示被删元素的值;不成功给出失败的提醒信息。2 .数据结构类型定义t y p e d e f s t r u c t E l e m T y p e e 1 e m L M A X SI Z E;I n t 1 a s t;S e q L i s t;3 .模块划分(1)创建顺序表输入函数:vo i d I n p u t (Se q L i s t *L,i n t n);(2)创建顺序表输出函数:v oid 0 u t p u t (S e q L i s t *L);创建顺序表的内容查找函数:i n t L o c a t e (S e q L i s t L ,E l e m T y p e e);(4)创建顺序表的插入函数:i n t I n s L i s t (S e q L i s t *L,i n t i,E 1 em T y p e e);(5)创建顺序表的删除函数:i n t D e l L i s t(S e q L i s t *L,i n t i,E l em T y p e *e);主 函 数:v o i d m a i n()4 .具体设计#i n c l u d e Si n e l u d e t t i n c l u d e#d e fi n e OK 1#d e fi n e E R R O R -1#d e f i n e T RU E 1#d e fi n e F A L S E 0#d e f i n e E l e m T y p e i n t#d e fi n e o M A X S I Z E 1 0 0 最大长度t y p e d e f s t r u c t 比 1 e m T y p e e l e m M A X SI Z E;i n t l a s t;Se q L i s t;v o i d I n p u t (S e q L i s t *L,i n t n)输入函数 i n t i;p r i n t f(请输入线性表的各元素值:n);f o r (i =0;i e l e m i );)vo i d Ou t p u t (Se q L i s t *L)输出函数 i n t i;fo r(i =0;i l a s t;i +)。p r i n t f(2 d,,L-e l e m i);p r i n t f(n );)i n t L o c a t e (Se q L i s t L,E l e m T y p e e)内容查找函数 o i n t i;i=0;w h i l e (i =L.l a s t)&(L.e 1 e m i )!=e)i+;i f(i =L.l a s t)r e t u r n(i+1);/返回序号e l s er e t u r n (-1 );i n t I n s L i s t (Se q L i s t *L,i n t i,E 1 e m T y p e e)/插入数据 i n t k;。i f(i L l a s t+2)/*一方面判断插入位置是否合法*/0 p r i n t f(“插入位置不合法 n);。r e t u r n (E RR 0 R);)i f(L-1 a s t =M A X SI Z E-1)。o p r i n t f(表已满无法插入”);o r e t u r n (E R R O R);)o fo r (k =L-1 a s t ;k =i-l ;k-)/为插入元素而移动位置 e l e m k+l=L-e l e m k ;o L -e l e m i-l =e ;第 i 个元素的下标为i -1L-l a s t+;o r e t u r n (OK);)i n t D e 1 L i s t (S e q L i s t *L ,i n t i ,E l e m T y p e *e)/册U 除函数/*在顺序表L中删除第i 个数据元素,并用指针参数e返回其值。i的合法取值为 i W i W L.l a s t+1 */i n t k;。i f(i L-l a s t+l)p r i n t f(删除位置不合法!n );r e t u r n (E RROR);)*e =L-e l e m i-1 ;/*将删除的元素存放到e所指向的变量中*/f o r (k=i;k l a s t;k +)L -e l e m k -1 =L-e l e m k ;/*将后面的元素依次前移*/。L -l a s t 一 一;匕o r e t u r n(T RU E);)vo i d m a i n。/主函数 S e q L i s t 1,*1 a ;o i n t p ,q,r ,k,j ,m,n u m ;P r i n t f(“请输入线性表的长度:);s c a n f(/d ,&r );1.1 a s t =r-l;1 a =&1;I n p u t (l a,1 a-l a s t+1);Ou t p u t (l a);/按内容查找元素P r i n t f(请输入要查找的元素值:n );o s c a n f(%d ,&q );p=L o c a t e (1,q);i f(p =1 )o p r i n t f(在此线性表中没有该元素!n );e l s ep r i n t f (该元素在线性表中的位置为:%d n”,p);/插 入 元 素(在 i 处插入元素e)o p r i n t f (请输入要插入的位置:n);s c a n f (%d ,&k );p r i n t f (请输入要插入的元素值:n);s s c a n f (%d,&j);In s L i s t (l a,k,j);/调用插入函数。0 u t p u t (l a);/删除元素 删除第i 个元素。P r i n t f(请输入需要删除的元素的位置:n );s c a n f (%d ,&m);D e 1 L i s t (1 a ,m,&n u m);o p r i n t f (删除成功,删除的元素为%d”,n u m);p r i n t f (n );0 u t p u t (l a);)5.测试数据及结果,C:UsersmypcDesktopVEDebugY.exe,请输入线性表的长度:5请输入线桂表的茗元素值:3 5 7 9 03 5 7 9 0请输入要叠装的完素值:C:UsersmypcDesktopVI3y5DebugY.exe*性表的一度:7桂表的答元素值:2 3 5 6 7 5 32,3,6.75.3,请输入要查找的元素值:2位置为常输入要插入的元素值:902.3,9 0,5_ 6,7,5.3,请输入需要删除的元素的位置:血除成功,删除的元素为32,9 0,5 6j.7,5,3,Press any key to cont inue实验总结:通过调试与测试,实验结果与测试预期一致。顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。