精华内容
下载资源
问答
  • 3、在栈中提供pop方法模拟弹栈。(空了,也要有提示信。) 4、编写测试程序,new栈对象,调用 push pop。方法来模拟压弹栈的动作。 知识点: 封装:第一步:属私有化,第二岁:对外提供set和get方法。 package ...

    编写程序,使用一维数组,模拟数据结构。
    要求
    1、这个可以存java中的任何引用类型的数据。
    在中提供push方法模拟压栈。(栈满了,要有提示信息。)
    3、在栈中提供pop方法模拟弹栈。(空了,也要有提示信。)
    4、编写测试程序,new栈对象,调用 push pop。方法来模拟压弹栈的动作。

    知识点:
    封装:第一步:属私有化,第二岁:对外提供set和get方法。

    package stringJava;
    public class myStack {
    		private Object [] elements;//创建对象数组可以保存String,等类型的数据,是一个万能的口袋
    		private int index;//默认栈帧
    		public myStack() {
    			this.elements=new Object [10];//无参数构造默认为10;
    			this.index=-1;
    		}
    		
    		public void push(Object obj) {
    			if(this.index>=elements.length-1) {
    				System.out.println("栈已经满了,无法进栈");
    				return;
    			}
    			this.index++;
    			elements[index]=obj;
    			System.out.println("压栈成功栈帧为:"+index);
    		}
    		public Object pop() {
    			if(index<0) {
    				System.out.println("栈已经空了!");
    				return null;
    			}
    			System.out.println("栈顶元素为:"+elements[index]);
    			return elements[index--];
    			
    		}
    
    		public Object [] getElements() {
    			return elements;
    		}
    		public void setElements(Object [] elements) {
    			this.elements=elements;
    		}
    		
    		
    }
    
    package stringJava;
    import java.util.regex.*;
    import java.util.Scanner;
    import java.util.Timer;
    import java.io.*;
    import java.util.*;
    import java.util.Vector;
    import java.util.Enumeration;
    
     public class stringJava{
    	 public static void main(String args[]) {
    		 
    		 myStack test=new myStack();
    		 test.push("aaa");
    		 test.push("aaa");
    		 test.push("aaa");
    		 test.push("aaa");
    		 test.push("aaa");
    		 test.push("aaa");
    		 test.push("aaa");
    		 test.push("aaa");
    		 test.push("aaa");
    		 test.push("aaa");
    		 test.push("aaa");
    		 test.pop();
    		
    	 }
     }
    
    展开全文
  • 的方法peek()和pop()比较

    万次阅读 2019-06-29 08:33:22
    stack1.peek() 返回栈顶元素,但不在堆栈中删除它。 Stack2.pop() 返回栈顶元素,并在进程中删除它。 总结一下: 当我们只需要取出栈顶元素进行...补充总结一下其他常用的方法: empty( )——如果堆栈是...

    stack1.peek() 返回栈顶元素,但不在堆栈中删除它。
    Stack2.pop() 返回栈顶元素,并在进程中删除它。

    • 总结一下:
    • 当我们只需要取出栈顶的元素进行处理(或者说我们需要先对栈顶的数据进行处理例如比较)然后根据处理的结果进行决定是否要pop(),这种情况下,我们可以先使用peek()方法,取出栈顶的值。
    • 补充总结一下栈中的其他常用的方法:
      empty( )——如果堆栈是空的,则返回true,当堆栈包含元素时,返回false;
    展开全文
  • 1.数组的栈方法 push():可以接收任意数量参数,把它们添加到数组末尾,并返回修改后数组长度 var color = []; var count = color.push('red', 'green'); console.log(color); // ['red', 'green']; console....

    在这里插入图片描述
    1.数组的栈方法
    push():可以接收任意数量的参数,把它们添加到数组的末尾,并返回修改后数组的长度

    var color = [];
    var count = color.push('red', 'green');
    console.log(color); // ['red', 'green'];
    console.log(count); // 2
    

    pop():从数组末尾移出最后一项,减少数组的length值,返回移除的项。

    var color = ['red', 'bule', 'yellow'];
    var count = color.pop();
    console.log(color) // ['red', 'bule']
    console.log(color.length) // 2
    console.log(count) // yellow 
    

    菜鸟发现pop()方法在Chrome浏览器下是可以传递一个number类型的参数,如果传入参数number,则移除数组下标为number的那一项,返回值是移除的项,火狐浏览器不支持,因为菜鸟电脑上没有IE浏览器所以没有办法测试,大家电脑上有IE浏览器的可以测试一下,通过留言告诉我。
    在这里插入图片描述
    shift():移除数组的第一项并且返回该项,同时数组长度减1。

    var num = [1, 2, 3, 4];
    var count = num.shift();
    console.log(num) // [2, 3, 4]
    console.log(count) //1
    

    unshift(): 可以传入任意数量的参数,把它们添加到数组的前端,并且返回修改后的数组的长度

    var num = [1, 2, 3, 4];
    var count = num.unshift(5, 6, 7);
    console.log(num) // [5, 6, 7, 1, 2, 3, 4]
    console.log(count) //7
    

    2.数组的排列方法
    reverse(): 反转数组的顺序

    var val = [1, 2, 3, 4];
    val.reverse();
    console.log(val)// [4, 3, 2, 1]
    

    sort()调用每个数组项的toString()转型方法,对数组做出升序排列。

    var val = [0, 1, 10, 15, 5];
    val.sort();
    //因为sort()方法是按照字符串排序的,虽然数字5小于数字10,但在字符串进行比较时10在5的前面
    console.log(val) //[0, 1, 10, 15, 5];
    

    根据上面的例子可以看出sort()方法不是排序的最佳方案。因此sort方法可以接收一个比较函数作为参数。

    function compare(val1, val2){
    	if(val1 < val2) {
    		return -1;
    	}else if(val1 > val2) {
    		return 1;
    	}else {
    		return 0;
    	}
    }
    var val = [0, 1, 10, 15, 5];
    val.sort(compare);
    console.log(val); //[0, 1, 5, 10, 15]
    

    当然也可以通过比较函数实现降序

    function compare(val1, val2){
    	if(val1 < val2) {
    		return 1;
    	}else if(val1 > val2) {
    		return -1;
    	}else {
    		return 0;
    	}
    }
    var val = [0, 1, 10, 15, 5];
    val.sort(compare);
    console.log(val);//[15, 10, 5, 1, 0]
    

    而对于数值类型或者valueOf()方法返回数值类型的对象。可以使用一个更简单的比较函数

    function compaer(val1, val2){
    	return val1 - val2;
    }
    var val = [0, 1, 10, 15, 5];
    val.sort(compaer);
    console.log(val)// [0, 1, 5, 10, 15]
    
    展开全文
  • import java.util.Arrays; import java.util.EmptyStackException; public class MyStack<T> { private T[] elements; private int size = 0; ... private static final int...难道说弹出意思不是吧对象删除?
  • <code class="language-java">public class MyStack { private int idx=0; private char[] data=new char[6]; public int getIdx() { ...没有pop,想请教各位这是为什么?</p>
  • pop:移除并返回栈顶元素 package day03.nowcoder; import java.util.Stack; /** * @author ZerlindaLi create at 2019/9/24 17:03 * @version 1.0.0 * @description QueenPushPop 用两个来实现...

    栈:先进后出
    队列:先进先出
    push:向栈顶添加一个元素;pop:移除并返回栈顶元素

    package day03.nowcoder;
    
    import java.util.Stack;
    
    /**
     * @author ZerlindaLi create at 2019/9/24 17:03
     * @version 1.0.0
     * @description QueenPushPop 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
     * 栈是后进先出 push:向栈顶添加一个元素;pop:移除并返回栈顶元素
     * 队列是先进先出
     */
    public class QueenPushPop {
        Stack<Integer> stack1 = new Stack<Integer>();
        Stack<Integer> stack2 = new Stack<Integer>();
    
        /**
         * 栈的push方法向栈中添加元素,返回结果是当前添加的元素
         * @param node
         */
        public void push(int node) {
            stack1.push(node);
        }
    
        /**
         * pop方法移除并返回栈顶元素,如果是空栈,会抛出异常:EmptyStackException
         * @return
         */
        public int pop() {
            while(!stack1.isEmpty()){
                stack2.push(stack1.pop());
            }
            int st2 = stack2.pop();
    
            while(!stack2.isEmpty()) {
                stack1.push(stack2.pop());
            }
            return st2;
        }
    
        public static void main(String[] args) {
            QueenPushPop qpp = new QueenPushPop();
            qpp.push(5);
            qpp.push(2);
            qpp.push(3);
            qpp.push(4);
            System.out.println(qpp.pop());
        }
    }
    
    
    展开全文
  • JavaScipt中栈的实现 首先,创建一个构造函数。 /** * 栈的构造函数 */ function Stack() { // 用数组来模拟栈 var item = []; } 栈需要有如下的方法: push(element(s)): 添加几个元素到栈顶 pop(): ...
  • 栈的基本方法

    2020-06-28 11:06:25
    数组 class Stack: def __init__(self,limit): self.stack = [] self.size = 0 def __str__(self): return str(self.stack) # 压栈 def push(self,data): self.stack.append(data) ... def pop(self):
  • 请设计一个,除pop和push方法,还支持min方法,可返回元素中最小值。 Created by rgl on 2018/10/16. */ public class MySatck { Stack s; Stack fuzhu; public MySatck() { s=new Stack&amp;...
  • Java栈的使用方法

    2021-05-06 17:32:00
    是一种 后进先出(last in - first out, LIFO)数据结构,内元素从顶端压入(push),从顶端弹出(pop)。一般我们用数组或者链表来实现,但是这篇文章会来介绍如何用队列来实现。队列是一种与相反 ...
  •  * 功能:设计一个,出pop与push方法,还支持 min方法,可返回元素中最小值。三个方法的时间复杂度必须为O(1)。  */ 两种方法方法一: /** * 思路:每个结点记录当前最小值。 * 缺点:...
  • Python栈的实现方法

    2019-10-07 20:09:33
    ,先进后出或者后进先出,以列表结构外加append和pop方法实现 class Stack: def __init__(self): # 实例一个空列表对象 self.items = [] def isEmpty(self): # 判断列表中是否有值,空就...
  • 被称为一种后进先出( LIFO, last-in-... pop() 方法可以访问栈顶元素, 调用后, 栈顶元素从中被永久性地删除。  peek() 方法则只返回栈顶元素, 而不删除它。 function Stack() { this.dataStore ...
  • 栈的基本方法及实现

    2021-03-08 17:22:23
    栈的一些基本方法: 1.public stack();创建栈 2. public E push(); 入栈 3. public E pop(); 出栈(删除栈顶元素) 4. public E peek();产看栈顶元素(不删除) 5. public boolean empty(); 判断栈是否为空 栈的实现...
  • 2 * 设计一个,除了pop与push方法,还支持Min方法,可返回元素中最小值, 3 * push、pop、min三个方法的时间复杂度必须是O(1) 4 * 一种解法是在Stack类里添加一个Int型minValue,当minValue出栈时,...
  • Python实现栈的方法

    2020-12-23 17:38:50
    本文实例讲述了Python实现栈的方法。分享给大家供大家参考。具体实现方法如下: #!/usr/bin/env python #定义一个列表来模拟栈 stack = [] #进栈,调用列表的append()函数加到列表的末尾,strip()没有参数是去掉首尾...
  • #include #include #include #include using namespace std; /* 问题:请设计一个栈,除pop与push方法...分析:能否再普通栈的基础上维持一个最小元素的值,获取最小值时就返回它。 关键是如何找到最小值下面的
  • 数组(Array)和对象...ECMAScript为数组提供了push()和pop()方法,可以实现类似栈的行为。下面两图分别演示了入栈与出栈操作。 push()方法可以接收任意数据的参数,把它们逐个添加到数组末尾,并返回修改后的数组长
  • 题目来源“数据结构与算法面试题80...判断一个序列是否是栈的pop序列是一种常见的问题,可以通过模拟push和pop的过程,push和pop总是成对出现的,如: 方法: #define push 1 #define pop -1 bool judge_pus...
  • 其中一个序列表示栈的push顺序, 判断另一个序列有没有可能是对应的pop顺序。假设压入栈的所有数字均不相等。 方法一:使用栈模拟 bool popIsPushOrder(int *ppush, int pushLen, int *ppop, int popLen) { ...
  • 所以这样无法满足O(1)的要求,我们需要额外的空间保存栈的每一个状态下的最小值。 正如上面陈述的,只要当push的值小于minValue时和pop的值等于minValue时才需要进行额外的操作,用额外的一个栈 stackOfMin来记录...
  • 链表增删改查代码练习: 了解链表增删改查操作步骤: ... import java.util.LinkedList; public class DemoLinkedList { private int size = 0;... //无参构造方法 public DemoLinkedList(){ /
  • //队列实现栈的操作方法:就是说需要将队列队尾的一个元素入栈 那么需要将队列靠队尾的元素调到队头 //方便让队头先入栈 这样就能确保新来的元素 进行push操作的时候刚好在栈的顶部 class MyStack { public: MyStack...
  • 分析:使用两个实现,一个用来存数据,另一个用来存最小值 import java.util.Stack; public class Solution { Stack<Integer> stack=new Stack<Integer>(); Stack<Integer> min=new ...
  • 栈方法

    2020-09-07 10:11:06
    在牛客上刷题,看见c++和Java在对操作时有点不一样,就总结一下栈方法,小白一枚 ▲stack方法包括 ... search(num) //判端元素num是否在中,如果在返回值是:栈顶到该元素首次出现位置距离 ...
  • pop方法是只能删除数组末尾最后一项,返回值是删除项。 概念:队列方法是遵循先进先出原则。即向数组末尾添加项,删除数组首项。介绍两个方法实现队列方法,即push()和shift()。 push()方法和方法里一样,...
  • 栈方法 pop()在数组末尾删除一个元素,并返回该元素 push()接受任意数量参数并将它们添加到数组末尾,并返回该数组长度 队列方法 shift()在数组开头删除一个元素,并返回该元素 unshift() unshift()在数组开头...
  • c++实现栈的push、pop、min

    千次阅读 2018-10-13 15:35:33
    其实push和pop较为简单,可以用数组实现,但是要兼顾到min,所以得另找个简单的方法。 思路是用两个实现,一个为数据,一个是存放最小数据的栈,且先叫小数,小数为空或者插入数据小于当前小数栈顶数据时...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,951
精华内容 1,180
关键字:

栈的pop方法