- --
- . -word资料-
数 据 结 构 实 验 报 告 册
班 级:
学 号:
姓 名:
- --
- . -word资料-
实验题目:
栈的链式存储结构的表示和实现
实验日期:
实验要求:
1.认真阅读和掌握本实验的相关知识。
2.编写程序实现栈的链式存储方式。
3.编写程序实现对栈空的判断以及栈的入栈和出栈操作、取栈顶元素。
4.保存程序的运行结果,结合程序分析链式结构的特点。
5.填写实验报告
概要设计:
(1)初始化链栈。
(2)将链栈置空。
(3)完成入栈和出栈操作,完成取栈顶元素操作。
(4)选择菜单上的0,退出该程序的运行,结束实验内容。
初始化栈操作,将栈的栈顶指针置为空值,即设栈S和栈顶指针top,
S→top=null。
如果所建栈里有数据元素,要将其置空,同样也是将栈顶指针的值置
为空值。
入栈操作,向栈里插入数据元素。首先要为插入数据元素分配结点,
将插入数据元素的值赋值给插入结点的数据域,其次修改栈顶指针的指向
关系,即修改插入结点和栈顶指针的地址,最后修改栈顶指针。
出栈操作,从栈里删除数据元素。首先要判断栈是否为空栈,如是空
栈则操作失败。否则,进行出栈操作,修改删除结点和栈顶指针,最后释
放删除结点。
取栈顶元素。
- --
- . -word资料-
详细设计:
//链栈类型定义
typedef int ElemType;
typedef struct stacknode
{
ElemType data;
stacknode *next;
}StackNode;
typedef struct
{
stacknode *top;
}LinkStack;
//入栈
void pushLstack(LinkStack *s,ElemType x)
{
StackNode *p;
p=new StackNode;
p->data=x;
p->next=s->top;
s->top=p;
}
//出栈
- --
- . -word资料-
ElemType popstack(LinkStack *s)
{
ElemType x;
StackNode *p;
p=s->top;
if(s->top==0)
{
printf("栈空,不能出栈!!\n");
return 0;
exit(0);
}
x=p->data;
printf("%d\n",x);
s->top=p->next;delete p;
return x;
}
//取栈顶元素
ElemType StackTop(LinkStack *s)
{
ElemType x;
if(s->top==0)
{
- --
- . -word资料-
printf("链栈空!!\n");
return 0;
}
else
{
x=s->top->data;
printf("当前链栈的栈顶元素为%d",x);
return 0;
}
} top
top top
1,入栈示意图 2,出栈示意图
X
an a
1 ^
an an-1 a
1
- --
- . -word资料-
3,出栈 4,取栈顶元素
开始
ElemType x;
s->tope==
0
Printf(“栈空,不能出栈
“)
x=p->data
s->top=p->next;delete
p
;
return x;
结束
ElemType x;
开始
s->top==0
Printf(“链栈为空 X=s->top->data;
return o; return o
结束
- --
- . -word资料-
调试分析:
在调试中出现以上错误,经过查找原程序发现scanf("%d",&cord);中少
填写了地址符。
在调试中出现了初始化以后,没有在主菜单中选择操作就直接运行入栈
了,经过查找原程序发现在swich语句中少了break。
- --
- . -word资料-
测试结果:
实验成绩:
- --
- . -word资料-
实验题目:
实验日期:
实验要求:
概要设计:
- --
- . -word资料-
详细设计:
- --
- . -word资料-
调试分析:
测试结果:
实验成绩:
- --
- . -word资料-
实验题目:
实验日期:
实验要求:
概要设计:
- --
- . -word资料-
详细设计:
- --
- . -word资料-
调试分析:
测试结果:
实验成绩:
- --
- . -word资料-
实验题目:
实验日期:
实验要求:
概要设计:
- --
- . -word资料-
详细设计:
- --
- . -word资料-
调试分析:
测试结果:
实验成绩:
- --
- . -word资料-
实验题目:
实验日期:
实验要求:
概要设计:
- --
- . -word资料-
详细设计:
- --
- . -word资料-
调试分析:
测试结果:
实验成绩: