资源描述:
《实验一、顺序表的插入和删除操作.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、山东英才学院课年月日学院(系)班姓名学号实验题目:实验一、线形表的的插入、删除操作成绩:一、实验目的和要求1.掌握线性表的概念。2.掌握线性表的插入、删除和查找算法。二、实验原理线性表(LinearList)是具有相同数据类型的数据元素的一个有限序列。1.插入线性表的插入操作是指在线性表的第i-1个数据元素和第i个数据元素之间插入一个新的数据元素b,就是要使长度为n的线性表(a1,…,ai-1,ai,…an)变成长度为n+1的线性表(a1,…,ai-1,b,ai,…an)2、删除线性表的删除操作是使长度为n的线性表(a1,…,ai-
2、1,ai,ai+1,…an)变成长度为n-1的线性表(a1,…,ai-1,ai+1,…an)数据元素ai-1,ai,ai+1之间的逻辑关系发生变化,为了在存储结构上反映这个变化,就需要移动表中的元素,把表中的第i+1个到第n个结点间的所有元素依次移动一个位置。3、查找查找操作是指在具有n个结点的线性表中查找结点x在表中的位置,表的长度不发生变化。三、主要仪器设备或材料1、计算机一台2、Vc++编译环境四、实验方法与步骤#include"stdio.h"#defineMaxSize1000typedefintElemType;type
3、defstruct{ElemTypeelem[MaxSize];intlen;}SQlist;voidinsert(SQlist*L,inti,ElemTypex){intj;for(j=L->len;j>=i;j--)L->elem[j+1]=L->elem[j];L->elem[i]=x;L->len=L->len+1;}voidmain(){inti,j,k,x=0;SQlistlist;list.len=0;insert(&list,1,999);insert(&list,1,888);insert(&list,1,777)
4、;insert(&list,1,666);while(1){printf("ttt1继续录入,2退出并排序");scanf("%d",&j);if(j==2)break;else{printf(“pleaseinputthevaluekandx:”);scanf(“%d”,&k);scanf(“%d”,&x);insert(&list,k,x);}}for(i=1;i<=list.len;i++)printf("%d,",list.elem[i]);printf("");}五、实验数据记录、处理及结果分析六、讨论、
5、心得