江南大学
软件技术基础实验 学院名称学生姓名专业名称班 级学号时间 报 告 书 物联网工程学院 : : : :
: :
实验一 线性表
一.目的与要求
本次实习的主要目的是为了使学生熟练掌握线性表的基本操作在顺序存储结构和链式存储结构上的实现,提高分析和解决问题的能力。要求仔细阅读并理解下列例题,上机通过,并观察其结果,然后独立完成后面的实习题。
二.实验内容
1.设顺序表A中的数据元素递增有序,试写一程序,将x插入到顺序表的适当位置上,使该表仍然有序。
2.用单链表ha 存储多项式A(x )=a0+a1x1+a2x2+…+anxn(其中aI为非零系数),用单链表hb 存储多项式B(x )=b0+b1x1+b2x2+…+bmxm(其中bj为非零系数),要求计算C(x )= A(x )+B(x ),结果存到单链表hc中。试写出程序。
第二篇:太原理工大学 计算机软件技术基础 顺序栈的入栈与退栈及读栈顶元素 实验报告
太原理工大学现代科技学院
计算机软件技术基础课程 实验报告
专业班级
学 号
姓 名
指导教师
实验名称 顺序栈的入栈与退栈及读栈顶元素 同组人
专业班级 学号 姓名 成绩
实验目的与要求:通过对栈的编程练习,加强对栈的特点、顺序存储结构及其基本运算的理解和掌握。使用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;
}
实验结果: