当前位置 : 主页 > 编程语言 > c++ >

用一个栈实现另一个栈的排序

来源:互联网 收集:自由互联 发布时间:2021-07-03
stack 弹出元素cur,如果cur小于等于help栈顶元素,则cur压入help, cur大于help栈顶则将help的元素逐一弹出压入ctack,直到cur小于或等于help栈顶 package yf.com;import java.util.Stack;public class Main {/** * 通
stack 弹出元素cur,如果cur小于等于help栈顶元素,则cur压入help, cur大于help栈顶则将help的元素逐一弹出压入ctack,直到cur小于或等于help栈顶
package yf.com;

import java.util.Stack;

public class Main {
	/**
	 *  通过一个栈help排序另一个栈
	 * @param stack 目标栈
	 * stack 弹出元素cur,如果cur小于等于help栈顶元素,则cur压入help,
	 * cur大于help栈顶则将help的元素逐一弹出压入ctack,直到cur小于或等于help栈顶
	 */
	public void  sortStackByStack(Stack
 
   stack){
		Stack
  
    help = new Stack
   
    (); while (!stack.isEmpty()) { int cur = stack.pop(); while (!help.isEmpty() && help.peek() < cur) { stack.push(help.pop()); } help.push(cur); } //最后将help的元素逐一压入stack while (!help.isEmpty()) { stack.push(help.pop()); } } public static void main(String[] args) { Stack
    
      stack = new Stack
     
      (); stack.push(5); stack.push(2); stack.push(4); stack.push(1); Main m = new Main(); m.sortStackByStack(stack); System.out.println(stack); } }
     
    
   
  
 
网友评论