• java 数据结构 栈的实现


    java数据结构之栈的实现,可是入栈,出栈操作;

    /**
     * java数据结构之栈的实现
     * 2016/4/26
     **/
    package cn.Link;
    
    public class Stack{
        Node tail = new Node(); 
        Node nowNode = new Node();   //永远指向栈顶
        int size;
        Stack(){};
        Stack(String date){
            this.tail.date = date;
            this.tail.next = null;
            this.nowNode.next = this.tail;
            this.size = 1;
        }
    
        //节点类
        class Node{
            String date;
            Node next;
            Node(){};
            Node(String date){
                this.date = date;
            }
        }
    
        //向栈中插入数据
        public void Push(String date){
            Node preNode = new Node(date);
            preNode.next = this.nowNode.next;
           this.nowNode.next = preNode; 
           this.size++;
           System.out.println("数据"+date+"被入栈");
        }
    
        //出栈操作
        public void Pop(){
            if(this.nowNode.next != this.tail){
              System.out.println("数据"+this.nowNode.next.date+"被移除栈");
              this.nowNode.next = this.nowNode.next.next;   
            }else{
                nowNode.next = null;
                System.out.println("此栈没有数据,数据为空");
            }
            this.size--;
        }
    
        //遍历栈输出
        public void PrintStack(){
            Node preNode = new Node();
            preNode.next = this.nowNode.next;
            System.out.print("遍历输出栈: ");
            while(preNode.next != null){
                System.out.print(" -->"+preNode.next.date);
                preNode.next = preNode.next.next;
            }
            System.out.println("+++++++++++当前栈的长度为"+this.size);
        }
    
        //清空栈
        public void clear(){
            this.nowNode.next = null;
            this.tail = null;
            this.size = 0;
            System.out.println("栈已被清空");
    
        }
    
        public static void main(String[] args){
           Stack stack = new Stack("sum1");
            stack.Push("sum2");
            stack.Push("sum3");
            stack.Push("sum4");
            stack.Push("sum5");
            stack.Push("sum6");
            stack.Pop();
            stack.Push("sum7");
            stack.Push("sum8");
            stack.PrintStack();
            stack.clear();
        }
    }
  • 相关阅读:
    内部类
    Tomcat 配置安装
    Eclipse转idea改设置
    MyEclipse增强代码补全
    06、自动挂载+超级守护进程+时间同步+tcpwrapper+软硬链接+日志管理
    05、ip划分+网络配置+虚拟化基础+基本路由
    04、rpm+yum+tar解压
    03、磁盘管理+swap分区创建+磁盘配额+自动挂载
    02、用户管理
    01、Linux基础命令
  • 原文地址:https://www.cnblogs.com/snail-lb/p/5437509.html
Copyright © 2020-2023  润新知