太原理工大学 计算机软件技术基础 线形顺序表的插入与删除 实验报告

太原理工大学现代科技学院

计算机软件技术基础课程 实验报告

专业班级                  

学    号                  

姓    名                  

指导教师                  

实验名称线形顺序表的插入与删除  同组人                                   

专业班级                学号                 姓名           成绩           

                                                                                          

实验目的与要求:理解和掌握线性表的顺序存储结构,使用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;

}

实验结果:

                                                                   

相关推荐