JAVA EXAMPLE PROGRAMS

JAVA EXAMPLE PROGRAMS

Publish Your Article Here

Program: How to sort a Stack using a temporary Stack?


Description:

You have a stack with full of integers. Sort it in the ascending order using another temporary array by using all stack functionality.


Code:
package com.java2novice.algo;

import java.util.Stack;

public class StackSort {

	public static Stack<Integer> sortStack(Stack<Integer> input){
		
		Stack<Integer> tmpStack = new Stack<Integer>();
		System.out.println("=============== debug logs ================");
		while(!input.isEmpty()) {
	        int tmp = input.pop();
	        System.out.println("Element taken out: "+tmp);
	        while(!tmpStack.isEmpty() && tmpStack.peek() > tmp) {
	        	input.push(tmpStack.pop());
	        }
	        tmpStack.push(tmp);
	        System.out.println("input: "+input);
	        System.out.println("tmpStack: "+tmpStack);
	    }
		System.out.println("=============== debug logs ended ================");
		return tmpStack;
	}
	
	public static void main(String a[]){
		
		Stack<Integer> input = new Stack<Integer>();
		input.add(34);
		input.add(3);
		input.add(31);
		input.add(98);
		input.add(92);
		input.add(23);
		System.out.println("input: "+input);
		System.out.println("final sorted list: "+sortStack(input));
	}
}

Output:
input: [34, 3, 31, 98, 92, 23]
=============== debug logs ================
Element taken out: 23
input: [34, 3, 31, 98, 92]
tmpStack: [23]
Element taken out: 92
input: [34, 3, 31, 98]
tmpStack: [23, 92]
Element taken out: 98
input: [34, 3, 31]
tmpStack: [23, 92, 98]
Element taken out: 31
input: [34, 3, 98, 92]
tmpStack: [23, 31]
Element taken out: 92
input: [34, 3, 98]
tmpStack: [23, 31, 92]
Element taken out: 98
input: [34, 3]
tmpStack: [23, 31, 92, 98]
Element taken out: 3
input: [34, 98, 92, 31, 23]
tmpStack: [3]
Element taken out: 23
input: [34, 98, 92, 31]
tmpStack: [3, 23]
Element taken out: 31
input: [34, 98, 92]
tmpStack: [3, 23, 31]
Element taken out: 92
input: [34, 98]
tmpStack: [3, 23, 31, 92]
Element taken out: 98
input: [34]
tmpStack: [3, 23, 31, 92, 98]
Element taken out: 34
input: [98, 92]
tmpStack: [3, 23, 31, 34]
Element taken out: 92
input: [98]
tmpStack: [3, 23, 31, 34, 92]
Element taken out: 98
input: []
tmpStack: [3, 23, 31, 34, 92, 98]
=============== debug logs ended ================
final sorted list: [3, 23, 31, 34, 92, 98]
<< Previous Program 
blog comments powered by Disqus

List Of All Interview Programs:

  1. How to reverse Singly Linked List?
  2. Find out duplicate number between 1 to N numbers.
  3. Find out middle index where sum of both ends are equal.
  4. Write a singleton class.
  5. Write a program to create deadlock between two threads.
  6. Write a program to reverse a string using recursive algorithm.
  7. Write a program to reverse a number.
  8. Write a program to convert decimal number to binary format.
  9. Write a program to find perfect number or not.
  10. Write a program to implement ArrayList.
  11. Write a program to find maximum repeated words from a file.
  12. Wrie a program to find out duplicate characters in a string.
  13. Write a program to find top two maximum numbers in a array.
  14. Write a program to sort a map by value.
  15. Write a program to find common elements between two arrays.
  16. How to swap two numbers without using temporary variable?
  17. Write a program to print fibonacci series.
  18. Write a program to find sum of each digit in the given number using recursion.
  19. Write a program to check the given number is a prime number or not?
  20. Write a program to find the given number is Armstrong number or not?
  21. Write a program to convert binary to decimal number.
  22. Write a program to check the given number is binary number or not?
  23. Write a program for Bubble Sort in java.
  24. Write a program for Insertion Sort in java.
  25. Write a program to implement hashcode and equals.
  26. How to get distinct elements from an array by avoiding duplicate elements?
  27. Write a program to get distinct word list from the given file.
  28. Write a program to get a line with max word count from the given file.
  29. Write a program to convert string to number without using Integer.parseInt() method.
  30. Write a program to find two lines with max characters in descending order.
  31. Write a program to find the sum of the first 1000 prime numbers.
  32. Find longest substring without repeating characters.
  33. Write a program to remove duplicates from sorted array.
  34. How to sort a Stack using a temporary Stack?
Knowledge Centre
StringBuffer Vs StringBuilder
The only difference between StringBuffer and StringBuilder is StringBuffer is thread-safe, that is StringBuffer is synchronized.
Famous Quotations
Discipline is just choosing between what you want now and what you want most.
-- Unknown Author

About Author

Most Visited Pages

Other Interesting Sites

Reference: Java™ Platform Standard Ed. 7 - API Specification | Java is registered trademark of Oracle.
Privacy Policy | Copyright © 2017 by Nataraja Gootooru. All Rights Reserved.