栈 1

栈1 - 栈

.1 栈的定义

栈(stack)是一种数据结构。它是一种只能在两端插入后删除的特殊线性表。按照先进后出(FILO)原则存储数据.

把先进入的数据压至栈底,最后的数据放进栈顶,需要读数据的时候,从上至下依次读入.



-The End-

2018.6.1


编写Java程序,完成以下任务 1、 实现两共享空间的算法 在一个程序中如果需要同时使用具有相同数据类型的两个时,除了可以为每个“开辟”一个数组空间,还可以使用一个数组来存储两个,让一个底为该数组的始端,另一个底为该数组的末端,每个从各自的端点向中间延伸,如图所示: 其中,top1和top2分别为12的顶指针,StackSize为整个数组空间的大小,1的底固定在索引为0的一端,2的底固定在索引为StackSize-1的一端。 要求实现两共享存储空间的相关算法:初始化、入、出、取顶元素、置空、判断是否为空等。 算法思路: (1)初始化: 创建一个固定大小的数组,用于存储两个的元素。 初始化1顶指针 top1 为 -1(表示空),2的顶指针 top2 为数组长度(表示空)。 (2)入操作: 1: 检查是否有空间:若 top1 + 1 < top2,则 top11,将元素存入 array[top1]。 否则,抛出满异常。 2入: 检查是否有空间:若 top2 - 1 > top1,则 top2 减1,将元素存入 array[top2]。 否则,抛出满异常。 (3)出操作: 1: 检查1是否为空(top1 == -1),非空则返回 array[top1],并将 top112出: 检查2是否为空(top2 == array.length),非空则返回 array[top2],并将 top2 增1。 (4)取顶元素: 1:若不为空,返回 array[top1]。 2:若不为空,返回 array[top2]。 (5)置空1置空:将 top1 重置为 -12置空:将 top2 重置为数组长度。 (6)判断空: 1:top1 == -12:top2 == array.length。
最新发布
03-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值