顺序表的初始化及基本操作_第1页
顺序表的初始化及基本操作_第2页
顺序表的初始化及基本操作_第3页
顺序表的初始化及基本操作_第4页
顺序表的初始化及基本操作_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2#defineLIST_INIT_SIZE1建立一个线性表\n");printf("\t\t||b.查找线性表中第i个元素\n");printf("\t\t||c.在线性表中第i个位置插入一个元素\n");printf("\t\t||d.删除在线性表中第i个位置的元素\n");printf("\t\t||e.输出线性表中的所有元素#defineTRUE1\n");II||||||||\n");printf("\t\t\t请输入您的选择功能的序号(a-e):");c=getchar();printf("\n");printf("\n");}while(c<'a'||c>'e');return(c-'a');//返回选择}typedefstructintlength;〃当前长度intlength;〃当前长度//存储空间基址if(!returnERROR;//存储分配失败=0;//空表长度为0=LIST_INIT_SIZE;//初始存储容量printf("请输入线性表的元素的个数:printf("请输入线性表的元素的个数:");scanf("%d",&n);for(i=0;i<n;i++)//读入元素=n;scanf("%d",&[i]);returnOK;Statusabc(SqList&L)〃输出线性表中所有元素inti;if(!returnERROR;//存储分配失败=0;//空表长度为0=LIST_INIT_SIZE;//初始存储容量printf("请输入线性表的元素的个数:printf("请输入线性表的元素的个数:");scanf("%d",&n);for(i=0;i<n;i++)//读入元素=n;scanf("%d",&[i]);returnOK;Statusabc(SqList&L)〃输出线性表中所有元素inti;for(i=0;i<;i++)〃输出线性表中所有元素〃利用循环输出元素〃利用循环输出元素intlistsize;//当前分配的存储容量(以sizeof(ElemType)为单位)}SqList;SqListL;StatusInitList_Sq(SqList&L)//构造一个新的线性表L。{inti,n;=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));printf("%d",[i]);returnOK;voidLocateElem_Sq(SqListL,ElemTypee)//查找线性表中的元素{inti=0;ElemType*p;P=;while((i<=&&(*p!=e))//依次比较{*p++,i++;}if(i<=printf("元素%d在表中第%d个位置!\n",e,i+1);elseprintf("表中没有元素%d!\n",e);}StatusListInsert_Sq(SqList&L,inti,ElemTypee)//在线性表L中插入新的元素e{ElemType*p;int*newbase;if(i<1||i>+1)returnERROR;if>={//当前存储空间已满,增加容量ElemType*newbase=(ElemType*)realloc,+LINSTINCREMENT)*sizeof(ElemType));if(!newbase)returnERROR;//存储分配失败=newbase;//新基址+=LINSTINCREMENT;//增加存储容量//q为插入位置for(p=&[]);p>=q;--p)*(p+1)=*p;//插入位置及之后的元素右移*q=e;//插入e++;//表长增1returnOK;}StatusListDelete_Sq(SqList&L,inti,ElemType&e)//在顺序线性表L中删除第i个元素,并用e返回其值。{ElemType*p,*q;if(i<1||i>returnERROR;//i值不合法p=&[i-1]);//p为被删除元素的位置e=*p;//被删除元素的值赋给eq=+;//表尾元素的位置for(++p;p<=q;++p)*(p-1)=*p;//被删除元素之后的元素左移;//表长减1returnOK;}voidmain()//主函数{intn=0,a,e,i;for(;;){switch(menu_select())〃菜单选择switch(menu_select())〃菜单选择{case0:printf("\t\t*************建立一个线性表****************\n");InitList_Sq(L);〃建立新表system("pause");break;case1:printf("\t\t*************查找一个元素*************\n");printf("输入要查找的元素:\n");scanf("%d",&e);LocateElem_Sq(L,e);//查找元素system("pause");break;case2:printf("\t\t***************插入一个元素****************\n");printf("输入要插入的元素:\n");scanf("%d",&e);printf("输入要插入的位置:\n");scanf("%d",&i);ListInsert_Sq(L,i,e);//插入新元素printf("\t\t\t");system("pause");break;case3:printf("\t\t*********删除一个元素*************\n");printf("输入要删除的元素:\n");scanf("%d",&e);printf("输入要删除元素的位置:\n");scanf("%d",&i);ListDelete_Sq(L,i,e);〃删除元素printf("\t\t\t");system("pause");break;case4:printf("\t\t*************输出线性表****************\n");abc(L);〃输出线性表system("pause");break;case5:printf("\t\t谢谢使用\n");printf("\t\t\tHaveaGoodLuck,Bye-bye!\n");printf("\t\t\t");system("pause");exit(0);}}}菜单选择:LH素元素个元一的Aw_^Ms一曾个*"二二二>e-a,L号,:!有序找表第i-"中的;查性中急中*功sti-择表个性毒性一一选性一si-的阳立曩借一一E.±二H-K-二官i在黑为一一i一一一一请二二二二二建立新表:二二二二二二二二二二二二二二二除删素元主个一*„„„„曹个可\rl-2•!年„山膏一一的.„LLL*找表第G中的*t查性-EW功黑表中性表一一译表个性靠性".性一线性w*噬立曩借一一您二-划XX制二ilnr.二琨*ahcde二二二二二二二二4LTJX选4M二二二二共建立一个线性表请输入线性表的元素的个数:41234请按任意键继续…'GAProgramFiles\MicrosaftVisualStudio\MyProjects\563S\Debg\5&33.exe‘*二二二二二二二二

*二二二二二二二二

二二二二二

除.

删素个一一的*am幅理序&-

A

(一曹个ri号找表第y中的

查性中虞中功

曩表中性表一兵

表个性睿性一一选

性一璧萼萝一一您

mi

= =请

Xabodes

二二

二二

二二

二二

二 II二

*:::二的

LK_

4日查找一个元素输入要查找的元素=查找元素:插入一个新元素:T'C:\PrograrriFiles\Microso+tVisjalStudio\MyPrDjiec±5\5633\Debug\56S3.exe‘二

,

二二

,

删A

cn-r

fe素

元素LI.一匚一西直个*"二二U二C

e-

a

C找表第y巾的F

查性-EW功

改表中纂HS

表个性毒性一一

线V整傍-您"H-K_

二甘二

二二

二建查在黑X

一-请

ahcde二二二

二—XMHXMHXM—MM:X垢切AT~』I专XNJOCNJCNNJCNNJCKNNN输入要插入的元素:'氟\要插入的位置:请按任意键继续.插入元素后线性表:二"二二二二*龄删Ar-3插素元主个一-的一曾个关.eyxe-a卷号¥有右序蕾一"的・M匕匕M4目找表第i<中的查性中藁中*功黑表中性表一"择表个性睿性古选性一线性雷备戡立蓼傍一"您iX青f;;2二:KHKJCHKJCHKJCHKJCHKJC输出线性表12734请按任意谜继续——删除一个元素:*C:\ProgramFilles\MicrosoftVisualStudio\MyProjects\5638\Debug\5638aexe"素元素个元-的一*d二・・,二>孚二<e-a,1.号找表第/中的1查性中囊中一一功表中性表一一择表〈性毒性总性-线性免」璧曩唇一一您二._:-划二期二青旧;cdLi""二二„LK_„育4『的二二二二二二二xkxxkxxxkJJ}||除_个元素.输入要删除的元素:翥入要删除元素的位置:删除元素后线性表:[3'C:\ProgramFi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论