篇一 :数据结构栈和队列实验报告

篇二 :数据结构顺序栈实验报告

一、 设计人员相关信息

1. 设计者姓名、学号和班号:12地信李晓婧 12012242983

2. 设计日期:2014.

3. 上机环境:VC++6.0

二、 程序设计相关信息

1. 实验题目:编写一个程序,实现顺序栈(假设栈中元素类型为char)的各种基本运算,并在此基础上设计一个程序,完成如下功能:

(1)初始化栈

(2)判断栈是否为空

(3)依次进栈元素a,b,c,d,e

(4)判断栈是否为空

(5)输出栈长度

(6)输出从栈顶到栈底元素

(7)输出出栈序列

(8)判断栈是否为空

(9)释放栈

2. 实验项目组成:栈的初始化、销毁、判断是否为空、进栈、出栈、取栈顶元素。

3. 实验项目的程序结构(程序中的函数调用关系图):

数据结构顺序栈实验报告

4. 实验项目包含的各个文件中的函数的功能描述:

(1)初始化栈InitStack:建立一个新的空栈,实际上将栈顶指针指向-1即可。

(2)销毁栈DestroyStack:释放栈占用的存储空间

(3)判断栈是否为空StackEmpty:栈为空的条件是s->op==-1。

(4)进栈Push:在栈不满的条件下,先将栈顶指针增1,然后在栈顶指针指向位置插入元素e。

(5)出栈Pop:在栈不为空的条件下,先将栈顶元素赋给e,然后将栈顶指针减1.

(6)取栈顶元素GetTop:在栈不为空的条件下,将栈顶元素赋给e。

5. 算法描述或流程图:

#include "stdio.h"

#include "malloc.h"

#include<stdlib.h>

#define MaxSize 50

typedef char ElemType;

typedef struct

{ElemType data[MaxSize];

int top; /*栈顶指针*/

…… …… 余下全文

篇三 :数据结构出栈、入栈实验报告

《数据结构》实验报告

院系  应用科技学院专业电子信息工程           

姓名               学号              

10  电信 2011 11 05

1.实验目的

1、              熟悉栈的定义和栈的基本操作。

2、              掌握顺序存储栈和链接存储栈的基本运算。

3、              加深对栈结构的理解,逐步培养解决实际能力问题的能力

2.需求分析

1、              栈的建立

输入形式和输入值的范围:输入若干个正整数,用空格隔开,以0结束。

2、              菜单操作

…… …… 余下全文

篇四 :数据结构实验报告(栈的应用)

                                   实习报告

题目:编制一个演示表达式求值的操作的程序

班级:计算机(信息安全)姓名:学号:  完成日期:2009.3.27

·          需求分析

·         本演示程序中,元素限定为int整型和char型。

·         演示程序以用户和计算机的对话方式执行,即在计算机终端显示“提示信息“后,由用户在键盘上输入演示程序中规定的数值和运算符;相应的结果会显示其后。

·         程序执行命令包括:

·         根据用户给出的表达式进行运算 2)输出结果

·         测试数据

用户输入:1+2#   结果:3

用户输入:12*(2+3)#   结果:60

…… …… 余下全文

篇五 :数据结构实验报告二栈的应用

数据结构实验指导书

姓名:修凌云

姓名:李赛赛

信息与计算科学教研室 

实验一  栈及其应用

实验目的

①熟悉栈的基本概念;

②熟练掌握并实现栈的基本操作以及两个栈共享一个存储空间。

③应用栈实现表达式求值(可参考教材71页3.3应用举例)。

实验环境

计算机、vc++

实验学时

    4学时,必做实验。

实验步骤

1、有详细的设计步骤;

2、编辑源程序并进行调试;

3、进行运行测试,并结合情况进行调整;

4、对运行结果进行保存与分析;

5、把源程序以文件的形式提交;

实验内容

   1.1.根据栈的存储结构,分别给出可执行的源代码。

²  实验要求:

能够对于不同的数据类型进行栈的初始化,入栈,出栈和取栈顶元素以及对栈的判空和销毁等操作。并且注意边界条件。要求有测试案例和输出结果。

程序运行效果示例:

           

程序源代码

#include<iostream.h>

const int StackSize=20;

struct student

{

int age;

int num;

void printfinfo()

{

    cout<<"age = "<<age<<"    num= "<<num<<endl;

}

};

template<class DataType>

class SeqStack

…… …… 余下全文

篇六 :数据结构实验报告 栈和队列

20##级数据结构实验报告

实验名称:实验二栈和队列

    期: 20081115

1.实验要求

实验目的

通过选择下面五个题目之一进行实现,掌握如下内容:

进一步掌握指针、模板类、异常处理的使用

掌握栈的操作的实现方法

掌握队列的操作的实现方法

学习使用栈解决实际问题的能力

学习使用队列解决实际问题的能力

实验内容

2.1题目1

根据栈和队列的抽象数据类型的定义,按要求实现一个栈或一个队列。

    要求:

1、  实现一个共享栈

2、  实现一个链栈

3、  实现一个循环队列

4、  实现一个链队列

编写测试main()函数测试线性表的正确性。

2. 程序分析

2.1 存储结构

存储结构:

特殊线性表:栈,队列

 

2.2 关键算法分析

共享栈的入栈算法伪码(Push):

1.如果栈满,抛出上溢异常。

2.判断是插在栈1还是栈2:

2.1如果在栈1插入,则栈顶指针top1加1,在top1处填入元素x;

2.2如果在栈2插入,则栈顶指针top2加1,在top2处填入元素x。

共享栈的出栈算法伪码(Pop):

1. 判断是在栈1删除还是在栈2删除。

2. 若是在栈1删除,则

2.1 若栈1为空栈,抛出下溢异常;

2.2 删除并返回栈1的栈顶元素;

3. 若是在栈2删除,则

3.1 若栈2为空栈,抛出下溢异常;

3.2 删除并返回栈2的栈顶元素。

共享栈的取栈顶元素算法伪码(GetTop):

1.  判断是在栈1取还是栈2取;

2.  如果在栈1取,则

2.1 若栈1不空,返回栈顶元素的值,不删除;

2.2 若栈1空,返回0;

3.如果在栈2取,则

…… …… 余下全文

篇七 :数据结构栈和队列实验报告

《数据结构》课程实验报告

注:空间不够,可以增加页码。

…… …… 余下全文

篇八 :《数据结构》上机实验报告—利用栈实现迷宫求解

福州大学数计学院

《数据结构》上机实验报告

专业和班级:信息计算科学与应用数学6班

说明:实验名称为教学大纲中各章的实验项目名称,实验内容为具体章节的实验内容名称

…… …… 余下全文