实验3顺序栈的基本操作

更新时间:2023-12-15 14:12:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

顺序栈的基本操作实验报告

学院:应用科技学院 专业:电子信息工程 姓名:林三德 学号:120352010067 年级:2010级 时间:2011-11-7 一:实验目的

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

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

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

二:实验要求

1)调用进栈函数建立一个栈。 2)读取栈顶元素。 3)从栈中删除元素。 4)输出栈中德所有元素。

注意:每完成一个步骤就必须及时输出栈中的元素。

三:概要设计

1)编写栈的基本操作函数。

①进栈函数 Status Push(SqStack *S, SElemType e) ②出栈函数 Status Pop(SqStack *S,SElemType *e) ③输出栈元素 OutputStack(SqStack *S) 2)本程序包出栈函数含6个函数。

? 主函数 main() ? ? ? ?

进栈函数PushStack() 出栈函数PopStack()

取栈顶元素GetStackTop() 显示栈元素OutputStack()

四:详细设计

1) 类型定义

typedef struct SNode {

int data;

struct SNode *next; }SNode,*LinkStack; LinkStack top;

2) 基本操作

? 进栈操作

LinkStack PushStack(LinkStack top,int x) //进栈 {

LinkStack s;

s=(LinkStack)malloc(sizeof(SNode)); s->data=x; s->next=top; top=s; return top; }

? 删除栈元素操作

LinkStack PopStack(LinkStack top) //删除栈元素 {

LinkStack p; if(top!=NULL) {

p=top;

top=top->next; free(p);

printf(\退栈已完成\\n\return top; }

else printf(\栈是空的,无法退栈!\\n\}

? 取栈顶元素

int GetStackTop(LinkStack top) //取栈顶元素 {

return top->data; }

五:调试分析

本文来源:https://www.bwwdw.com/article/qaj5.html

Top