数据结构实验三顺序栈的实现

发布 2021-06-02 08:16:28 阅读 3535

实验类型: 验证性实验学时:2学时。

一、实验目的:

掌握顺序栈的基本操作,如进栈、出栈、判断栈空和栈满,取栈顶元素等运算在顺序存储结构上的运算;并能够运用栈的基本操作解决问题,实现相应算法。

二、实验要求:

1、 完成顺序栈的基本操作算法并上机调试通过。

2、 撰写实验报告,提供实验结果和数据。

三、实验内容:

设计你的栈的顺序存储结构体,编程实现栈的基本操作。栈中的数据元素类型最好为字符类型,方便今后对字符串的算法设计和应用。

测试数据示例:

1) 以“abcdefg”的字符串顺序进栈;

2) 以合适顺序出栈得到序列“cdbagfe”;

3) 取栈顶元素得到‘f’;

4) 进栈直到栈满和出栈直到栈空,检验对这两种情形的正确判断和处理。

实验要点及说明]:借助实验一线性表的顺序存储程序进行改进。

栈(stack):是限定仅在表尾进行插入或删除操作的线性表。

栈顶(top):允许插入和删除的一端,为变化的一端。

栈底(bottom):栈中固定的一端。

空栈:栈中无任何元素。

特点:根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除。也就是说,栈是一种后进先出(last in first out)的线性表,简称为lifo表。

参考:顺序栈的数据类型c语言描述:

#define stacksize 100 //定义栈的最大容量。

typedef char elemtype;

typedef struct{

elemtype data[stacksize]; 将栈中元素定义为elemtype类型。

int top指向栈顶位置的指针。

sqstack;

栈的运算:1.初始化栈: initstack将栈s置为一个空栈(不含任何元素)。

2.进栈: push将元素x插入到栈s中,也称为 “入栈”、 插入”、 压入”。

3.出栈: pop删除栈s中的栈顶元素,也称为”退栈”、 删除”、 弹出”。

4.取栈顶元素: gettop 取栈s中栈顶元素。

5.判栈空: stackempty判断栈s是否为空,若为空,返回值为1,否则返回值为0。

数据结构与算法 栈

第5周 20141014 上机任务。必做部分。1 填写给定的sqstack 中的 数字 部分,填写时直接替换掉 数字 例如 typedef 0 status 应用int 替换 0 使之成为typedef int status 2 补充其余的 部分,使sqstack 可以编译通过。要求 在1和2中补充...

数据结构顺序表

define success 1 define failure 0 define maxsize 100 typedef int elemtype elemtype类型根据实际情况而定,这里假设为int typedefstruct elemtype data maxsize 数组,存储数据元素 in...

数据结构 顺序表的建立和运算

实验报告。课程 数据结构班级 实验序号 1姓名 学号 实验日期 9.15 题目 顺序表的建立和运算 一 实验目的和要求 1 熟悉c语言的上机环境,进一步掌握c语言的结构特点。2 掌握线性表的顺序存储结构的定义及基本运算。二 实验环境。windows7 vc 三 实验内容及实施。实验内容。1 建立一个...