SlideShare a Scribd company logo
CS261
DATA STRUCTURES & ALGORITHMS
(WEEK-5)
LECTURE-9 & 10
INTRODUCTION TO DATA STRUCTURES &
ALGORITHMS
Lecturer
Azka Aziz
Azka.a@scocs.edu.pk
Data structures & Algorithms
Lecture#09 Stacks
Course contents
Stack
Stack ADT
Stack Operations
Array Implementation
List Implementation
Applications
Sample Examples
stack
Stack is a data structure that stores data
items. Data items when removed follow a
particular order i.e. the item that was
added to stack most recently will be
removed first (Last In First Out)
stack
Stack items cannot be accessed randomly regardless
of underlying data storage e.g. Array, Linked List
A stack can be imagined as a cylinder with one end
closed
All items can be added and/or removed from same
end (that is open)
Adding an item onto stack is called ‘push operation’
Removing an item from stack is called ‘pop operation’
Stack ADT … (implementing with Array)
Stack Operations …
Operation Description Pseudocode
int inspect_top(); Returns element at ‘top’
with removing it from Stack
 If stack is non-empty, return the element immediately
beneath the ‘top’
 Return -1 (indicator of Stack being empty) otherwise
void push(int); Adds the new element onto
the Stack
 If Stack is full, mention it someway
 Otherwise
 Add new element to current position of ‘top’
 Proceed ‘top’ position by 1
int pop(); Remove and return the
element at ‘top’ from Stack
 If Stack is empty, mention it someway
 Otherwise
 Decrease ‘top’ by 1 (making currently top
element inaccessible for sub-sequent calls)
 Return element at ‘top’ position
Stack using array … implementation
Implementation details and issues have been discussed during
class
Stack ADT … (implementing with Linked List)
Stack Operations …
Operation Description Pseudocode
StackUsingList() A constructor that creates an
underlying empty linked list
Create new instance of underlying linked list as ‘data’
int size(); Returns the number of
elements in the stack
 Uses size() function from linked list instance ‘data’ to
return the number of elements in stack
int is_empty(); Returns TRUE if Stack
contains no element. It
returns FALSE otherwise.
 Uses is_empty() function from underlying linked
list instance ‘data’ to return whether stack is empty
or not
int inspect_top() Returns the stack’s top
element without removing it
 If ‘start’ of ‘data’ points to NULL
 It returns -1
 Otherwise
 It returns value of data item in ‘start’
Stack Operations …
Operation Description Pseudocode
void push(int key); Adds the new element
onto the Stack
 Creates new node using ‘key’
 Adds it to ‘start’ of underlying linked list setting the
next pointer appropriately
int pop(); Remove and return the
element at start of
underlying list
 If Stack is empty, return -1
 Otherwise
 Create a new node pointer ‘temp’ and point it
to start of underlying list
 Move ‘start’ of underlying list to one step
forward
 Set next of temp to NULL
 Return data value of temp;
Stack using list … implementation
Implementation details and issues have been discussed during
class
Stack Operations(algorithms)
{
Repeat while true
[Menu option]
Write(“1: push”)
Write(“2: pop”)
Write(“3: peep top”)
Write(“4: peep stack”)
Write(“5: exit”)
[selection of option]
Selsct option opt
Option 1:
Write “Enter Value ”
Read value
Push(value)
Option 2:
Pop()
Option 3:
Peak top ()
Option 4:
Peak stack()
Option 5:
Exit
[end of selection option ]
[end of loop of step 1]
Push(value)
[check for stack overflow]
1. If Top== N
2. Write(“stack is full”)
3. Resturn
4. End if
5. Top =Top+1
6. Stack[Top]=value
7. Return
Pop ()
[check for stack underflow]
1. If Top==0
2. Write (“Stack is empty”)
3. Return
4. End if
5. Value = Stack[Top]
6. Delete Stack[Top]
7. Top =Top-1
8. Write (“Deleted value is ”, value)
9. Return
Peak Stack/ Stack Traversal
1. [check for underflow ]
if Top==0 then
write (“stack is empty”)
Return
end if
2. A=Top
3. Repeat while A>0
4. Write Stack[A]
5. A=A-1
[End of Loop]
6. Return
Data structures & Algorithms
Lecture#10 Stacks
Course contents
Stack
Stack ADT
Stack Operations
List Implementation
Applications
Sample Examples
Stack by using Link List
Struct stk
{
Int data;
Struct stk *link;
};
Struct stk *top = NULL;
Stack Operations(algorithms)
{
Repeat while true
[Menu option]
Write(“1: push”)
Write(“2: pop”)
Write(“3: peep top”)
Write(“4: peep stack”)
Write(“5: exit”)
[selection of option]
Selsct option opt
Option 1:
Write “Enter Value ”
Read value
Push(value)
Option 2:
Pop()
Option 3:
Peak top ()
Option 4:
Peak stack()
Option 5:
Exit
[end of selection option ]
[end of loop of step 1]
Push(Value)
Temp = new node
Temp -> data = value
Temp -> link = top
Top = temp
Return
Pop()
1. [check for underflow]
If( top == -1) then
Write(“stack underflow”)
Return;
[End of if structure]
2. Temp = top ;
3. Top = top -> link
4. Write(“Deleted value is ”);
5. Delete (temp)
6. Return ;
Peak stack()
1. [check underflow]
If (top = 0) then
Write(“underflow’’)
Return;
[ End of if structure]
2. A = top
Repeat while (A< top)
Write(top[A])
A = A+1
[End of loop structure]
3. Return;
Peak top()
1. [check for underflow]
If(top == -1)
Write(“stack is empty”)
Return ;
[end of if structure]
2. Write (stack[top])
3. Return ;
Stack implementations
Array Implementation Linked List Implementation
Stack is empty when ‘top’ is equal to ZERO Stack is empty if underlying list’s ‘start’ points
to NULL
Static array with fixed size i.e. is_full() can be
implemented
Dynamic data structure i.e. elements are
allocated memory on runtime
A variable ‘top’ is required to keep track of
number of elements in stack i.e. constant time
execution
A linear time function size() returns the
number of elements in Stack
‘top’ keeps track of position where elements
are being pushed / popped from Stack
‘start’ of underlying linked list keeps track of
position where elements are pushed / popped
Stack uses
Stack is used by operating systems to implement function calls
Recursive functions can be converted into non-recursive functions using
stacks
Stacks can be used to evaluate mathematical expressions in postfix form
Undo mechanism in text editors make use of stack

More Related Content

PPTX
Data Structures and Agorithm: DS 06 Stack.pptx
PPTX
Stack.pptx
PPTX
Stack in Data Structoiqowerdjsakdffuh0ownfiuh .pptx
PDF
Chapter 4 stack
PPTX
stack_ppt_DSA(sudipta samanta).pptx push,pop,peek operation
PPT
Stack data structures with definition and code
PPTX
Stack in C.pptx
PDF
Data Structures and Agorithm: DS 06 Stack.pptx
Stack.pptx
Stack in Data Structoiqowerdjsakdffuh0ownfiuh .pptx
Chapter 4 stack
stack_ppt_DSA(sudipta samanta).pptx push,pop,peek operation
Stack data structures with definition and code
Stack in C.pptx

Similar to Data Structure.pptx (20)

PDF
What is Stack, Its Operations, Queue, Circular Queue, Priority Queue
PDF
Chapter 5 Stack and Queue.pdf
PPTX
Stack and its operations
PPTX
Stacks in c++
PDF
PDF
04 stacks
PPTX
Data structure , stack , queue
PPTX
The presentation on stack data structure
PDF
Stacks
PPTX
STACK AND QUEUE CIRCULAR QUEUE PPTS.pptx
DOCX
DSA- Unit III- STACK AND QUEUE
PPTX
Stack - PPT Slides.pptx-data sturutures and algorithanms
PPTX
Unit II - LINEAR DATA STRUCTURES
PPT
Lec 4 Stack of Data Structures & Algorithms
PPTX
STACK.pptx
PPT
The Stack in data structures .ppt
PDF
DS UNIT 1.pdf
PDF
DS UNIT 1.pdf
PPT
Lecture 2c stacks
What is Stack, Its Operations, Queue, Circular Queue, Priority Queue
Chapter 5 Stack and Queue.pdf
Stack and its operations
Stacks in c++
04 stacks
Data structure , stack , queue
The presentation on stack data structure
Stacks
STACK AND QUEUE CIRCULAR QUEUE PPTS.pptx
DSA- Unit III- STACK AND QUEUE
Stack - PPT Slides.pptx-data sturutures and algorithanms
Unit II - LINEAR DATA STRUCTURES
Lec 4 Stack of Data Structures & Algorithms
STACK.pptx
The Stack in data structures .ppt
DS UNIT 1.pdf
DS UNIT 1.pdf
Lecture 2c stacks

More from SajalFayyaz (10)

PPTX
Data structure.pptx
PPT
Data structure.ppt
PPTX
data structure 9.pptx
PPTX
Data structure 8.pptx
PPTX
Data structure.pptx
PPTX
Data structure 6.pptx
PPTX
Data structure.pptx
PPTX
data structure3.pptx
PPTX
Data structure.pptx
PPTX
Data Structure.pptx
Data structure.pptx
Data structure.ppt
data structure 9.pptx
Data structure 8.pptx
Data structure.pptx
Data structure 6.pptx
Data structure.pptx
data structure3.pptx
Data structure.pptx
Data Structure.pptx

Recently uploaded (20)

PDF
REAL ILLUMINATI AGENT IN KAMPALA UGANDA CALL ON+256765750853/0705037305
PPTX
(Ali Hamza) Roll No: (F24-BSCS-1103).pptx
PPTX
Microsoft-Fabric-Unifying-Analytics-for-the-Modern-Enterprise Solution.pptx
PPTX
Managing Community Partner Relationships
PPT
Predictive modeling basics in data cleaning process
PDF
Transcultural that can help you someday.
PPTX
Database Infoormation System (DBIS).pptx
PDF
Systems Analysis and Design, 12th Edition by Scott Tilley Test Bank.pdf
PDF
Introduction to the R Programming Language
PDF
Global Data and Analytics Market Outlook Report
PPTX
mbdjdhjjodule 5-1 rhfhhfjtjjhafbrhfnfbbfnb
PPTX
SAP 2 completion done . PRESENTATION.pptx
PPTX
Qualitative Qantitative and Mixed Methods.pptx
PDF
Optimise Shopper Experiences with a Strong Data Estate.pdf
PPTX
01_intro xxxxxxxxxxfffffffffffaaaaaaaaaaafg
PDF
Business Analytics and business intelligence.pdf
PDF
Introduction to Data Science and Data Analysis
PPTX
modul_python (1).pptx for professional and student
PPTX
AI Strategy room jwfjksfksfjsjsjsjsjfsjfsj
PPTX
New ISO 27001_2022 standard and the changes
REAL ILLUMINATI AGENT IN KAMPALA UGANDA CALL ON+256765750853/0705037305
(Ali Hamza) Roll No: (F24-BSCS-1103).pptx
Microsoft-Fabric-Unifying-Analytics-for-the-Modern-Enterprise Solution.pptx
Managing Community Partner Relationships
Predictive modeling basics in data cleaning process
Transcultural that can help you someday.
Database Infoormation System (DBIS).pptx
Systems Analysis and Design, 12th Edition by Scott Tilley Test Bank.pdf
Introduction to the R Programming Language
Global Data and Analytics Market Outlook Report
mbdjdhjjodule 5-1 rhfhhfjtjjhafbrhfnfbbfnb
SAP 2 completion done . PRESENTATION.pptx
Qualitative Qantitative and Mixed Methods.pptx
Optimise Shopper Experiences with a Strong Data Estate.pdf
01_intro xxxxxxxxxxfffffffffffaaaaaaaaaaafg
Business Analytics and business intelligence.pdf
Introduction to Data Science and Data Analysis
modul_python (1).pptx for professional and student
AI Strategy room jwfjksfksfjsjsjsjsjfsjfsj
New ISO 27001_2022 standard and the changes

Data Structure.pptx

  • 1. CS261 DATA STRUCTURES & ALGORITHMS (WEEK-5) LECTURE-9 & 10 INTRODUCTION TO DATA STRUCTURES & ALGORITHMS Lecturer Azka Aziz Azka.a@scocs.edu.pk
  • 2. Data structures & Algorithms Lecture#09 Stacks
  • 3. Course contents Stack Stack ADT Stack Operations Array Implementation List Implementation Applications Sample Examples
  • 4. stack Stack is a data structure that stores data items. Data items when removed follow a particular order i.e. the item that was added to stack most recently will be removed first (Last In First Out)
  • 5. stack Stack items cannot be accessed randomly regardless of underlying data storage e.g. Array, Linked List A stack can be imagined as a cylinder with one end closed All items can be added and/or removed from same end (that is open) Adding an item onto stack is called ‘push operation’ Removing an item from stack is called ‘pop operation’
  • 6. Stack ADT … (implementing with Array)
  • 7. Stack Operations … Operation Description Pseudocode int inspect_top(); Returns element at ‘top’ with removing it from Stack  If stack is non-empty, return the element immediately beneath the ‘top’  Return -1 (indicator of Stack being empty) otherwise void push(int); Adds the new element onto the Stack  If Stack is full, mention it someway  Otherwise  Add new element to current position of ‘top’  Proceed ‘top’ position by 1 int pop(); Remove and return the element at ‘top’ from Stack  If Stack is empty, mention it someway  Otherwise  Decrease ‘top’ by 1 (making currently top element inaccessible for sub-sequent calls)  Return element at ‘top’ position
  • 8. Stack using array … implementation Implementation details and issues have been discussed during class
  • 9. Stack ADT … (implementing with Linked List)
  • 10. Stack Operations … Operation Description Pseudocode StackUsingList() A constructor that creates an underlying empty linked list Create new instance of underlying linked list as ‘data’ int size(); Returns the number of elements in the stack  Uses size() function from linked list instance ‘data’ to return the number of elements in stack int is_empty(); Returns TRUE if Stack contains no element. It returns FALSE otherwise.  Uses is_empty() function from underlying linked list instance ‘data’ to return whether stack is empty or not int inspect_top() Returns the stack’s top element without removing it  If ‘start’ of ‘data’ points to NULL  It returns -1  Otherwise  It returns value of data item in ‘start’
  • 11. Stack Operations … Operation Description Pseudocode void push(int key); Adds the new element onto the Stack  Creates new node using ‘key’  Adds it to ‘start’ of underlying linked list setting the next pointer appropriately int pop(); Remove and return the element at start of underlying list  If Stack is empty, return -1  Otherwise  Create a new node pointer ‘temp’ and point it to start of underlying list  Move ‘start’ of underlying list to one step forward  Set next of temp to NULL  Return data value of temp;
  • 12. Stack using list … implementation Implementation details and issues have been discussed during class
  • 13. Stack Operations(algorithms) { Repeat while true [Menu option] Write(“1: push”) Write(“2: pop”) Write(“3: peep top”) Write(“4: peep stack”) Write(“5: exit”) [selection of option] Selsct option opt Option 1: Write “Enter Value ” Read value Push(value) Option 2: Pop()
  • 14. Option 3: Peak top () Option 4: Peak stack() Option 5: Exit [end of selection option ] [end of loop of step 1]
  • 15. Push(value) [check for stack overflow] 1. If Top== N 2. Write(“stack is full”) 3. Resturn 4. End if 5. Top =Top+1 6. Stack[Top]=value 7. Return
  • 16. Pop () [check for stack underflow] 1. If Top==0 2. Write (“Stack is empty”) 3. Return 4. End if 5. Value = Stack[Top] 6. Delete Stack[Top] 7. Top =Top-1 8. Write (“Deleted value is ”, value) 9. Return
  • 17. Peak Stack/ Stack Traversal 1. [check for underflow ] if Top==0 then write (“stack is empty”) Return end if 2. A=Top 3. Repeat while A>0 4. Write Stack[A] 5. A=A-1 [End of Loop] 6. Return
  • 18. Data structures & Algorithms Lecture#10 Stacks
  • 19. Course contents Stack Stack ADT Stack Operations List Implementation Applications Sample Examples
  • 20. Stack by using Link List Struct stk { Int data; Struct stk *link; }; Struct stk *top = NULL;
  • 21. Stack Operations(algorithms) { Repeat while true [Menu option] Write(“1: push”) Write(“2: pop”) Write(“3: peep top”) Write(“4: peep stack”) Write(“5: exit”) [selection of option] Selsct option opt Option 1: Write “Enter Value ” Read value Push(value) Option 2: Pop()
  • 22. Option 3: Peak top () Option 4: Peak stack() Option 5: Exit [end of selection option ] [end of loop of step 1]
  • 23. Push(Value) Temp = new node Temp -> data = value Temp -> link = top Top = temp Return
  • 24. Pop() 1. [check for underflow] If( top == -1) then Write(“stack underflow”) Return; [End of if structure] 2. Temp = top ; 3. Top = top -> link 4. Write(“Deleted value is ”); 5. Delete (temp) 6. Return ;
  • 25. Peak stack() 1. [check underflow] If (top = 0) then Write(“underflow’’) Return; [ End of if structure] 2. A = top Repeat while (A< top) Write(top[A]) A = A+1 [End of loop structure] 3. Return;
  • 26. Peak top() 1. [check for underflow] If(top == -1) Write(“stack is empty”) Return ; [end of if structure] 2. Write (stack[top]) 3. Return ;
  • 27. Stack implementations Array Implementation Linked List Implementation Stack is empty when ‘top’ is equal to ZERO Stack is empty if underlying list’s ‘start’ points to NULL Static array with fixed size i.e. is_full() can be implemented Dynamic data structure i.e. elements are allocated memory on runtime A variable ‘top’ is required to keep track of number of elements in stack i.e. constant time execution A linear time function size() returns the number of elements in Stack ‘top’ keeps track of position where elements are being pushed / popped from Stack ‘start’ of underlying linked list keeps track of position where elements are pushed / popped
  • 28. Stack uses Stack is used by operating systems to implement function calls Recursive functions can be converted into non-recursive functions using stacks Stacks can be used to evaluate mathematical expressions in postfix form Undo mechanism in text editors make use of stack