Java教程

java 单链表实现栈

本文主要是介绍java 单链表实现栈,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
package com.company;

public class Main {
    //用链表模拟栈
    public static void main(String[] args) {
   // write your code here
        LinkedStake ls = new LinkedStake(4);
        ls.push("aa");
        ls.push("aB");
        ls.push("Ca");
        ls.push("Da");

        ls.toList();

        System.out.println("++++++++++");
        ls.pop();
        System.out.println("______");

        ls.toList();
        System.out.println("__ssss____");

    }

}
class Node {
    public String val;
    public Node next;
    public Node(String str){
        this.val = str;
    }
}
class  ArrayLinked{
    public String val ;

    public Node next;
    //设置一个头节点
    public Node head = new Node("");



    public  void add(String val){


            if(head.next != null){
                Node temp = head.next;
                head.next = new Node(val);
                head.next.next = temp;
            }else{
                head.next = new Node(val);
            }

    }
    //getLast
    public  String  pop(){
        String  val = "";
        if(head.next != null){
            val = head.next.val;
            Node temp2 = head.next.next;
            head.next = temp2;
        }

        return val;
    }
    public void toList(){
        Node temp = head;
        while(temp.next!= null){

            System.out.printf(temp.next.val+"\t");


            temp = temp.next;
        }
    }

}

class LinkedStake{

    public ArrayLinked arrayLink = new ArrayLinked();
    //设置栈的相关属性
    public int top = -1;
    public int maxSize;


    //初始化
    public LinkedStake(int size){
        this.maxSize = size;
    }
    //栈满判断
    public boolean isFull(){
        return top ==maxSize-1;
    }
    //栈空判断
    public  boolean isEmpty(){
        return top ==-1;
    }
    //添加push方法
    public  void push(String val){
        //先判断栈满情况
        if(isFull()){
            System.out.println("栈满了");
            //throw  new RuntimeException("栈满了");
        }else{
            //在链表的头部第一个位置擦插入,因为第一个是最先访问到的
            arrayLink.add(val);
            top++;
        }
    }
    //取出元素方法
    public  String pop() {
        //先判断栈满情况
        String value = "";
        if (isEmpty()) {
            System.out.println("栈空了");
        } else {
            //在链表的头部第一个位置擦插入,因为第一个是最先访问到的
            top--;
            value = arrayLink.pop();
        }
        return value;
    }
    public void toList(){
        arrayLink.toList();
    }

}
这篇关于java 单链表实现栈的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!