实验类型: 验证性实验学时: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 建立一个...