SlideShare a Scribd company logo
1 of 23
Stack: Linked List
Implementation
 Push and pop at the head of the list
 New nodes should be inserted at the front of the list, so that they
become the top of the stack
 Nodes are removed from the front (top) of the list
 Straight-forward linked list implementation
 push and pop can be implemented fairly easily, e.g. assuming that
head is a reference to the node at the front of the list
public void push(int x){
// Make a new node whose next reference is
// the existing list
Node newNode = new Node(x, top);
top = newNode; // top points to new node
}
List Stack Example
Java Code
Stack st = new Stack();
st.push(6);
top
6
List Stack Example
Java Code
Stack st = new Stack();
st.push(6);
st.push(1);
top
6
1
List Stack Example
Java Code
Stack st = new Stack();
st.push(6);
st.push(1);
st.push(7);
top
6
1
7
List Stack Example
Java Code
Stack st = new Stack();
st.push(6);
st.push(1);
st.push(7);
st.push(8);
top
6
1
7
8
List Stack Example
Java Code
Stack st = new Stack();
st.push(6);
st.push(1);
st.push(7);
st.push(8);
st.pop();
top
6
1
7
8
List Stack Example
Java Code
Stack st = new Stack();
st.push(6);
st.push(1);
st.push(7);
st.push(8);
st.pop();
top
6
1
7
Stack: ADT List
Implementation
 Push() and pop() either at the beginning or at the end
of ADT List
 at the beginning:
public void push(Object newItem) {
list.add(1, newItem);
} // end push
public Object pop() {
Object temp = list.get(1);
list.remove(1);
return temp;
} // end pop
Stack: ADT List
Implementation
 Push() and pop() either at the beginning or at the end
of ADT List
 at the end:
public void push(Object newItem) {
list.add(list.size()+1, newItem);
} // end push
public Object pop() {
Object temp = list.get(list.size());
list.remove(list.size());
return temp;
} // end pop
Stack: ADT List
Implementation
 Push() and pop() either at the beginning or at the end
of ADT List
 Efficiency depends on implementation of ADT List (not
guaranteed)
 On other hand: it was very fast to implement (code is
easy, unlikely that errors were introduced when
coding).
Applications of Stacks
 Call stack (recursion).
 Searching networks, traversing trees
(keeping a track where we are).
Examples:
 Checking balanced expressions
 Recognizing palindromes
 Evaluating algebraic expressions
Simple Applications of the ADT Stack:
Checking for Balanced Braces
 A stack can be used to verify whether a program
contains balanced braces
 An example of balanced braces
abc{defg{ijk}{l{mn}}op}qr
 An example of unbalanced braces
abc{def}}{ghij{kl}m
abc{def}{ghij{kl}m
Checking for Balanced Braces
 Requirements for balanced braces
 Each time you encounter a “}”, it matches an already
encountered “{”
 When you reach the end of the string, you have matched
each “{”
Checking for Balanced Braces
Figure 7-3
Traces of the algorithm that checks for balanced braces
Evaluating Postfix
Expressions
 A postfix (reverse Polish logic) calculator
 Requires you to enter postfix expressions
 Example: 2 3 4 + *
 When an operand is entered, the calculator
 Pushes it onto a stack
 When an operator is entered, the calculator
 Applies it to the top two operands of the stack
 Pops the operands from the stack
 Pushes the result of the operation on the stack
Evaluating Postfix
Expressions
Figure 7-8
The action of a postfix calculator when evaluating the expression 2 * (3 + 4)
Evaluating Postfix Expressions
 Pseudo code:
int evaluate(String expression)
{
Stack stack=new Stack(); // creaty empty stack
while (true) {
String c=expression.getNextItem();
if (c==ENDOFLINE)
return stack.pop();
if (c is operand)
stack.push(c);
else { // operation
int operand2=stack.pop();
int operand1=stack.pop();
stack.push(execute(c,operand1,operand2));
}
}
}
Queues
 A queue is a data structure that only allows items to
be inserted at the end and removed from the front
 “Queue” is the British word for a line (or line-up)
 Queues are FIFO (First In First Out) data structures
– “fair” data structures
Using a Queue
What Can You Use a Queue
For?
 Processing inputs and outputs to screen (console)
 Server requests
 Instant messaging servers queue up incoming
messages
 Database requests
 Print queues
 One printer for dozens of computers
 Operating systems use queues to schedule CPU
jobs
 Simulations
Queue Operations
 A queue should implement (at least) these
operations:
 enqueue – insert an item at the back of the queue
 dequeue – remove an item from the front
 peek – return the item at the front of the queue without
removing it
 Like stacks it is assumed that these operations will
be implemented efficiently
 That is, in constant time
Queue: Array Implementation
 First consider using an array as the underlying
structure for a queue, one plan would be to
 Make the back of the queue the current size of the
queue (i.e., the number of elements stored)
 Make the front of the queue index 0
 Inserting an item can be performed in constant time
 But removing an item would require shifting all elements
in the queue to the left which is too slow!
 Therefore we need to find another way
An Array-Based
Implementation
Figure 8-8
a) A naive array-based implementation of a queue; b) rightward drift can cause the
queue to appear full

More Related Content

Similar to stack.ppt

Stack and Queue by M.Gomathi Lecturer
Stack and Queue by M.Gomathi LecturerStack and Queue by M.Gomathi Lecturer
Stack and Queue by M.Gomathi Lecturergomathi chlm
 
My lecture stack_queue_operation
My lecture stack_queue_operationMy lecture stack_queue_operation
My lecture stack_queue_operationSenthil Kumar
 
Computer notes - Josephus Problem
Computer notes - Josephus ProblemComputer notes - Josephus Problem
Computer notes - Josephus Problemecomputernotes
 
computer notes - Data Structures - 5
computer notes - Data Structures - 5computer notes - Data Structures - 5
computer notes - Data Structures - 5ecomputernotes
 
stacks and queues for public
stacks and queues for publicstacks and queues for public
stacks and queues for publiciqbalphy1
 
Stack_Overview_Implementation_WithVode.pptx
Stack_Overview_Implementation_WithVode.pptxStack_Overview_Implementation_WithVode.pptx
Stack_Overview_Implementation_WithVode.pptxchandankumar364348
 
Queue Data Structure
Queue Data StructureQueue Data Structure
Queue Data StructureZidny Nafan
 
Queue Data Structure
Queue Data StructureQueue Data Structure
Queue Data StructureSriram Raj
 
Stacks Data structure.pptx
Stacks Data structure.pptxStacks Data structure.pptx
Stacks Data structure.pptxline24arts
 
Stacks queues-1220971554378778-9
Stacks queues-1220971554378778-9Stacks queues-1220971554378778-9
Stacks queues-1220971554378778-9Getachew Ganfur
 

Similar to stack.ppt (20)

Lec2
Lec2Lec2
Lec2
 
05-stack_queue.ppt
05-stack_queue.ppt05-stack_queue.ppt
05-stack_queue.ppt
 
Stack and Queue by M.Gomathi Lecturer
Stack and Queue by M.Gomathi LecturerStack and Queue by M.Gomathi Lecturer
Stack and Queue by M.Gomathi Lecturer
 
LectureNotes-06-DSA
LectureNotes-06-DSALectureNotes-06-DSA
LectureNotes-06-DSA
 
My lecture stack_queue_operation
My lecture stack_queue_operationMy lecture stack_queue_operation
My lecture stack_queue_operation
 
Lec2
Lec2Lec2
Lec2
 
Stack in Sata Structure
Stack in Sata StructureStack in Sata Structure
Stack in Sata Structure
 
Computer notes - Josephus Problem
Computer notes - Josephus ProblemComputer notes - Josephus Problem
Computer notes - Josephus Problem
 
computer notes - Data Structures - 5
computer notes - Data Structures - 5computer notes - Data Structures - 5
computer notes - Data Structures - 5
 
U3.stack queue
U3.stack queueU3.stack queue
U3.stack queue
 
stacks and queues for public
stacks and queues for publicstacks and queues for public
stacks and queues for public
 
Stack_Overview_Implementation_WithVode.pptx
Stack_Overview_Implementation_WithVode.pptxStack_Overview_Implementation_WithVode.pptx
Stack_Overview_Implementation_WithVode.pptx
 
Queue Data Structure
Queue Data StructureQueue Data Structure
Queue Data Structure
 
Queue Data Structure
Queue Data StructureQueue Data Structure
Queue Data Structure
 
Basic data-structures-v.1.1
Basic data-structures-v.1.1Basic data-structures-v.1.1
Basic data-structures-v.1.1
 
Stacks Data structure.pptx
Stacks Data structure.pptxStacks Data structure.pptx
Stacks Data structure.pptx
 
Stacks in c++
Stacks in c++Stacks in c++
Stacks in c++
 
5.-Stacks.pptx
5.-Stacks.pptx5.-Stacks.pptx
5.-Stacks.pptx
 
STACK1.pptx
STACK1.pptxSTACK1.pptx
STACK1.pptx
 
Stacks queues-1220971554378778-9
Stacks queues-1220971554378778-9Stacks queues-1220971554378778-9
Stacks queues-1220971554378778-9
 

Recently uploaded

(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineeringmalavadedarshan25
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...RajaP95
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...Call Girls in Nagpur High Profile
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 

Recently uploaded (20)

(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineering
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 

stack.ppt

  • 1. Stack: Linked List Implementation  Push and pop at the head of the list  New nodes should be inserted at the front of the list, so that they become the top of the stack  Nodes are removed from the front (top) of the list  Straight-forward linked list implementation  push and pop can be implemented fairly easily, e.g. assuming that head is a reference to the node at the front of the list public void push(int x){ // Make a new node whose next reference is // the existing list Node newNode = new Node(x, top); top = newNode; // top points to new node }
  • 2. List Stack Example Java Code Stack st = new Stack(); st.push(6); top 6
  • 3. List Stack Example Java Code Stack st = new Stack(); st.push(6); st.push(1); top 6 1
  • 4. List Stack Example Java Code Stack st = new Stack(); st.push(6); st.push(1); st.push(7); top 6 1 7
  • 5. List Stack Example Java Code Stack st = new Stack(); st.push(6); st.push(1); st.push(7); st.push(8); top 6 1 7 8
  • 6. List Stack Example Java Code Stack st = new Stack(); st.push(6); st.push(1); st.push(7); st.push(8); st.pop(); top 6 1 7 8
  • 7. List Stack Example Java Code Stack st = new Stack(); st.push(6); st.push(1); st.push(7); st.push(8); st.pop(); top 6 1 7
  • 8. Stack: ADT List Implementation  Push() and pop() either at the beginning or at the end of ADT List  at the beginning: public void push(Object newItem) { list.add(1, newItem); } // end push public Object pop() { Object temp = list.get(1); list.remove(1); return temp; } // end pop
  • 9. Stack: ADT List Implementation  Push() and pop() either at the beginning or at the end of ADT List  at the end: public void push(Object newItem) { list.add(list.size()+1, newItem); } // end push public Object pop() { Object temp = list.get(list.size()); list.remove(list.size()); return temp; } // end pop
  • 10. Stack: ADT List Implementation  Push() and pop() either at the beginning or at the end of ADT List  Efficiency depends on implementation of ADT List (not guaranteed)  On other hand: it was very fast to implement (code is easy, unlikely that errors were introduced when coding).
  • 11. Applications of Stacks  Call stack (recursion).  Searching networks, traversing trees (keeping a track where we are). Examples:  Checking balanced expressions  Recognizing palindromes  Evaluating algebraic expressions
  • 12. Simple Applications of the ADT Stack: Checking for Balanced Braces  A stack can be used to verify whether a program contains balanced braces  An example of balanced braces abc{defg{ijk}{l{mn}}op}qr  An example of unbalanced braces abc{def}}{ghij{kl}m abc{def}{ghij{kl}m
  • 13. Checking for Balanced Braces  Requirements for balanced braces  Each time you encounter a “}”, it matches an already encountered “{”  When you reach the end of the string, you have matched each “{”
  • 14. Checking for Balanced Braces Figure 7-3 Traces of the algorithm that checks for balanced braces
  • 15. Evaluating Postfix Expressions  A postfix (reverse Polish logic) calculator  Requires you to enter postfix expressions  Example: 2 3 4 + *  When an operand is entered, the calculator  Pushes it onto a stack  When an operator is entered, the calculator  Applies it to the top two operands of the stack  Pops the operands from the stack  Pushes the result of the operation on the stack
  • 16. Evaluating Postfix Expressions Figure 7-8 The action of a postfix calculator when evaluating the expression 2 * (3 + 4)
  • 17. Evaluating Postfix Expressions  Pseudo code: int evaluate(String expression) { Stack stack=new Stack(); // creaty empty stack while (true) { String c=expression.getNextItem(); if (c==ENDOFLINE) return stack.pop(); if (c is operand) stack.push(c); else { // operation int operand2=stack.pop(); int operand1=stack.pop(); stack.push(execute(c,operand1,operand2)); } } }
  • 18. Queues  A queue is a data structure that only allows items to be inserted at the end and removed from the front  “Queue” is the British word for a line (or line-up)  Queues are FIFO (First In First Out) data structures – “fair” data structures
  • 20. What Can You Use a Queue For?  Processing inputs and outputs to screen (console)  Server requests  Instant messaging servers queue up incoming messages  Database requests  Print queues  One printer for dozens of computers  Operating systems use queues to schedule CPU jobs  Simulations
  • 21. Queue Operations  A queue should implement (at least) these operations:  enqueue – insert an item at the back of the queue  dequeue – remove an item from the front  peek – return the item at the front of the queue without removing it  Like stacks it is assumed that these operations will be implemented efficiently  That is, in constant time
  • 22. Queue: Array Implementation  First consider using an array as the underlying structure for a queue, one plan would be to  Make the back of the queue the current size of the queue (i.e., the number of elements stored)  Make the front of the queue index 0  Inserting an item can be performed in constant time  But removing an item would require shifting all elements in the queue to the left which is too slow!  Therefore we need to find another way
  • 23. An Array-Based Implementation Figure 8-8 a) A naive array-based implementation of a queue; b) rightward drift can cause the queue to appear full