数据结构自学篇(六)栈-顺序栈

3.1栈

3.1.1栈的定义及基本运算

栈是限定仅在表尾进行插入和删除操作的线性表.允许插入,删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈.
栈的修改是按后进先出的原则进行的,因此栈又称为后进先出的线性表(LIFO,last in first out)

入栈和出栈的是栈的两个主要操作,每一次进栈的元素总是称为当前的栈顶元素,而每一次出栈的元素总是当前的栈顶元素.所以栈顶的位置随元素的插入和删除而变化.所以需要一个称为栈顶指针的位置指示器来表示栈顶的当前位置.

栈的基本操作

(1)初始化:构造一个空的栈
(2)入栈:在栈顶位置插入一个新元素
(3)出栈:删除栈顶元素
(4)获取:去栈顶数据元素
(5)判空:判断当前栈是否为空
(6)求长度:求出栈中数据元素的个数
(7)正序遍历:依次访问栈中每个元素并输出
(8)销毁:销毁一个已存在的栈

3.1.3顺序栈

顺序栈:利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,把数组中下标为0的一端作为栈底,为了只是栈中元素的位置,我们定义变量top来指示栈顶元素在顺序栈中的位置,top为整型.顺序栈泛型类定义如下:

public class sequenceStack {
   
    final int MaxSize=10;
    private T[] stackArray;
    private int top;

    public sequenceStack(){
   }
    public sequenceStack(int n){
   }
    
    //在栈顶插入一个新元素
    public void push(T obj){
   }
    
    //删除栈顶元素
    public T pop(){
   }
    
    //取出栈顶数据元素
    public T getHead(){
   }
    
    //判断当前栈是否为空
    public boolean isEmpty(){
   }
    
    //求出栈中数据元素的个数
    public int size(){
   }
    
    //依次访问栈中每个元素并输出
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值