数据结构实验——栈和队列.docx

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)

1亿VIP精品文档

相关文档