java数据结构栈的使用(顺序栈和链栈)

本文探讨了如何使用Java实现基于数组的顺序栈(MyStack)和基于单链表的链栈(LinkStack)。顺序栈通过数组实现,而链栈则通过头节点操作。涵盖了栈的基本操作如入栈(push)和出栈(pop),适合初学者理解数据结构在实际编程中的应用。

java数据结构出栈和入栈(基于数组的顺序栈和基于单链表的链栈)

package com.stack;


public class MyStack {

        private int[] array;
        private int count;//元素个数
        private int size;//数组大小

    public MyStack(int n){
        this.count = 0;
        this.size = n;
        this.array = new int[n];
    }

    public Boolean push(int data){
        if(count == size) return false;
        array[count] = data;
        ++count;
        return true;
    }

    public Integer pop(){
        if(count==0) return null;
        int temp = array[count-1];
        count--;
        return temp;
    }

}
package com.stack;

/**
 * 思路:创建一个带有头节点的单链表,每次入栈出栈都在首节点操作
 */
public class LinkStack {
    static class Node{
        private Object data;
        private Node next;
    }

    //创建一个只有头节点的空栈
    private Node head = new Node();


    public void push(Object data){
        Node newNode = new Node();
        newNode.data = data;
        newNode.next = head.next;
        head.next = newNode;
    }

    public Object pop(){
        if(head.next == null) return null;
        Object data = head.next.data;
        head.next = head.next.next;
        return data;
    }

    public void myprint(LinkStack stack){
        Node p = new Node();
        p = head.next;
        while (p!=null)
        {
            System.out.println(p.data);
            p = p.next;
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值