数据结构顺序表的初始化,插入删除,取数据元素,查找遍历,顺序表的长度.docx

上传人:小飞机 文档编号:3560167 上传时间:2023-03-13 格式:DOCX 页数:9 大小:38KB
返回 下载 相关 举报
数据结构顺序表的初始化,插入删除,取数据元素,查找遍历,顺序表的长度.docx_第1页
第1页 / 共9页
数据结构顺序表的初始化,插入删除,取数据元素,查找遍历,顺序表的长度.docx_第2页
第2页 / 共9页
数据结构顺序表的初始化,插入删除,取数据元素,查找遍历,顺序表的长度.docx_第3页
第3页 / 共9页
数据结构顺序表的初始化,插入删除,取数据元素,查找遍历,顺序表的长度.docx_第4页
第4页 / 共9页
数据结构顺序表的初始化,插入删除,取数据元素,查找遍历,顺序表的长度.docx_第5页
第5页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《数据结构顺序表的初始化,插入删除,取数据元素,查找遍历,顺序表的长度.docx》由会员分享,可在线阅读,更多相关《数据结构顺序表的初始化,插入删除,取数据元素,查找遍历,顺序表的长度.docx(9页珍藏版)》请在三一办公上搜索。

1、数据结构顺序表的初始化,插入删除,取数据元素,查找遍历,顺序表的长度#include<stdio.h>#include<stdlib.h>#define NULL 0#define MAXSIZE 1024/*顺序表可能的最大长度,假设为1024 */typedef int elemtype;/*elemtype可为任意类型,假设为int型 */typedef struct sequlistelemtype dataMAXSIZE; /*定义顺序表为一维数组*/int last;/*last为表中最后一个数据元素的下标位置*/SequenList;/*顺序表的结构类型为Sequ

2、enList*/*函数声明*/SequenList * Init_SequenList( );int SequenList_Length(SequenList*L);int Insert_SequenList(SequenList*L,elemtype x,int i);void menu;int Delete_SequenList(SequenList*L,int i);elemtype GetData_SequenList(SequenList*L,int i);int Search_SequenList(SequenList*L,elemtype key);void Print_Sequ

3、enList(SequenList*L);void SequenList_Iuput(SequenList*L);/*主函数*/void mainchar cmd;int i,Length,isdo;elemtype x ,data,key;SequenList *L=NULL;system(cls);menu;while(cmd=getchar)!=#)switch(cmd)case 1: L=Init_SequenList( );printf(nCreating the list!n);printf(nnnttt);break;case 2: L=SequenList_Iuput(L);p

4、rintf(nInputing data .n);printf(nnnttt);break;case 3:Length=SequenList_Length(L);printf(nThe Length of the list is %dn,Length);printf(nnnttt);break;case 4: printf(input.,i,x);scanf(%d%d,&i,&x);x=Insert_SequenList( L,x,i);printf(nInserting the data into the list!n);printf(nnnttt);break;case 5:isdo=De

5、lete_SequenList(L,i);printf(nDeleting the data in the list.n);printf(nnnttt);break;case 6:printf(%d,i);scanf(%d,&i);x= GetData_SequenList(L,i);if(x!=0)printf(%d%d,i,x);printf(nGeting the data of the position.n);printf(nnnttt);break;case 7:data=Search_SequenList(L,key);printf(nSearching the data .n);

6、printf(nnnttt);break;case 8: printf(nDisplaying the all data of the list!.);printf(nnnttt);break;fflush(stdin);system(pause);menu;void menu system(cls);printf(tt1-initial listn);printf(tt2-input datan);printf(tt3-get lengthn);printf(tt4-insert a valuen);printf(tt5-deleten);printf(tt6-get the data of

7、 the i positionn);printf(tt7-search a datan);printf(tt8-displayn);printf(tt#-quitn);printf(Please select: );/*函数定义*/SequenList * Init_SequenList( )SequenList *L;/*定义顺序表指针变量*/L = (SequenList *) malloc ( sizeof( SequenList ) );/*申请分配内存空间*/L->last = -1;/*设置顺序表的长度last*/return L;/*返回顺序表的首地址*/*其他函数定义*/i

8、nt SequenList_Length(SequenList*L)return(L->last+1);int Insert_SequenList(SequenList*L,elemtype x,int i)/*在顺序表中指定的位置插入值为x的结点*/*L是SequenList类型的指针变量*/*x是待插入结点的数据元素值,i是在顺序表中的插入位置*/ int j;if(L->last>=MAXSIZE-1) /*检查顺序表是否已满*/ printf(表满!数据溢出n); /*顺序表满,输出溢出错误信息*/return NULL; /*插入失败,函数返回0*/if(i<1|i&

9、gtL->last+2) /*插入位置有效性检查,若位置非法,则失败*/ printf(非法位置!n); /*输出非法位置出错信息*/return NULL; /*插入失败,函数返回0*/for(j=L->last;j>=i-1;j-) /*在第i个位置插入新结点x*/L->dataj+1=L->dataj; /*结点依次向后移动一个位置*/L->datai-1=x; /*插入x到第i个位置*/L->last=L->last+1; /*将顺序表长度加1*/return(1); /*插入成功,函数返回1*/int Delete_SequenList(SequenL

10、ist*L,int i) int j;if(i<1|i>L->last+1) printf(非法位置!n);return NULL;else for(j=i;j<=L->last;j+)L->dataj-1=L->dataj;L->last-;return(1);elemtype GetData_SequenList(SequenList*L,int i)if(i<1|i>L->last+1)printf(errorn);return NULL;elsereturn(L->datai-1);int Search_SequenList(Sequen

11、List*L,elemtype key)int i;for(i=0;i<=L->last;i+)if(L->datai=key)return(i+1);return(0);void Print_SequenList(SequenList*L)int i;for(i=0;i<=L->last;i+)printf(a%2d=%4dt,i+1,L->datai);if(i+1)%5=0) printf(n); void SequenList_Iuput(SequenList*L)int iy,ip;printf(请输入数据直到输入0结束:n);scanf(%d,&ip);while(ip!=0)iy=L->last+1;L->dataiy=ip;L->last+;scanf(%d,&ip);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号