SlideShare a Scribd company logo
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
Ad

More Related Content

Similar to stack.ppt (20)

CH4.pptx
CH4.pptxCH4.pptx
CH4.pptx
AliJama14
 
stack & queue
stack & queuestack & queue
stack & queue
manju rani
 
01-intro_stacks.ppt
01-intro_stacks.ppt01-intro_stacks.ppt
01-intro_stacks.ppt
soniya555961
 
The presention is about the queue data structure
The presention is about the queue data structureThe presention is about the queue data structure
The presention is about the queue data structure
gaurav77712
 
Lec2
Lec2Lec2
Lec2
Anjneya Varshney
 
05-stack_queue.ppt
05-stack_queue.ppt05-stack_queue.ppt
05-stack_queue.ppt
Sarojkumari55
 
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
gomathi chlm
 
LectureNotes-06-DSA
LectureNotes-06-DSALectureNotes-06-DSA
LectureNotes-06-DSA
Haitham El-Ghareeb
 
My lecture stack_queue_operation
My lecture stack_queue_operationMy lecture stack_queue_operation
My lecture stack_queue_operation
Senthil Kumar
 
DSA_Unit3_ Stacks and Queues using array (1).pptx
DSA_Unit3_ Stacks and Queues  using array  (1).pptxDSA_Unit3_ Stacks and Queues  using array  (1).pptx
DSA_Unit3_ Stacks and Queues using array (1).pptx
nandinigujarathi9
 
Lec2
Lec2Lec2
Lec2
Nikhil Chilwant
 
Stack in Sata Structure
Stack in Sata StructureStack in Sata Structure
Stack in Sata Structure
Muhazzab Chouhadry
 
Computer notes - Josephus Problem
Computer notes - Josephus ProblemComputer notes - Josephus Problem
Computer notes - Josephus Problem
ecomputernotes
 
computer notes - Data Structures - 5
computer notes - Data Structures - 5computer notes - Data Structures - 5
computer notes - Data Structures - 5
ecomputernotes
 
U3.stack queue
U3.stack queueU3.stack queue
U3.stack queue
Ssankett Negi
 
stacks and queues for public
stacks and queues for publicstacks and queues for public
stacks and queues for public
iqbalphy1
 
Stack_Overview_Implementation_WithVode.pptx
Stack_Overview_Implementation_WithVode.pptxStack_Overview_Implementation_WithVode.pptx
Stack_Overview_Implementation_WithVode.pptx
chandankumar364348
 
Queue Data Structure
Queue Data StructureQueue Data Structure
Queue Data Structure
Zidny Nafan
 
Queue Data Structure
Queue Data StructureQueue Data Structure
Queue Data Structure
Sriram Raj
 
Basic data-structures-v.1.1
Basic data-structures-v.1.1Basic data-structures-v.1.1
Basic data-structures-v.1.1
BG Java EE Course
 
01-intro_stacks.ppt
01-intro_stacks.ppt01-intro_stacks.ppt
01-intro_stacks.ppt
soniya555961
 
The presention is about the queue data structure
The presention is about the queue data structureThe presention is about the queue data structure
The presention is about the queue data structure
gaurav77712
 
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
gomathi chlm
 
My lecture stack_queue_operation
My lecture stack_queue_operationMy lecture stack_queue_operation
My lecture stack_queue_operation
Senthil Kumar
 
DSA_Unit3_ Stacks and Queues using array (1).pptx
DSA_Unit3_ Stacks and Queues  using array  (1).pptxDSA_Unit3_ Stacks and Queues  using array  (1).pptx
DSA_Unit3_ Stacks and Queues using array (1).pptx
nandinigujarathi9
 
Computer notes - Josephus Problem
Computer notes - Josephus ProblemComputer notes - Josephus Problem
Computer notes - Josephus Problem
ecomputernotes
 
computer notes - Data Structures - 5
computer notes - Data Structures - 5computer notes - Data Structures - 5
computer notes - Data Structures - 5
ecomputernotes
 
stacks and queues for public
stacks and queues for publicstacks and queues for public
stacks and queues for public
iqbalphy1
 
Stack_Overview_Implementation_WithVode.pptx
Stack_Overview_Implementation_WithVode.pptxStack_Overview_Implementation_WithVode.pptx
Stack_Overview_Implementation_WithVode.pptx
chandankumar364348
 
Queue Data Structure
Queue Data StructureQueue Data Structure
Queue Data Structure
Zidny Nafan
 
Queue Data Structure
Queue Data StructureQueue Data Structure
Queue Data Structure
Sriram Raj
 

Recently uploaded (20)

Generative AI & Large Language Models Agents
Generative AI & Large Language Models AgentsGenerative AI & Large Language Models Agents
Generative AI & Large Language Models Agents
aasgharbee22seecs
 
Frontend Architecture Diagram/Guide For Frontend Engineers
Frontend Architecture Diagram/Guide For Frontend EngineersFrontend Architecture Diagram/Guide For Frontend Engineers
Frontend Architecture Diagram/Guide For Frontend Engineers
Michael Hertzberg
 
JRR Tolkien’s Lord of the Rings: Was It Influenced by Nordic Mythology, Homer...
JRR Tolkien’s Lord of the Rings: Was It Influenced by Nordic Mythology, Homer...JRR Tolkien’s Lord of the Rings: Was It Influenced by Nordic Mythology, Homer...
JRR Tolkien’s Lord of the Rings: Was It Influenced by Nordic Mythology, Homer...
Reflections on Morality, Philosophy, and History
 
Applications of Centroid in Structural Engineering
Applications of Centroid in Structural EngineeringApplications of Centroid in Structural Engineering
Applications of Centroid in Structural Engineering
suvrojyotihalder2006
 
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...
AI Publications
 
ATAL 6 Days Online FDP Scheme Document 2025-26.pdf
ATAL 6 Days Online FDP Scheme Document 2025-26.pdfATAL 6 Days Online FDP Scheme Document 2025-26.pdf
ATAL 6 Days Online FDP Scheme Document 2025-26.pdf
ssuserda39791
 
twin tower attack 2001 new york city
twin  tower  attack  2001 new  york citytwin  tower  attack  2001 new  york city
twin tower attack 2001 new york city
harishreemavs
 
Control Methods of Noise Pollutions.pptx
Control Methods of Noise Pollutions.pptxControl Methods of Noise Pollutions.pptx
Control Methods of Noise Pollutions.pptx
vvsasane
 
6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)
6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)
6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)
ijflsjournal087
 
Construction Materials (Paints) in Civil Engineering
Construction Materials (Paints) in Civil EngineeringConstruction Materials (Paints) in Civil Engineering
Construction Materials (Paints) in Civil Engineering
Lavish Kashyap
 
DED KOMINFO detail engginering design gedung
DED KOMINFO detail engginering design gedungDED KOMINFO detail engginering design gedung
DED KOMINFO detail engginering design gedung
nabilarizqifadhilah1
 
2.3 Genetically Modified Organisms (1).ppt
2.3 Genetically Modified Organisms (1).ppt2.3 Genetically Modified Organisms (1).ppt
2.3 Genetically Modified Organisms (1).ppt
rakshaiya16
 
Design Optimization of Reinforced Concrete Waffle Slab Using Genetic Algorithm
Design Optimization of Reinforced Concrete Waffle Slab Using Genetic AlgorithmDesign Optimization of Reinforced Concrete Waffle Slab Using Genetic Algorithm
Design Optimization of Reinforced Concrete Waffle Slab Using Genetic Algorithm
Journal of Soft Computing in Civil Engineering
 
Working with USDOT UTCs: From Conception to Implementation
Working with USDOT UTCs: From Conception to ImplementationWorking with USDOT UTCs: From Conception to Implementation
Working with USDOT UTCs: From Conception to Implementation
Alabama Transportation Assistance Program
 
Little Known Ways To 3 Best sites to Buy Linkedin Accounts.pdf
Little Known Ways To 3 Best sites to Buy Linkedin Accounts.pdfLittle Known Ways To 3 Best sites to Buy Linkedin Accounts.pdf
Little Known Ways To 3 Best sites to Buy Linkedin Accounts.pdf
gori42199
 
Slide share PPT of NOx control technologies.pptx
Slide share PPT of  NOx control technologies.pptxSlide share PPT of  NOx control technologies.pptx
Slide share PPT of NOx control technologies.pptx
vvsasane
 
Personal Protective Efsgfgsffquipment.ppt
Personal Protective Efsgfgsffquipment.pptPersonal Protective Efsgfgsffquipment.ppt
Personal Protective Efsgfgsffquipment.ppt
ganjangbegu579
 
Automatic Quality Assessment for Speech and Beyond
Automatic Quality Assessment for Speech and BeyondAutomatic Quality Assessment for Speech and Beyond
Automatic Quality Assessment for Speech and Beyond
NU_I_TODALAB
 
David Boutry - Specializes In AWS, Microservices And Python.pdf
David Boutry - Specializes In AWS, Microservices And Python.pdfDavid Boutry - Specializes In AWS, Microservices And Python.pdf
David Boutry - Specializes In AWS, Microservices And Python.pdf
David Boutry
 
Autodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User InterfaceAutodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User Interface
Atif Razi
 
Generative AI & Large Language Models Agents
Generative AI & Large Language Models AgentsGenerative AI & Large Language Models Agents
Generative AI & Large Language Models Agents
aasgharbee22seecs
 
Frontend Architecture Diagram/Guide For Frontend Engineers
Frontend Architecture Diagram/Guide For Frontend EngineersFrontend Architecture Diagram/Guide For Frontend Engineers
Frontend Architecture Diagram/Guide For Frontend Engineers
Michael Hertzberg
 
Applications of Centroid in Structural Engineering
Applications of Centroid in Structural EngineeringApplications of Centroid in Structural Engineering
Applications of Centroid in Structural Engineering
suvrojyotihalder2006
 
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...
AI Publications
 
ATAL 6 Days Online FDP Scheme Document 2025-26.pdf
ATAL 6 Days Online FDP Scheme Document 2025-26.pdfATAL 6 Days Online FDP Scheme Document 2025-26.pdf
ATAL 6 Days Online FDP Scheme Document 2025-26.pdf
ssuserda39791
 
twin tower attack 2001 new york city
twin  tower  attack  2001 new  york citytwin  tower  attack  2001 new  york city
twin tower attack 2001 new york city
harishreemavs
 
Control Methods of Noise Pollutions.pptx
Control Methods of Noise Pollutions.pptxControl Methods of Noise Pollutions.pptx
Control Methods of Noise Pollutions.pptx
vvsasane
 
6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)
6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)
6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)
ijflsjournal087
 
Construction Materials (Paints) in Civil Engineering
Construction Materials (Paints) in Civil EngineeringConstruction Materials (Paints) in Civil Engineering
Construction Materials (Paints) in Civil Engineering
Lavish Kashyap
 
DED KOMINFO detail engginering design gedung
DED KOMINFO detail engginering design gedungDED KOMINFO detail engginering design gedung
DED KOMINFO detail engginering design gedung
nabilarizqifadhilah1
 
2.3 Genetically Modified Organisms (1).ppt
2.3 Genetically Modified Organisms (1).ppt2.3 Genetically Modified Organisms (1).ppt
2.3 Genetically Modified Organisms (1).ppt
rakshaiya16
 
Little Known Ways To 3 Best sites to Buy Linkedin Accounts.pdf
Little Known Ways To 3 Best sites to Buy Linkedin Accounts.pdfLittle Known Ways To 3 Best sites to Buy Linkedin Accounts.pdf
Little Known Ways To 3 Best sites to Buy Linkedin Accounts.pdf
gori42199
 
Slide share PPT of NOx control technologies.pptx
Slide share PPT of  NOx control technologies.pptxSlide share PPT of  NOx control technologies.pptx
Slide share PPT of NOx control technologies.pptx
vvsasane
 
Personal Protective Efsgfgsffquipment.ppt
Personal Protective Efsgfgsffquipment.pptPersonal Protective Efsgfgsffquipment.ppt
Personal Protective Efsgfgsffquipment.ppt
ganjangbegu579
 
Automatic Quality Assessment for Speech and Beyond
Automatic Quality Assessment for Speech and BeyondAutomatic Quality Assessment for Speech and Beyond
Automatic Quality Assessment for Speech and Beyond
NU_I_TODALAB
 
David Boutry - Specializes In AWS, Microservices And Python.pdf
David Boutry - Specializes In AWS, Microservices And Python.pdfDavid Boutry - Specializes In AWS, Microservices And Python.pdf
David Boutry - Specializes In AWS, Microservices And Python.pdf
David Boutry
 
Autodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User InterfaceAutodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User Interface
Atif Razi
 
Ad

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
  翻译: