2008级数据结构实验报告
实验名称:实验二一一栈和队列
学生姓名:
班 级:
班内序号:
学 号:
日 期:2009年11月7日
实验要求
根据栈和队列的抽象数据类型的定义,按要求实现一个栈或一个队列。 要求:
1、 实现一个共享栈
2、 实现一个链栈
3、 实现一个循环队列
4、 实现一个链队列
编写测试main()函数测试线性表的正确性。
程序分析
2.1存储结构
2.1.1共享栈
° S^ke_Sizel
“2
%
bJ
*2
top2topi
top2
2.1.2链栈
栈顶1fA
栈顶
1
f
A
栈底
2.2关键算法分析
2.2.1共享栈
开辟一个空间,两个栈共享。 topi和top2分别为栈1和栈2的栈顶指针。
Stack_Size为整个数组空间的大小;栈 1的底固定在下标为 0的一端;栈2的底固定在下 标为StackSize-1的一端。如果是压栈,则栈 1的topi加1,栈2的top2减1;如果是出 栈,则栈1的top1减1,栈2的top2加1。
压栈:1、如果栈满,则抛出上溢异常;
、判断是插在栈1还是栈2 ;
若是在栈1插入,则栈顶指针top1加1,在top1处填入x;
若是在栈2插入,则栈顶指针top2减1,在top2处填入x;
时间复杂度为0( 1)
出栈:1、判断是在栈1删除还是在栈2删除。
、若是在栈1删除,则
若栈1为空栈,抛出下溢异常;
原创力文档

文档评论(0)