zoukankan      html  css  js  c++  java
  • 自定义栈

    栈,类似一个有底的箱子,当向箱子放东西时,先放进去的会被压在底部,而取出时,则后放进去的会被先取出来

    //链表是以节点为单位的,对于单向链表,每个节点中包含一个值和指向下一个对象的引用
    public class Node {
         Object value;
            Node next;
    
            public Node(Object value) {
                this.value = value;
            }
    
            public Object getValue() {
                return value;
            }
    
            public void setValue(Object value) {
                this.value = value;
            }
    
            public Node getNext() {
                return next;
            }
    
            public void setNext(Node next) {
                this.next = next;
            }
        
    }
    
    
    //自定义链表实现栈结构
    public class MyStack {
    
        Node head = null;
        int size = 0;
    
        public int getSize() {
            return size;
        }
    
        //入栈
        public void push(Object value) {
            Node newNode = new Node(value);
            //如果头元素不存在
            if (head == null) {
                head = newNode;
            } else {
                //关联成串
                newNode.setNext(head);
                //改变指向
                head = newNode;
            }
            size++;
    
        }
    
        //出栈
        public Object pop() {
            Object value = head.getValue();
            head = head.getNext();
            size--;
            return value;
        }
    
        //查看栈顶元素
        public Object peek() {
            return head.getValue();
        }    
    }
    
    //测试
    public class StackTest {
    
        public static void main(String[] args) {
            MyStack mystack=new MyStack();
            mystack.push(1);
            mystack.push(2);
            mystack.push(3);
            mystack.push(4);
            //pop会改变元素的size,导致执行两次就结束了
    //        for (int i = 0; i < mystack.getSize(); i++) {
    //            System.out.println(mystack.pop());
    //        }
    //        
    
            //结果最后放进去的4,别首先取了出来,结果为4 3 2 1

    while (mystack.getSize()>0) { System.out.println(mystack.pop()); } } }
  • 相关阅读:
    SignalR
    convert NameValueCollection/Dictionary<string, object> to JSON string
    CG标准函数库
    Unity shader学习之Alpha Blend
    Unity shader学习之Alpha Test
    Unity shader学习之遮罩纹理
    Unity shader学习之渐变纹理
    Unity shader学习之切线空间下计算凹凸映射
    Unity shader学习之Blinn-Phong光照模型
    Unity shader学习之高光反射光照模型
  • 原文地址:https://www.cnblogs.com/huxiaocong/p/10893313.html
Copyright © 2011-2022 走看看