如何用Java数组实现一个栈的数据结构?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1093个文字,预计阅读时间需要5分钟。
栈介绍栈是一个先入后出的有序序列。栈是限制线性表中元素的插入和删除操作的线性表。在栈中,所有的插入和删除操作都在线性表的同一端进行。允许插入和删除的一端称为栈顶,另一端称为栈底。因此,栈也被形象地称为后进先出表。
栈介绍
栈是一个先入后出的有序列表。
栈是限制线性表中元素的插入和删除只能在线性表中同一端进行的一种特殊的线性表,允许插入和删除的一端,为变化的一端,称为栈顶,另一端为固定的一端,称为栈底。
最先放入栈中的元素在栈底,最后放入的元素在栈顶。
最先出栈的元素在栈顶,最后出栈的元素在栈底。
分析
使用数组来模拟栈的实现,首先考虑到数组的长度是固定的,所以使用栈就必须给一个特定的长度,即最大长度MaxSize。自定义一个栈顶指针, 初始化数据为-1,因为数组的索引值是从0开始的,为了不引起冲突,从-1开始。
栈为空:当top=-1时,即等于初始化数据,没有任何元素存在数组中,则说明栈为空。
栈满:随着添加元素,栈顶指针将会往后移动,但是要考虑到数组的长度是固定的,就存在一个满的情况。判断条件是当top=MaxSize-1时,栈就满了。比如定义3个大小的数组,放入一个数据1,top从-1变为0,再放入一个数据2,top从0变成1,再放入一个数据3,top从1变成2.这时候数组已经满了,判断条件即为top =MaxSize,为栈满。
进栈:进栈前先判断栈是否满了,否则不能进栈。将top+1,在将数组索引为top的元素赋值为添加进来的数据。
出栈:出栈前先判断栈是否为空,否则不能出栈。
本文共计1093个文字,预计阅读时间需要5分钟。
栈介绍栈是一个先入后出的有序序列。栈是限制线性表中元素的插入和删除操作的线性表。在栈中,所有的插入和删除操作都在线性表的同一端进行。允许插入和删除的一端称为栈顶,另一端称为栈底。因此,栈也被形象地称为后进先出表。
栈介绍
栈是一个先入后出的有序列表。
栈是限制线性表中元素的插入和删除只能在线性表中同一端进行的一种特殊的线性表,允许插入和删除的一端,为变化的一端,称为栈顶,另一端为固定的一端,称为栈底。
最先放入栈中的元素在栈底,最后放入的元素在栈顶。
最先出栈的元素在栈顶,最后出栈的元素在栈底。
分析
使用数组来模拟栈的实现,首先考虑到数组的长度是固定的,所以使用栈就必须给一个特定的长度,即最大长度MaxSize。自定义一个栈顶指针, 初始化数据为-1,因为数组的索引值是从0开始的,为了不引起冲突,从-1开始。
栈为空:当top=-1时,即等于初始化数据,没有任何元素存在数组中,则说明栈为空。
栈满:随着添加元素,栈顶指针将会往后移动,但是要考虑到数组的长度是固定的,就存在一个满的情况。判断条件是当top=MaxSize-1时,栈就满了。比如定义3个大小的数组,放入一个数据1,top从-1变为0,再放入一个数据2,top从0变成1,再放入一个数据3,top从1变成2.这时候数组已经满了,判断条件即为top =MaxSize,为栈满。
进栈:进栈前先判断栈是否满了,否则不能进栈。将top+1,在将数组索引为top的元素赋值为添加进来的数据。
出栈:出栈前先判断栈是否为空,否则不能出栈。

