数据结构实验报告顺序栈

  • 格式:doc
  • 大小:27.00 KB
  • 文档页数:6

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(封面)

学生实验报告

学院:国际经贸学院

课程名称:数据结构

专业班级:09电子商务

姓名:

学号:

学生实验报告

(经管类专业用)

一、实验目的及要求:

1、目的

通过实验,实现顺序栈的各种基本运算。

2、内容及要求

编写一个程序,实现顺序栈的各种基本运算,并在此基础上设计一个主程序完成下列功能:

(1)初始化栈S。

(2)判断栈S是否非空。

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

(4)判断栈S是否非空。

(5)输出栈的长度。

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

(7)输出出栈序列;

(8)判断链栈S是否为空;

(9)释放链栈

二、仪器用具:

三、实验方法与步骤:

一、查阅顺序栈等相关资料,熟悉顺序栈基本概念和流程

二、“开展”顺序栈实验流程

三、整理实验数据和文档,总结实验的过程,编写实验报告

四、实验结果与数据处理:

1、顺序栈的代码:

#include

#include

#define MaxSize 100

typedef char ElemType;

typedef struct

{

ElemType data[MaxSize];

int top; //栈顶指针

} SqStack;

void InitStack(SqStack *&s)

{

s=(SqStack *)malloc(sizeof(SqStack));

s->top=-1;

}

void ClearStack(SqStack *&s)

{

free(s);

}

int StackLength(SqStack *s)

{

return(s->top+1);

}

int StackEmpty(SqStack *s)

{

return(s->top==-1);

}

int Push(SqStack *&s,ElemType e) {

if (s->top==MaxSize-1)

return 0;

s->top++;

s->data[s->top]=e;

return 1;

}

int Pop(SqStack *&s,ElemType &e) {

if (s->top==-1)

return 0;

e=s->data[s->top];

s->top--;

return 1;

}

int GetTop(SqStack *s,ElemType &e) {

if (s->top==-1)

return 0;

e=s->data[s->top];

return 1;

}

void DispStack(SqStack *s)

{

int i;

for (i=s->top;i>=0;i--)

printf("%c ",s->data[i]);

printf("\n");

void main() {

// 主函数

SqStack S=(SqStack *)malloc(sizeof(SqStack)); printf("(1)初始化顺序栈\n");

InitStack(S);

printf("(2)判断顺序栈是否为空:\n"); StackEmpty(S);

printf("(3)依次进栈元素a,b,c,d,e:\n");

Push(S,'a');

Push(S,'b');

Push(S,'c');

Push(S,'d');

Push(S,'e');

printf("(4)判断顺序栈是否为空:\n"); StackEmpty(S);

printf("(5)输出栈长度:%d\n",StackLength(S)); printf("(6)输出从栈顶到栈底的元素:\n"); StackTraverse(S);

printf("(7)读出栈顶元素:%d\n",GetTop(S,e));

printf("(8)删除栈顶元素:%d\n",Pop(S,e));

printf("(9)输出从栈顶到栈底的元素:\n");

StackTraverse(S);

printf("(10)判断顺序栈是否为空\n");

StackEmpty(S);

printf("(11)释放栈。");

DestroyStack(S);

}

2、实验流程及截图:

五、讨论与结论

在实验的过程中,需要注意以下几点:

首先,实验操作者要注意掌握:顺序栈等概念。

其次,需要对代码进行编写,修改。

最后,在实验操作的过程中,需要耐心和细心。

六、指导教师评语及成绩:

评语:

成绩:指导教师签名:

批阅日期: