太原理工大学现代科技学院
计算机软件技术基础课程 实验报告
专业班级
学 号
姓 名
指导教师
实验名称线形顺序表的插入与删除 同组人
专业班级 学号 姓名 成绩
实验目的与要求:理解和掌握线性表的顺序存储结构,使用C语言根据相应算法编写一个程序,实现线性顺序表的插入与删除。要求仔细阅读下面的内容,编写C程序,上机通过,并观察其结果,写出实验报告书。
实验内容:建立一个长度为n的线性表,在第i个元素前面插入一个新元素b,得到一个长度为(n+1)的线性表;然后再删除第i个元素,得到长度为n的线性表 。
具体要求:
① 根据线性顺序表的插入与删除的算法编写C程序,并上机调试。
② 编写的C程序要求建立一个长度不小于10的线性表,输出原始线性表,输出完成插入运算后的线性表,输出删除某个元素后的线性表。
③ 实验完成后,写出实验报告书。
上机程序:
#include "stdlib.h"
void initsl(v,m,n)
int v[];int m,*n;
{v=malloc(m*sizeof(int));
*n=0;
return;
}
void insl(v,m,n,i,b,j)
int v[],b; int m,*n,i;
{if (*n==m) {printf ("overflow\n" );return;}
if(i>*n) i=*n+1;
if(i<1) i=1;
for (j=*n;j>=i;j--)
v[j]=v[j-1];
v[i-1]=b;
*n=*n+1;
return;}
void desl(v,n,i,j)
int v[]; int j,*n, i;
{if (*n==0) {printf ("Underflow\n"); return; }
if ((i<1)||(i>*n)) {printf ("Not this element in the list\n"); return;}
for(j=i;j<=*n-1;j++) v[j-1]=v[j];
*n=*n-1;
return;}
main()
{
int *n,i,b,j,v[10];
int m=10;
/*initsl(v,m,n); */
printf("input 8 numbers:\n");
for(i=0;i<8;i++)
{scanf ("%d",&v[i]);
*n=*n+1;}
printf("\n");
scanf ("%d",&i);
scanf ("%d",&b);
insl(v,m,n,i,b,j);
printf("insent list:\n");
for(i=0;i<=8;i++)
printf("%3d",v[i]);
printf("\n");
scanf ("%d",&i);
printf("delete list:\n");
desl (v,n,i,j);
for (i=0;i<8;i++)
printf ("%3d",v[i]);
printf ("\n");
getch();
}
实验结果:
太原理工大学现代科技学院
计算机软件技术基础课程 实验报告
专业班级
学 号
姓 名
指导教师
实验名称 顺序栈的入栈与退栈及读栈顶元素 同组人
专业班级 学号 姓名 成绩
实验目的与要求:通过对栈的编程练习,加强对栈的特点、顺序存储结构及其基本运算的理解和掌握。使用C语言根据相应算法编写一个程序,实现建栈、入栈、退栈及读栈顶元素。要求仔细阅读下面的内容,编写一个C程序,上机调试通过,并观察其结果,写出实验报告书。
实验内容:建立一个容量为m的顺序栈,首先在其中压入5个元素,然后作退栈运算和读栈顶元素。
具体要求:
① 根据顺序栈的入栈、退栈、读栈顶元素算法编写一个C程序,并上机调试。
② l编写的C程序要求建立一个容量不小于5的顺序栈,首先用入栈算法在其中压入5个元素,然后读栈顶元素,接着作退栈运算,并输出退栈结束后的栈顶元素。
③ l实验完成后,写出实验报告书。
上机程序:
#include "stdlib.h"
void init_stack(s,m,top)
int *s;int m,*top;
{s=malloc(m*sizeof(int));
*top=0;
}
void push(s,m,top,x)
int s[],x;int m,*top;
{if(*top==m){printf("stack-overflow\n");return;}
*top=*top+1;
s[*top-1]=x;return;}
void pop(s,top,y)
int s[],*y;
int *top;
{if(*top==0){printf("stack-underflow\n");return;}
*y=s[*top-1];
*top=*top-1;}
void rea(s,top,y)
int s[],*y;
int *top;
{if(*top==0) {printf("stack empty \n");return;}
*y=s[*top-1];}
main()
{
int x,s[10];
int m,*y,*top,i;
m=10;
init_stack(s,m,top);
/*scanf("%d",&x); */
push(s,m,top,2);
/*scanf("%d",&x); */
push(s,m,top,3);
push(s,m,top,4);
push(s,m,top,5);
push(s,m,top,6);
/*for(i=0;i<5;i++)
{ scanf("%d",&x);
push(s,m,top,x);} */
rea(s,top,y);
printf("y=%d",*y);
printf("\n");
pop(s,top,y);
pop(s,top,y);
rea(s,top,y);
printf("y=%d",*y);
printf("\n");
getch();
return;
}
实验结果:
计算机软件技术基础实验报告姓名班级0801105学号日期20xx125班级0801105学号姓名第5周星期三910节成绩一实验目的…
山东建筑大学实验报告学院信电学院班级姓名课程计算机软件技术基础实验日期20xx年11月22日成绩实验八数据库应用系统开发一实验目的…
计算机软件基础实验报告实验一一元多项式的相加一实验的目的与要求1熟悉单链表的一些操作2掌握采用链表结构实现一元多项式的相加的算法二…
计算机软件技术基础实验报告专业年级学号学生姓名指导老师南华大学计算机学院编I实验要求1每次实验中有若干习题每个学生至少应该完成其中…
石家庄铁道大学实验报告课程名称计算机软件基础建筑与艺术学院系11021班试验者姓名学号实验日期年月日评分教师签名123456789…
大学计算机基础课程实验报告手册学院年级专业姓名学号2220xx319xx20xx任课教师上机地点以上由学生填写实验教师签字西南大学…
太原理工大学现代科技学院计算机软件技术基础课程实验报告专业班级学号姓名指导教师太原理工大学现代科技学院实验报告装订线实验名称顺序表…
上海建桥学院本科实验报告课程名称学号姓名专业班级计算机应用基础1222534单国原物流管理B121指导教师朱凯伦课内实验目录及成绩…
计算机软件基础实践报告题目C语言程序上机操作专业学生姓名准考证号指导教师20xx年5月1一单链表实验内容单链表的定义创建插入和删除…
软件开发技术基础实验报告姓名XXXXX学号XXXXXXXx班级XXXXXXX指导教师实验名称实验一线性表的操作班级学号姓名第周星期…