Implement Stack using two Queues in java

In this program, we will see how to implement stack using Linked List in java.
Stack is abstract data type which demonstrates Last in first out (LIFO) behavior. We will implement same behavior using two queue.
There are two most important operations of Stack:
Lets say you have two queues : queue1 , queue2

Push :

If queue1 is empty, add elements to queue1

If queue1 is not empty, add all elements of queue1 to queue2 , add current element to queue1 and copy all elements of queue2 to queue1.

Pop : Simply remove element from queue1.

Java Program:

Lets create a java program to create stack using Linked List.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

packageorg.arpit.java2blog;

import java.util.LinkedList;

import java.util.Queue;

publicclassStackUsingTwoQueues{

Queue<Integer>queue1;

Queue<Integer>queue2;

StackUsingTwoQueues()

{

queue1=newLinkedList<Integer>();

queue2=newLinkedList<Integer>();

}

// Remove value from the beginning of the list for demonstrating behaviour of stack