




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构实验报告实验序号:2实验项目名称:顺序表的实现学号姓名ZRZ专业、班级18计卓1班实验地点指导教师林仙丽实验时间2020.3.12实验口的及要求1. 掌握线性表的顺序存储类型;2. 熟练掌握顺序表的基本操作和具体的函数实现。二、实验设备(环境)及要求微型计算机;windows操作系统:Microsoft Visual Studio 6.0 集成开发环境。三、实验内容与步骤1. 设A、B均为用数组实现的List类型的有序顺序表,试设计一个函数 Alternate,从A、B读取值,构件数组C,使得C的值也有序。要求:用不同的方式实现(至少两种),并比较算法的效率。2. 顺序表表示和实现线性
2、表的如下:# define LIST.INIT.SIZE 10# define LISTINCREMENT 5typedef struct ElemType *elem;int length ;int ListSize; sqlist;int InitList_sq(sqlist *1) /*initial the list 1*/l->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType);if (!l->elem)printf("无法分配空间); return 1;else1->length二0;1-Lis
3、tSize二LIST_INIT_SIZE;printf("ok");return 0;void mainOsqlist L;InitList_sq(&L);【要求】1)、实现顺序表的插入、删除、按值查找等基本操作;2)、假设构建的是非递增有序顺序表,设讣算法实现从该有序顺序表中删除所有 其值重复的元素,使得表中所有元素的值均不同。3.设有一元素为整数的线性表L=(al,a2, a3,-,an),存放在一维数组AN中, 设计一个算法,以表中an作为参考元素,将该表分为左、右两部分,其中左半部分 每个元素小于等于an,右半部分每个元素都大于an, an位于分界位置上(要
4、求结 果仍存放在A中)。4.分析以上算法的时间复朵性。四、实验结果与数据处理1.设A、B均为用数组实现的List类型的有序顺序表,试设计一个函数Alternate,从A、B读取值,构件数组C,使得C的值也有序。要求:用不同的方式实现(至少两种),并比较算法的效率。(1)运行结果:CB C:lbe*$506i6De$kxopKi3C*exe-OX|1创建个顺庁农 2.10历顺疔駁3.通过卜标获取尤余S. “找耍伍询的尤余的卜杯5.辿过卜标插入元余 6.通过卜标制碗个尤水7.获収顺仔农的匕哎&別陰所仃尤為 9.刿斯够圧&昱否为临10.刿斯顺用衣绘育满11.根用澈朋別陰卩点12.化头
5、部插入圾据13. 6:头部制離效撇14.柏财灿15. *1? ?;:1序输川16.合丿吶令有序的顺序右、'输出(合并17.合并两个仃了的顺序农井排序出(合并时川庁)18附尬巫St元倉冷;折宦尤聿20. AN ?lt0. ULihimff 个探作:16 讷辎入A顺片农的的个数3 请输入笫1个审点元水:1 诂,输入第2个竹点兀素:3 陥输入第3个M点尤盘5 讷治入B顺片农的的个毅3 请输入第4个佩.(尤水:2 讥输入第S个打点元素:4協输入第6个1V.CDU?: 6第1个尤余的Ifll 第2个兀盘的值绘2 第3个尤素的侑经3 第4个尤貳的値是4 第5个尤黑的伉是5 協6个元朮的他足6 请选
6、择个找作:图1:先合并之后再排序SB C:U$er$5O6i 6De$ktopKRC* *«»»DebugC-* *®«.exe-OX1创建个瓯丫衣 2.遍历顺庁农 3.通过i:标获取元余4.代找耍件询的尤余的卜标 5.通过|也:插入尤余 6.通过卜标删除个元余7.获取颠庁衣的长度 S. WllK/r兀素 9.判斯順用左足否为空10.刿斯顺於农足拧漏11根据数抵删除廿点 12. rt:头潯桶入数«14. /i.l . . 加人他n13.版庁农川亡汗输出16."并两个仃庁的顺疔农并排庁输卄1.:1:17. QMm 的耐发并川疗
7、勁1弟:井时排疔)18. WK19.剧除氏更兀素(描逵丘;KJ2O.AM/if分爪0. U:l!诂选开个揉作:17请输入A顺序农的的个故3 诃输入第1个“点尤水:2 请输入第2卜卄点尤盍:4 请输入第8个廿点尤素:6 讷输入B颛山农的的个敎3 请输入第1个卩点尤逢:1 请输入第2个卄点元素:3 UJ输入第3个WZUt: 5 第1个元余的値楚1 第2个尤余的怔足2 第3个尤素的伍眶3 第4个尤素的血足4 第5个元余的伉虫5 第6个尤余的W(足6 请选齐个操低:图2:合并时排序(2)问题分析:在这一问题中,A顺序表和B顺序表的合并方法可以分为先将这两个顺序表合 并后排序或者在输入时就对其进行比较元
8、素大小排序。这里第一种方法,因为上 一次实验学习过了快速排序,所以这一次我釆用了另一种方法一一希尔排序,希 尔排序法是对直接插入排序法的优化,通过设置一个增量,对原始序列进行分组, 对每组用直接插入排序法排序再整合,再缩小增量,周而复始直至增量为1,完 成排序,因此乂叫“缩小增量排序法”。希尔排序的算法性能在面对大量数据时 会高于快速排序,它的平均时间复杂度为n*log2n,整体范圉为(1.32)之间。 笫二种方法是我们在输入时就对新顺序表进行排序,在输入A顺序表的时候我们 正常接收数据,而在输入B顺序表时,我们通过遍历一次当前顺序表同时结合插 入数据函数来将B顺序表输入的数据放到正确的位置上
9、,来使整个顺序表能够有 序,整体时间复杂度为2左右,可见第一种方法的算法效率会更高一些。2.顺序表表示和实现线性表的如下:【要求】(1)实现顺序表的插入、删除、按值查找等基本操作;(2)假设构建的是非递增有序顺序表,设计算法实现从该有序顺序表中删除所 有其值重复的元素,使得表中所有元素的值均不同。(3)设有一元素为整数的线性表L=(al, a2, a3,an),存放在一维数组AN中, 设计一个算法,以表中an作为参考元素,将该表分为左、右两部分,其中左半部分 每个元素小于等于an,右半部分每个元素都大于an, an位于分界位置上(要求结 果仍存放在AM中)。(4)分析以上算法的时间复杂性。(1
10、)运行结果:1 创建个Wf'ii 2. itiWWf-it 3迪过卜林获収兀索4盒找嘤任呦的尤素的卜标 5.通过卜标插入尤盘6.迪过卜标剧尬令尤素7获IU顺用衣的X度 & 0H除斯尤養 9.网断除用&於否为空10.判断和序农乂否倆 11.除步点12.任头滦插入故据13.任头部|除14在顺序衣1ft后抽入数#1 15. MS序表排序后输出16.合并硕个们"的顺序衣井抑?«1岀(合并完再卅)17.合并朗个有序的颠序左井卿”输出(合井时排序)18.制除飯复元索(所有) 19 删陰权女尤4U折足兀為)20A【NAUi分htO.iHsll个»fl=:
11、 1讷辂入顺庁农的元余个敌:5 请输入第1个审点元冰:1 诸做入第2个节点元点:2 请输入第3个打点元素:3 请输入弟4个W点元素:4 请输入第5个代点尤盎5-个採作:5请张入礎捕入的数抠的位5E: 4诂输入咚插入的数抠:4 请远择个標作:2 第1个尤余的值是】 第2个尤余的仪定2 第3个尤素的伍址3 第4令尤盘的侑聚4 第5个兀薦的侑览4 第6个尤余的值足5 请M 个揀作:图3:通过下标插入元素ca CAU$w506i6De$ktopK©C * *fc»«DebugC * *«®.exe-OX1创it个迩&& 2刃历顺戸农 3
12、妞过卜杯贷取兀廉4.代找耍代询的尤余的卜标5.通过卜林插入尤藏 6.通过卜标创除个尤倉7.获取顺疗农的长度 8.谢除所仃无娛 9.刈斷頫庁仪足恋为空10.刿断顺片&是否満 11.根据数据删除步点 12件久汎插入数据心塔刈险徭据14任时:插人圾别 15.16 仟并两个仃”:的、iMQHII"豹:HI) 1.;时 IIHH 1&讯1;7 -19.附除朮變元倉(描定元余)20. AN左右分卅0.退山W1SW 个操作:1谄输入顺疔农的朮水个数:5 诂怡入小1个"点尤素:1 试输入第2个竹点元素:2 请辂入小3个廿点兀盘3 请输入第4个节点元余:4 诚输入第5个卩点元
13、札5 诸选斤个找作:12 请输入耍&头液插入的数期:0 谄选样个搂件:2 第1个尤盘的他是0 第2个尤余的们处1 第3个元术的他悬2 第4个尤素的低耀3 第5个尤素的值址4 第6个元余的値圧5个操作:图4:在头部插入元素CB C:U$er$506i6XDe$ktopKaC* *e»«DetxjgC* exe-OX1.创建一个瞅庠茨 2.珈丿丿jJtt序农 3.遇过卜杯优取冗索4代找耍"询的尤余的卜标5.辿过F标插入元京 6.辿过标1H险个元水7.状収顿序衣的长农 8.删陰新仃九坯9.判斯顺疗&足否为空10.刿斯厳i片:农恳疔满 11.根批毅据(M隐
14、仃亢12.件头常:插入圾据13化头滦删除数於14.化顺序&眾H插入散据15妝用衣持序后输出16.合并两个竹序的顺序表井排序输出(合并充再舶17.合斧两个右序的顺序表井排序输出(合并时川庁)18.附除亟复元索(W有19.谢除咆奴尤软折定元J2O.AOT7U/分肚0.龙出请选择个按作:1请输入厳i用农的尤索个数:5谧输入第1个节点尤緊:1讷输入第2个攸5检2请输入第3个节点尤船3佛输入第4个竹点元素:4佛输入第S个打点尤素:5请选择个««:: 14讷输入耍任虑加插入的Oi: 6诸选捋个採作:2第1个尤盘的值雄】第2卜尤索的偵是2第3个尤水的雌3第4个元余的位是4第$个兀
15、素的们珪5第6Q尤索的值绘6请选捋个ftit:图5:在尾部插入元素图6:删除指定下标元素图7:删除所有元素I GB CAU$er$506i6De$l«0pK©C * *ft»«DebugC 4 iito«.exe-OX1创建个呗f农 1WWO卜杯获取尤倉4代找耍住询的尤余的卜杯 5.通过卜标插入尤水 6.通过卜标MJ除个尤水7获取顺序农的长哎 8.删徐所存元水 9.刈断頫用A足恋为空10.刿惭顺心&昱告滿 11.楓抠圾拥删除仃点12比头潯插入数据13.任头滋删除敢抓 14.任烦,字E眾林插入效别 15顺仔&州"话轴出1
16、6. a井两个仔用的顺圧农并扌II仔埔出(介并左再理)17.介井两个台圧的甌用衣并m用输也(介井时m 18.删除朮爰尤董(所台19. IH除碇址元倉(折定尤倉)20. AX好右分tt0.退川讷迭捋个操作:1 i靑输入颖心衣的尤素个效:5 请输入第1个廿点尤素:1 请输入第2个*点元素:2 诡箱入範3个卩点尤盘3 讹输入第4个审点元盘:4 昭输入第5个兀点元船5 応选样个抹作:11 请输入婆制阶的数尿:1 请选样个操作:2 第个元集的值层2 第2个尤素的值£3 第36尤素的值定4 第4个尤累的1fil5 WiStt 个操作:图8:删除指定元素QB C lKzs506i6DeMaop 代
17、円C_ 噸序册Detxjg'C醱胪-X(1 Ah .Xx|x9 xj 11 *代找耍金询的尤倉的卞标帧!亍农3.通过卜标获取九貳5.辿过F标插入元索6.通过r、标1H险个尤倉.获収仙"&的长哎 &HWI唯听冇元就 9.刿断顺心&定MAri* 1 o 刿斯11.根抵数拥別除仃点12. /E.Wi入取据3住浜部谢臨敢卅 14. (.帧斥农试甘插人敢號15.照斥农洋序后输出牛两个有序的顺序表井炸序能出(令并宝钿 i7.fr并网个们”的时农井捋序输出(合并时排序)18. H除至乂元索(W有9.甬篠收文上& 指定无4020.AIM左右分ht0.退出Y选择
18、个操作:1mx顺序浪的元索个数:5 ?输入第1个眦5余:1 於入第2个山工尤余:2 3输入第3个也"元素:3 竽输入第4个“点尤素:4 能入第5个“恵尤检5 VIS择一个操作:13 竽选捋个操作:2 弘个尤耒的伍足2 R2个尤累的備是3 归个尤余的仪是4 闊令尤求常J値绘5 3选样个操作:图9:删除头元素BH C:Uqrs506i6DeWop代丽狈Debug'C” 的FR.exQ-OX|1 创匹个顺用农 2电历顒厲衣 3日过卜怀获取尤戒4.代找芟代询的元余的卜标 5.通过卜杯插入尤余 6.通过卜标删除个元倉7.获収顾厲A的氏反8.捌隐所仃尤翕 9.判斷顺序农处否为空10.判斯
19、顺序©址否满11.根据故据剧隐“点 12任头汎描入数据13. “头部制陰奴据 】4件嵋用氐AH;描入数据 15頃心QIM后输出16.合并两介令仔的噸序左并排用输岀(介并完卩井紂17.合并两个仏字的航用农并排序输出(合并ll-mr?) 18.射給K址尤歳(所们19.删险碗奴元余(描宜元余)20. AN左肯分城0.退出谄选抒个操作:1谄输入顾&农的元水个数:5协输入笫1介竹点元素:1诜煽入笫2个仃点疋盘:2iff輪入第3个"点元養:3谄输入第4个宜点元盍:4说输入第5个审点尤逢:5诱选择个掾作:3谄檢入将JK获双元洪的F»: 1ifti&W 个操作:图
20、10:按下标查找元素1.创崔一个顺殍渋 2.遍历顺序农 3. Jfflil卜标茨取尤武4.代找菱住询的尤倉的F标 5.通过F标插入元余6.通过F标BH险个尤余7.症取呗WZ的长哎 8.別陰所有尤水 9.刿断顺序衣足否为空10.刈浙蹟乍左足皙湎11.根据数据删除"点12.在头部插入取押13.化头部別隐效您14.住敵用駁域卅插AW 15.卿花排仔丽输出0.退出16.合井两个有序的噸庁农并排序撤|(合井完再排17.合并两个右序的顺序农井卅序输出(合并时排W)18.劇险电攵尤余(所右)】9.釧沧晅蚁尤余備定元余2O.AN左右分肚说选择个探作:1bflf hH) |r、4 |r、4unf un
21、i入順庁去的尤盘个数:5入第1个Wt«: 1入第2个筋点尤紀2入湘个巧点兀紀3入第4个廿点/£«: 4入笫5个竹*尤盘:5择个操作:4wax柠菱査找元歳的仕1该元我的卜栋为:iiff&ff 个操作:图11:按元素查找元素下标CB C:Users506i6DesktopttaC*exe-OX(2)运行结果:1.2.谢"J肋J"农 3.地灯卜怀状取兀京4.代找耍伍询的尤余的卜标 5.辿过卜标插入尤倉 6.通过F标JH险个尤点 工荧収顺序农的长哎 8.別除所仃尤倉 9.刿斷顺用&迭恋为空10.対斯顺用衣足否滿11. «
22、71;<»据別陆仃点12.住头部插入圾据13住头就別矗数据 14.化顺心农眾M插入数抵 15.致用农打"右输出16.會并两/、仔用的撅斥农并朴圧伶出(介并左帕ID17.介并两个仔片:的顺圧农井幵斥输岀(介并时川序)1&附险朮复元養(所旳19.BH除晅奴尤倉佛定元)20.ACNJ左石分尿0.退出讷迭悴个掾作:1i百输入厳i学农的尤素个敢:5 喑输入1个山工尤素:1 请输入那2个廿点尤紀1 请输入第3个前点尤銘1 讷输入第4个誓点尤盒2 谄输入第5个“負尤素:2 Witft 个操作:18 请选斤个操作:2 第1个尤余的位是1 第2个尤第的他足2 请选样个找佯:图1
23、2:删除所有重复元素(集合)31 CAU$er$5O6i6De$ktoptti©C* *lfe»»DebugXC-* *ft»«?.exe-OX'> | ?* 个什 17 & 2. J7j W1 * * ?< 3 aQj J 卜(丿 A*4.代找要便询的元蜕的I也:5.通过卜标插入尤余' 6通过卜标8H除个元澈二获収顺疗A的长友8.附碗所仃尤余 9.判断顺W农是否为空10.刿期顺疗衣绘否満11.根据数厳/除廿点12.任头部插入数据113花头制除敢据14.圧瓯庠去试卅插入数於 15顺序却钊仆;输;II16.合并
24、两个有金gI®学去井排仔输甬(合井17.介并两个右用的顺仔&井加織3岀(合并时HU?)1&制除敢災元素(所有)19.谢除示&元余備定元余)20. AN/.-:/: ;>»0.退山诡逸择个悚作:1请输入顺腭衣的元索个数:5 请输入第1个打点兄素:1 请冷入第2个节点尤素:1 请输入第3个"点元素:1 请输入笫4个¥点元銘2 请输入第5个*点元农:2 i泌择个按作:19 请输入OJK:的改戏尤索:1 请选择个操他2 第1个元汰的値是1 第2个尤余的値是2 第3个元素的値足2 吻选择个操作:图13:删除指定元素的所有重复元素CO
25、C:Users5O616Deiktop代码C KMW£>ebugC KUl.exe X(3)运行结果:JTEJ2 个顺序展 ofiwrrTi 3.边过f杯获取尤索4伍找5S件询餡朮案的FU; 5.通过卜标插入尤盘 6.迪过卜标剜除个尤素7.获以频丫农的长反&谢除所仃尤取9.列制顷序农址件为吃】0.刈断规疔花足否滿11.檢据敌JW8H险巧点12.任浜滦插入故据13.在头部删除数搦 14.在顒爭仪址后插入数据 15顺?«»序后输出16.合并两个如孑购W(序去井排字输;II (合并充再撐)17.合井两个们F的JK序茨井删细岀(合并时推庠)18. BH除Mi
26、(元囊(所如 19制除改复尤為佈建尤盘)2O.AN/£/i分lit0. iil:H诫选择个掾作:1诜输入畋序仪的元倉个敌:5说繡入笫1个疔点元余:3蔚输入第2个竹点尤毅:5iff输入第$个“点元索:1谄输入第4个前点元倉:6谄输入第5个筋虫朮余:4诸选样个按作:201个疋我的値足3第2个尤我的備肚1第3个尤倉的6W4第4个尤素的值足65个尤歳的值足5i/fiiff 个操作:图14: AN左右分量(4)算法时间复杂度分析:大部分的增删查的算法时间复杂度都为0 (n)级别,原理都是遍历一次顺 疗;表找到相应元素并对其进行操作,在删除所有重复元素时,我釆用了比较暴力 的二重循环,时间复杂度
27、较高为0 (n)级别。而在进行对AN分左右边界时我 用了分治的思想,同时从左右两边进行遍历,交换那些不在所应该在的边界的值, 所以算法时间复杂度应该低于0 (n)级别。五、分析与讨论通过这一次实验我熟悉了顺序表的各种操作,同时也增加对顺序表的理解, 更加能明口顺序存储结构的原理,同时在对程序优化的过程中也学会了其他一些 算法,能够让程序的执行效率更高,也能适应各种情况,而我也明口了算法对于 一个程序的重要性。五、教师评语成绩签名:日期:附源程序清单:lx 2Sinelude<iostream>Sinclude<algorithm>using namespace std;
28、constexpr auto MAXSIZE = 10;#define Node ElemTypetypedef int DataType;class Nodepublic:DataType data;class SqListpublic:SqList ();“SqList ();void CreateSqList(int n);void PrintSqList ();ElemType GetElemBylndex(int i);bool isEmpty0;bool isFull0:int GetLengthO ;int GetE1emByE1em(DataType data);void In
29、sertSqList(int n, DataType data); void InsertSqListAtHead(DataType data);void InsertSqListAtEnd(DataType data); void DeleteElem(int i);void DeleteElemAtElem(DataT;pe data); void DeleteAll ();void DeleteAtHeadO ;void Sort 0:void CombineSort1();void CombineSort2():void DelsameEleml();void DelsameElem2
30、(DataType data);void DivElemO ;private:Node* elem;int length;SqList : : SqList ()elem = new ElemType 31AXSI2EZ: if (!elem) exit(OVERFLOW);length = 0;SqList::、SqList()delete elem;void SqList:CreateSqList(int n)if (n < 0 n > MAXSIZE) cout « "输入的节点个数有误!" « endl; exit(EXIT_FAIL
31、URE);else int i;for (i = 0; i < n; i+) cout « "请输入第« i + 1 « "个节点元素:" cin >> elemidata;length = n;J void SqList:PrintSqList 0for (int i = 0; i < length; 十)cout "第" i 十 1 << "个元索的值是"« elemi. data Q endl;ElemType Sqlist::GetElemB
32、yIndex(int i)if (i < 1 !I i > length) cout « "査询的卜标不存在"endl;else return elemi - 1;bool SqList:isEmpty()if (length = 0)return true;return false: bool SqList:isFull()if (length = MAXSIZE)return true;return false:int SqList: :GetLengthOreturn length;int SqList: :GetElemByElem(DataT
33、T?e data)int i;for (i = 0; i < length; i-+) if (elem && elemliZ.data = data) return i + 1;if (i = length - 1) return T;void SqList:InsertSqList(int i, DataType data)if (i<l | i > length + 1) cout"输入的卜标不合法"endl;else if (length > MAXSIZE) cout"己经达到最大长嗖“endl;elsefor (
34、int j = length - 1; j >= i - 1; j) elemij + 1 = elemj;elemi - 1data = data;length+; void SqList:InsertSqListAtHead(DataType data)for (int i = length - 1; i >= 0; i) elemi + 1: = elemi;elem.Odata = data;length十十; void SqList:InsertSqListAtEnd(DataType data) if (length > MAXSIZE) cout «
35、"己经达到最大长嗖endl;elseelemlengthdata = data; length+;void SqList:DeleteElem(int i)int j;if (i<l j i>length)cout"输入的卜标不合法"endl;elsefor (j = i; j <= length - 1; j+) elemLj " 1 = elemj:length;void SqList:DeleteElemAtElem(DataType data)int i = 0;while (elemiZ.data != data &&
36、amp; i < length)十;for (int index = i; index <= length 一 1; index十十)elemindex = elemindex + 1;length; void SqList:DeleteAll()for (int i = length; i > 0; i) elemi = elemi - 1; length;J void SqList:DeleteAtHeadOfor (int i = 1; i <= length 一 1; i+十)elemi - 1 = elemi;length;void SqList:Sort()
37、int i, j, gap;for (gap = length / 2; gap > 0; gap /= 2)for (i = 0; i < length; i+十)for (j = i - gap; j >= 0; j -= gap)if (elem.ij.data > elern.j.data)break;int temp = elemidata;for (int k = i; k > j; k -= gap)elemkdata = elemk 一 gapdata; elem.j + gapdata = temp;PrintSqListO ;void SqLi
38、st:CombineSort1 ()int n;cout « "谙输入A顺序表的的个数";cin >> n;if (n < 0) cout « "输入的节点个数有误!" « endl;exit(EXIT.FAILURE);else int i;for (i = 0; i < n; i+) cout « "请输入第"« i + 1 « "个节点元素: cin elemi data;length = n;cout « "诘输入
39、B顺序表的的个数";cin > n;if (n < 0) cout « "输入的节点个数有误!" « endl;exit(EXIT.FAILURE);else int i;for (i = length; i < lengthen; i+) cout « "请输入第"<< i + 1 « "个节点元索: cin >> elemidata;length = length + n;Sort 0 ;void SqList:CombineSort2 ()int
40、n;cout « "请输入A顺序表的的个数";cin >> n;if (n < 0) cout « "输入的节点个数有误广« endl; exit(EXIT_FAILURE);else for (int i = 0; i < n; i+) cout « "请输入第"<< i + 1 « "个节点元素: cin >> elemidata;length = n;cout « "请输入B顺序表的的个数";cin &
41、gt; n;if (n < 0) cout « "输入的节点个数有误!" « endl;exit(EXIT.FAILURE);else DataType temp;for (int i = 0; i < n; 十) cout « "请输入第"<< i + 1 << "个节点元索: cin >> temp;for (int j = 0; j < GetLengthO ; j卄)if (temp <= elem.j.data)InsertSqList(j+l,
42、 temp); goto 1;InsertSqListAtEnd(temp);1:;PrintSqListO ;void SqList:DelsameEleml()int j = 1, i = 0, len = 1;while (j < length)for (i = 0; i < len; +i)if (elemidata = elemjdata) break;if (i = len)elem_len+data = elemj+data;elsej+;length = len;void SqList:DelsameElem2(DataType data)int k = -1;bo
43、ol flag = true;for (int i = 0; i < length; 十)if (elemli'.data != data)k+;elem.k data = elemij .data;elseif (flag)k+十;elemkdata = elemidata;flag = false;length = k + 1;void SqList:DivElemOswap(elemlength/2 data, elem.length"" 1 data);int i = 0, j = length-1;do while (elemidata < e
44、lemllength / 2data) i+;while (elemjdata > elem.length / 2data) j;swap(elemi data, elemj data);i+;L; while (i <= j);PrintSqListO ;int mainOSqList 1;int i;cout « "1.创建一个顺序表2.遍历顺序表3.通过卜标获取兀索54.查找要查询的元素的卜标5.通过卞标插入元素6.通过卜标删除一个元素n7.获取顺序表的长度 8.删除所有元素9.判断顺序表是否为空nl0.判断顺序表是否满11.根据数据删除廿点12.在头部插
45、入数据nl3.在头部删除数据14.在顺序表最后插入数据15.顺序表排序后输出nl6.合并两个有序的顺序表并排序输出(合并完再排)17.合并两个有序的顺序表并排用输出(合并时排序)18.删除重复元索 (所有nl9.删除重复元索(指疋兀索)20. AN左右分量0.退出"« endl;docout « "请选择一个操作:";cin i;switch (i) case 1:int n;cout « "谙输入顺序表的元素个数:”、cin >> n;1 CreateSqList (n);break;case 2:1 PrintSqList ();break;case 3:int index;cout « "请输入将要获取元素的卜标:&quo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CIQA 89-2024农村电商运营职业能力培养与评价规范
- T/CACE 0132-2024改性磷石膏混合料填筑应用技术规程
- T/CI 465-2024质量分级及“领跑者”评价要求多晶硅
- 商品砼运输承包合同10篇
- 幼儿园园长授权责任协议书9篇
- 食堂规范化整治项目施工合同3篇
- 农村转让土地的合同3篇
- 2025年温州市商品销售合同4篇
- 履约担保委托保证合同律师拟定版本5篇
- 绿化运营维护合同5篇
- 电磁场与电磁波电磁波的辐射
- 四羊方尊专题知识
- 【教案】 电源与电流 教学设计 -2022-2023学年高二上学期物理人教版(2019)必修第三册
- GB/T 40805-2021铸钢件交货验收通用技术条件
- GB 18401-2003国家纺织产品基本安全技术规范
- 《科研创新实践》课程教学大纲
- 报价单模板及范文(通用十二篇)
- 开发票申请单
- 五年级异分母分数加减法第一课时课件
- 学校食堂操作流程图
- 篮球比赛记录表(CBA专用)
评论
0/150
提交评论