资源描述:
《链表和顺序表的全部操作实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机软件技术基础实验报告实验1线性表及其应用实验一、实验目的1.熟悉VB或C语言的上机环境,进一步掌握VB或C语言的结构特点。2.掌握线性表的顺序存储结构的定义及VB或C语言实现。3.掌握线性表的链式存储结构——单链表的定义及VB或C语言实现。4.掌握线性表在顺序存储结构即顺序表中的各种基本操作。5.掌握线性表在链式存储结构——单链表中的各种基本操作。6.掌握栈的概念、以及顺序和链式存储结构的入栈和出栈操作。7.掌握队列的概念、以及顺序和链式存储结构的入队和出队操作。二、实验原理¨线性表概念和特点¨在数据处
2、理中,大量数据均以表格形式出现,称为线性表,它是一种最简单也是最常见的数据结构。¨线性表是数据元素的有限序列。¨线性表的结构特点是:数据元素之间是线性关系,线性表中存在唯一的“第一个元素”(表头),必存在一个唯一的“最后一个元素”(表尾)。除第一个元素外,每个元素有且只有一个前趋元素,除最后一个元素外,每个元素有且只有一个后续元素。¨栈的概念和特点¨(描述栈的概念和特点。)¨队列的概念和特点¨(描述队列的概念和特点。)三、实验内容及代码1.顺序线性表的建立、插入及删除。#include#de
3、finemax20intlast=20;intnode[max]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};intmain(){inti,a,x,c,p,flag=0,r,s,u,v;计算机软件技术基础实验报告voidinsert(intp,intx);voiddelet(intp);intfind(intm);voidmodify(r,s);printf("pleaseenternumber:1,寻找下标为p的节点2,删除下标为p的节点
4、n3,修改线形表中下标为r的接点4,下标为u的节点之前插入5,退出系统");do{scanf("%d",&a);switch(a){case1:printf("pleaseenterthex");scanf("%d",&x);c=find(x);printf("findresult=%d",c);break;case2:printf("pleaseenterthedeletepotp");scanf("%d",&p);printf("beforedelete");for(i=0;i
5、<=last-1;i++)printf("%d",node[i]);printf("");delet(p);printf("afterdelete");for(i=0;i<=last-1;i++)printf("%d",node[i]);printf("");break;case3:printf("pleaseenterthepotrandthevalues");scanf("%d%d",&r,&s);printf("beforemodify");for(i=0;i<=last-1;i++
6、)printf("%d",node[i]);printf("");计算机软件技术基础实验报告modify(r,s);printf("aftermodify");for(i=0;i<=last-1;i++)printf("%d",node[i]);printf("");break;case4:printf("pleaseenterthepotpandthevaluex");scanf("%d%d",&u,&v);printf("beforeinsert");for(i=0;i<=last-1
7、;i++)printf("%d",node[i]);printf("");insert(u,v);printf("afterinsert");for(i=0;i<=last-1;i++)printf("%d",node[i]);printf("");break;case5:flag=1;break;default:printf("inputerror");}}while(!flag);return(0);}voiddelet(intp)//在线性表中删除元素函数{intj;if(p>last-
8、1
9、
10、p<0)printf("wrongposition!");else{for(j=p+1;j<=last-1;j++)node[j-1]=node[j];计算机软件技术基础实验报告last=last-1;}}voidinsert(intp,intx)//在线性表中插入元素函数{intm;if(last==max)printf("thelistisfull!");else{for(m=la