文档介绍:实验报告
课程名称: 项目名称: 顺序栈的基本操作
姓名:—专业:―班级:—学号: 同组成员 无
一、实验准备1:
实验目的
掌握顺序栈的基本操作。
顺序栈的初始化;
读栈顶元素;
空栈的判定;
入栈;
出栈。
实验环实验报告
课程名称: 项目名称: 顺序栈的基本操作
姓名:—专业:―班级:—学号: 同组成员 无
一、实验准备1:
实验目的
掌握顺序栈的基本操作。
顺序栈的初始化;
读栈顶元素;
空栈的判定;
入栈;
出栈。
实验环境
Visual C++软件
二、实验过程记录%
■实验任务:通过栈结构,将从键盘输入的字符串逆置输出。
从键盘上输入:abcdef
程序输出:fedcba
'注:1、实验准备部分包括实验环境准备和实验所需知识点准备。
2、若是单人单组实验,同组成员填无。
2注:实验过程记录要包含实验FI的、实验原理、实验步骤,页码不够可自行添加。
■步骤
1、 顺序栈的建立
顺序栈的类型定义。
栈的初始化。
2、 字符串的输入
按字符逐个入栈(注意判断内存是否溢出)。
可通过while等循环语句,结合getchar ()实现。
3、 字符串的输出
按字符逐个出栈(注意判定栈是否为空)。
可通过while等循环语句,结合putchar ()实现。
■测试结果参考
,c:\ *E: \VC_vorkspace\Debug\st ack25. exe
ytisreuinU i?uU
栈兀素s
孚符串逆置输出:
WuVi Uniuersity
Press any key to continue
程序:
#include<>
#include<>
#define MAX_STACK 120 〃栈的最大数据元素数目 typedef struct stack {
char item[MAX_STACK];
〃存放栈中数据元素的存储单元
int top; 〃栈顶指针
} STACK;
S->top=-l;
}
int StackEmpty(STACK *S) 〃判断栈是否为空
(
迁(S->top==-l)
return 1;
else
return 0;
}
void GetTop(STACK *S,int *item) 〃获取栈顶元素
(
if (StackEmpty(S))
{
printf("Stack is empty\n");
return;
}
else
*item=S->item[S->top];
}
STACK * Push(STACK *S,char item) 〃入栈
( if (S->top==MAX_STACK-1)
(
printf(nStack is full\nn);
return NULL;
}
else
S ->item[++S->top]=item;
return S;
}
STACK * Pop(STACK *S,int *item) 〃出栈
{
if (StackEmpty(S))
{
printf("Stack is empty\nH);
return NULL;
}
else
*item