欢迎来到天天文库
浏览记录
ID:47453680
大小:126.50 KB
页数:16页
时间:2020-01-11
《实验一 线性表操作 实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、....中国矿业大学计算机学院实验报告课程名称 数据结构 实验名称__线性表操作 实验报告要求:1.实验目的 2.实验内容 3.实验步骤 4.运行结果 5.流程图 6.实验体会 一、实验目的1熟悉并掌握线性表的逻辑结构、物理结构。2熟悉并掌握顺序表的存储结构、基本操作和具体的函数定义。3熟悉VC++程序的基本结构,掌握程序中的用户头文件、实现文件和主文件之间的相互关系及各自的作用。4熟悉VC++操作环境的使用以及多文件的输入、编辑、调试和运行的全过程。二、实验要求1实验之前认真准备,编写好源程序。2实验中认真调试程
2、序,对运行结果进行分析,注意程序的正确性和健壮性的验证。3不断积累程序的调试方法。三、实验内容基本题:1对元素类型为整型的顺序存储的线性表进行插入、删除和查找操作。源程序: #include#include#include.word资料可编辑.....constLIST_INIT_SIZE=10;constLISTINCREMENT=1;typedefstruct{int*elem;intlength;intlistsize;}SqList;voidInitList_Sq(SqList
3、&L)//构造一个空的线性表L{L.elem=(int*)malloc(LIST_INIT_SIZE*sizeof(int));if(!L.elem)exit(0);//存储分配失败L.length=0;//空表长度为0L.listsize=LIST_INIT_SIZE;//初始存储容量cout<<"OK!"<4、i<15、6、i>L.length+1)cout<<"ERROR!"<=L.listsize)//当前存储空间已满,增加分配{int*newbase=(int*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(int));if(!newbase)exit(0);//存储分配失败L.elem=newbase;//新基址L.listsize+=LISTINCREMENT;//增加存储容量}int*q=&(L.elem[i-1]);for(int*p=&(L7、.elem[L.length-1]);p>=q;--p)*(p+1)=*p;*q=j;++L.length;cout<<"OK!"<8、9、(i>L.length))cout<<"ERROR!"<10、元素的位置j=*p;//被删除元素的值赋给jint*q=L.elem+L.length-1;//表尾元素的位置for(++p;p<=q;++p)*(p-1)=*p;--L.listsize;//被删除元素之后的元素左移cout<<"OK!"<11、rd资料可编辑.....//若找到,则返回其在L中的位序,否则返回0{inti=1;//i的初值为第1个元素的位序int*p=L.elem;//p的初值为第1个元素的存储位置while(i<=L.length&&!compare(*p,j)){++i;p++;}if(i<=L.length)returni;elsereturn0;}//LocateElem_Sqvoiddisp(SqList&L){int*p=L.elem;for(inti=0;i12、}voidmain(){SqListList;InitList_Sq(List);int*p=List.elem;intm,n,j,k,
4、i<1
5、
6、i>L.length+1)cout<<"ERROR!"<=L.listsize)//当前存储空间已满,增加分配{int*newbase=(int*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(int));if(!newbase)exit(0);//存储分配失败L.elem=newbase;//新基址L.listsize+=LISTINCREMENT;//增加存储容量}int*q=&(L.elem[i-1]);for(int*p=&(L
7、.elem[L.length-1]);p>=q;--p)*(p+1)=*p;*q=j;++L.length;cout<<"OK!"<8、9、(i>L.length))cout<<"ERROR!"<10、元素的位置j=*p;//被删除元素的值赋给jint*q=L.elem+L.length-1;//表尾元素的位置for(++p;p<=q;++p)*(p-1)=*p;--L.listsize;//被删除元素之后的元素左移cout<<"OK!"<11、rd资料可编辑.....//若找到,则返回其在L中的位序,否则返回0{inti=1;//i的初值为第1个元素的位序int*p=L.elem;//p的初值为第1个元素的存储位置while(i<=L.length&&!compare(*p,j)){++i;p++;}if(i<=L.length)returni;elsereturn0;}//LocateElem_Sqvoiddisp(SqList&L){int*p=L.elem;for(inti=0;i12、}voidmain(){SqListList;InitList_Sq(List);int*p=List.elem;intm,n,j,k,
8、
9、(i>L.length))cout<<"ERROR!"<10、元素的位置j=*p;//被删除元素的值赋给jint*q=L.elem+L.length-1;//表尾元素的位置for(++p;p<=q;++p)*(p-1)=*p;--L.listsize;//被删除元素之后的元素左移cout<<"OK!"<11、rd资料可编辑.....//若找到,则返回其在L中的位序,否则返回0{inti=1;//i的初值为第1个元素的位序int*p=L.elem;//p的初值为第1个元素的存储位置while(i<=L.length&&!compare(*p,j)){++i;p++;}if(i<=L.length)returni;elsereturn0;}//LocateElem_Sqvoiddisp(SqList&L){int*p=L.elem;for(inti=0;i12、}voidmain(){SqListList;InitList_Sq(List);int*p=List.elem;intm,n,j,k,
10、元素的位置j=*p;//被删除元素的值赋给jint*q=L.elem+L.length-1;//表尾元素的位置for(++p;p<=q;++p)*(p-1)=*p;--L.listsize;//被删除元素之后的元素左移cout<<"OK!"<11、rd资料可编辑.....//若找到,则返回其在L中的位序,否则返回0{inti=1;//i的初值为第1个元素的位序int*p=L.elem;//p的初值为第1个元素的存储位置while(i<=L.length&&!compare(*p,j)){++i;p++;}if(i<=L.length)returni;elsereturn0;}//LocateElem_Sqvoiddisp(SqList&L){int*p=L.elem;for(inti=0;i12、}voidmain(){SqListList;InitList_Sq(List);int*p=List.elem;intm,n,j,k,
11、rd资料可编辑.....//若找到,则返回其在L中的位序,否则返回0{inti=1;//i的初值为第1个元素的位序int*p=L.elem;//p的初值为第1个元素的存储位置while(i<=L.length&&!compare(*p,j)){++i;p++;}if(i<=L.length)returni;elsereturn0;}//LocateElem_Sqvoiddisp(SqList&L){int*p=L.elem;for(inti=0;i12、}voidmain(){SqListList;InitList_Sq(List);int*p=List.elem;intm,n,j,k,
12、}voidmain(){SqListList;InitList_Sq(List);int*p=List.elem;intm,n,j,k,
此文档下载收益归作者所有