




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
软件实验 第一篇:软件实验《软件技术基础》实验报告实验一:顺序表的操作班级0801210学号2012212982姓名蒲米栈,然后编写进栈和出栈的操作,读取栈顶元素。这里栈有顺序栈和链式栈两种,顺序栈是利用一种动态存储的数组定义,而链式栈是一个无头节点,只是在头部插入和删除元素的单链表。使用顺序栈要先为存储元素的数组申请一个空间,然后编写进栈和出栈取栈顶元素的操作。#include#definen5structstack{intst[n];inttop;};voidpush(structstack*pst,intx){if(pst->top==n-1)printf(“此栈表已满”);pst->top++;pst->st[pst->top]=x;}voidpop(structstack*pt,int*p){if(pt->top==-1)printf(“此栈表为空”);*p=pt->st[pt->top];pt->top--;}voidmain(){structstackT;structstack*t=&T;inta[n];inti;printf(“请输入数组的值:”);for(i=0;iscanf(“%d”,&a[i]);}T.top=-1;for(i=0;ipush(t,a[i]);for(i=0;ipop(t,&a[i]);printf(“%dn”,a[i]);}}四、算法。顺序栈的算法:1、顺序栈的初始化。2、进栈操作3、出栈操作4、取栈顶元素。链式栈的算法:1、进栈操作若栈不满,则在栈顶插入元素x作为新的栈顶。2、出栈操作若栈不空,则删除栈顶的元素,用e返回其值。五、实验心得体会:通过本次实验我学习了栈这种特殊形式的线性表,就是只能从一端进行操作,逻辑和一般的线性表相同,只是元素的操作方式不同。实验五:队列的操作一、实验目的:掌握队列的定义及其运算,了解队列的应用。二、实验内容:1、掌握队列的特点及常见算法。2、队列测试和应用。要求:设计一个主函数对循环队列代码进行测试。测试方法为:依次把数据元素2,4,6,8,10入队,然后出队中的数据元素并在屏幕上显示。三、实验思路:使用队列的时候要创建一个空队列,这里队列可以分为两种存储方式,顺序存储和链式存储,顺序存储顾名思义它的存储数据方式是连续存储的,而链式存储则是不连续的,队头和队尾定义两个指针,通过指针来操作队列。先创建一个含有头结点的空的链队列,建立头结点,在队尾插入结点后建立好队尾指针,判断队列是否为空,然后编写出队列的功能函数。#include#definen5structnobe{intdata[n];intfront;intrear;intlen;};voident(structnobe*rst,intx){if(rst->len==n)printf(“此队列已满”);else{rst->rear=(rst->rear+1)%n;rst->data[rst->rear]=x;}}intout(structnobe*rst){intx;if(rst->len==0)printf(“此队列为空”);else{rst->front=(rst->front+1)%n;x=rst->data[rst->front];}returnx;}首先建立一个结构体包含数据域与指针域,然后编写队列的入队与出队操作,最后编写主函数,在主函数调用入队与出队操作,实现程序的编程。四、算法。队列的算法:1、入队操作。若队列不满,则在队尾插入元素x作为新的队尾。2、出队操作。3、若队列不空,则删除队头元素的值。链队列的算法1、链队列初始化建立一个含有头结点的空的链队列。2、求队列的长度返回队列的元素个数,即队列的长度。3、入队列操作插入元素x作为队列新的队尾元素。4、出队列操作若队列不空,则删除队头元素,用e返回其值。五、实验心得体会:队列和栈一样是一种特殊形式的线性表,队列不同与栈的是它可以在一端插入,另一端删除。实验六:二叉树的生成与遍历一、实验目的:1、熟悉二叉树节点的定义和生成方式;2、熟悉二叉树链式结构的生成方式;3、掌握二叉树遍历算法的实现。二、实验内容:1.设计实现二叉树的建立及遍历算法,要求:(1)编写创建二叉链式存储结构的二叉树程序并输出。(2)编写递归实现二叉树的先序、中序、后序遍历算法。(3)编写主函数测试以上二叉树的创建和遍历函数。2.假设二叉树采用链式存储结构进行存储,编写程序实现二叉树的所有叶子结点的统计并输出统计个数。三、实验思路:首先建立一个结构体包含数据域,左右子树的指针三个数据元素,这里左子树和右子树分别为某一结点指向其左子树和右子树的指针。对于叶子结点或者新生成的结点,它的左子树和右子树的指针都是空值。定义二叉树结构体变量,然后编写二叉树的输入和先序、中序

听云****君哇
实名认证
内容提供者


最近下载