软件技术实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件技术实验报告

实验人:班级:12级制药工程班

姓名:许显玉孙永兰

学号:1220403025 1220403028

实验名称:线性表的初始化运算、插入运算、删除运算

实验地点和时间:网3 2013年9月26日

实验环境:VC

实验内容:

建立一个空间容量为10,长度为8的顺序存储空间(参考课件中算法描述)输入数据为教材第24页图2.7,现要求在第2个元素之前插入87,然后在第9个元素之前插入14如下图所示。把插入后的结果打印出来。(参考课件中算法描述)

线性表的初始化运算、插入运算

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

int z; //声明全局变量z,用于计录表中数据的个数

void input(int *v) //输入数据函数:参数为线性表v

{

int i; //定义变量i,用于循环计数

printf("请输入数据:"); //提示出入数据

for(i=0;i

scanf("%d",v+i); //输入数据到线性表v中,v+i是指表v中第i个位置

}

void output(int *v) //输出函数:参数为线性表v

{

int i; //定义变量i,用于循环计数

printf("线性表中的元素是:"); //显示线性表元素

for(i=0;i

printf("\n%d、%d",i+1,*(v+i)); //输出v表中的数据,i+1为表中数据的位置,\n是换行的意思

}

int *initsl(int m) //线性表的初始化:参数为空间大小m和线性表n {

int *v; //声明线性表v

v=(int *)malloc(m*sizeof(int)); //分配长度为m个int的存储空间

return v; //返回值为线性表v

}

void insl(int *v,int m,int i,int b) //插入函数:参数为线性表v,表总长度m,插入位置i,插入元素b

{

int j; //定义变量j,用于循环计数

if(z==m) //如果数据占据长度z和表总长度m相同就执行括号里的语句,否则跳出循环

{

printf("list overflow!"); //显示线性溢出

return; //返回函数空值

}

if(i>z-1) //判断插入位置大小i是否大于数据占据长度z-1,判断为真则执行i=z,否则执行if(i<1)i=1;

i=z; //将插入位置i设置为数据长度z if(i<1)i=1; //判断插入位置大小i是否小于1,判断为真则执行i=1,将i设置为1

for(j=z;j>=i;j--) //将计数j赋值为数据长度z,按照递减形式,判断大于等于i,成立则执行循环体

v[j]=v[j-1]; //将线性表v中第i个位置的数据依次后移v[i-1]=b; //在第i个位置插入b到表v中

z=z+1; //将数据长度加一

return; //返回函数空值

}

void main() //主函数

{

int *v=NULL,m,i,b;

printf("请输入创建线性表的空间大小:"); //提示输入表大小

scanf("%d",&m); //赋值表大小m

v=initsl(m); //为表v初始化m个空间

printf("请输入线性表中数据占空间的大小:");//提示输入表中原始数据长度

scanf("%d",&z); //赋值原始长度给z

input(v); //为线性表v输入z个数据

output(v); //输出v表中的z个数据

getchar(); //清理缓冲区数据,避免影响后面接收的数据printf("\n请输入要插入的位置i和元素b:"); //提示输入插入位置i和元素b

scanf("%d%d",&i,&b); //输入插入位置i和元素b

insl(v,m,i,b); //将b插入到线性表v的第i个位置

output(v); //输出线性表v中的z个数据

getchar(); //清理缓冲区数据,避免影响后面接收的数据printf("\n请输入要插入的位置i和元素b:"); //提示输入插入位置i和元素b

scanf("%d%d",&i,&b); //输入插入位置i和元素b

insl(v,m,i,b); //将b插入到线性表v的第i个位置

output(v); //输出线性表v中的z个数据

free(v); //释放指针v

}

线性表的删除运算

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

int z; //声明全局变量z,用于计录表中数据的个数void input(int *v) //输入数据函数:参数为线性表v

{

int i; //定义变量i,用于循环计数

printf("请输入数据:"); //提示出入数据

for(i=0;i

个位置

}

void output(int *v) //输出函数:参数为线性表v

{

int i; //定义变量i,用于循环计数

printf("线性表中的元素是:"); //显示线性表元素

for(i=0;i

相关文档
最新文档