SlideShare a Scribd company logo
Let’s learn  TACKS &  UEUES for  CLASS XII( C++) SENIOR SECONDARY GROUP Presented By : NITI ARORA
STACKS  AND  QUEUES
Objective Introduction to Data Structure Array and Link list Stack Array implementation of Stack Linked Implementation of Stack Queue Array implementation of Queue Linked Implementation of Queue
A mathematical and logical model of data is known as  Data Structure .   Primitive data structure :  The data structure, which is available in the compiler, is known as a  primitive data structure . Non-primitive data structure :  The data structure, which is not available in the compiler, is known as  non-primitive data structure .   DATA STRUCTURE: INTRODUCTION
  Linear Data Structure :  The data structure in which each element has access to maximum of one predecessor element and maximum of one successor element is known as  linear data structure .  Example:  Stack, Queue, etc . Non-linear Data Structure :  The data structure in which each element can access any number of predecessor elements and any number of successor elements is known as  Non-linear data structure . Example:  Tree, Graphs, etc .   DATA STRUCTURE: INTRODUCTION
Static Data Structure:  The data structure in which the number of elements is fixed, is known as  Static Data Structure . Example: Arrays Dynamic Data Structure:  The data structure in which the number of elements is not fixed, is known as  Dynamic Data Structure . Example: Linked List. TYPES OF DATA STRUCTURE
It is a  static data structure . It is a homogeneous collection of data. The elements in the array are stored on consecutive memory locations. Array is also known as a subscripted variable, e.g., A[i] is i th   element of the array A. ARRAY
STACK It is a non-primitive linear data structure in which  insertion  and  deletion  of elements takes place from  only one end , known as top.   It is a non-primitive linear data structure in which  insertion  and  deletion  of elements takes place from  two opposite ends  rear and front respectively.  QUEUE
STACKS Stacks is LIFO (Last In First Out) structure and physically can be implemented as an array or as a linked list. Stack, when implemented as an array is functionally same as any other array except that here, adding an element and deletion is done from the same direction just like a pile of books.
STACK Inserting an element in an array is known as  PUSH . Deleting an element from an array is known as  POP . Implementation of STACK in computers When functions are called. To convert a infix expression to postfix. To evaluate a postfix expression.
STACK A  stack  is a list in which insertion and deletion takes place only at one end called top. Thus, called LIFO. Representation  of STACK Each one of the above has one  open and one close  end and  data movement takes place from open end . data4 TOP data3 data2 data1 data2 data1 data3 data4 TOP TOP data4 data3 data2 data1 data1 data2 data3 data4 TOP
Basic operation and implementation of stacks Creation of stack Check for empty stack Check for full stack Add element in stack Delete element in stack Print stack
STACKS The fundamental operations that can be performed on stack are  PUSH and POP . When element is added on the stack top is called  PUSH .  And When Data is removed from the stack top, the operation is called  POP.
STACK The stack operation can be explained as follows:   Stack operation Content of array Push(a)   a Push(b)  ba Push( c)   cba Pop()   ba Pop()   a Push (a) a b a Push(b) b a C Push( c) b a Pop( c) a Pop(b)
STACKS A stack is a list, any list implementation can be used to implement stack. We can implement stack by the following data structures: Array called  Linear Stack Linked List called  Linked Stack
Linear Stack int S[5]; When  PUSH  is selected,  TOP  is  incremented, And data is added at that subscript location When  POP  is selected,  TOP  is  decremented, And data is removed from that subscript location Stack array int TOP; To hold address of location where data is inserted or deleted
Lets see working of  Linear Stack   Push 7 Push 20 Push 14 OVERFLOW ARRAY IS FULL TOP TOP TOP Top is incremented  TOP++ 10 9 8 10 9 8 7 10 9 8 7 20
CONTINUED…. Pop 20 Pop 7 UNDERFLOW OCCURS WHEN STACK IS EMPTY TOP Top Top TOP is decremented TOP -- 10 9 8 7 20 10 9 8 7 10 9 8
Lets see this using a program Program Code for the Same is  Click here to execute program Click here to see program code
A variable which holds an address of a memory location of another variable  is known as a  Pointer Variable (or only pointer).   Example int amt, *p; amt Requires 2 bytes 0x8ffebab4 *P Requires 2 bytes Pointer P holds address of amt POINTER     900     0x8ffebab4
NEW  operator in C++ returns the address of a block of unallocated bytes (depending on data  type a pointer pointing to). DELETE  operator in C++ reverses the process of new operator, by releasing the memory location from a pointer. It de allocates memory assigned by NEW. DYNAMIC ALLOCATION
A pointer, which stores the address of struct type data, is known as Pointer to structure. struct abc { int X,Y;  }; struct *g=new abc;  Holds address of dynamic object of struct abc   G   0x8ff134ab G->X 0x8ff134ab G->X G->Y LINK LIST To allocate dynamic allocation  and  store address in point g    
struct STACK // structure for stack { int data; STACK *link;  }; struct *TOP;  LINK STACK To hold address of First node of the list TOP pointer to holds address of dynamic objects of link stack. As we push a node TOP element get shifted and new node becomes first node.  LIFO implementation every new node becomes first node.  When we pop Top node is deleted and next node becomes first node.
Lets see working of  Linked stack * TOP * Temp NULL 0x8ffab2e6   A  new memory  is allocated and address is stored in temp X  NULL data  link 0x8ffab2e6   Top = Temp Top will hold address of new location * TOP 0x8ffab2e6   Thus,  TOP  will have this address. Push operation Initially top is assigned NULL Temp holds address of new location
Cont….. *TOP * Temp 0x8ffab2e6 0x8ffab2e8 Another  new memory  is allocated to an object Y data  link 0x8ffab2e8 * TOP 0x8ffab2e8 X  NULL data  link 0x8ffab2e6 temp-> link = Top Top=temp 0x8ffab2e6 Now TOP is TOP will get shifted Y becomes first node  X becomes second node
Cont….. * TOP * Temp 0x8ffab2e8 0x8ffab2e8 An  object  is deleted from top Y data  link 0x8ffab2e8 Thus Top will be * TOP 0x8ffab2e6 X  NULL data  link Temp=TOP TOP=TOP->link 0x8ffab2e6 delete temp  (to release memory) 0x8ffab2e6 TOP will get shifted X becomes first node  Y will be released POP operation
Lets see this using a program Program Code for the Same is  Click here to execute program Click here to see program code
Queues Queue  is  FIFO  (First In First Out)  structure and physically can be implemented as an array or as a linked list. Queue , when implemented as an array is functionally same as any other array except that here, adding an element and deletion is done from the one direction and deletion from other just like any queue of peoples.
Queues Inserting an element in an array is known as insert. Deleting an element from an array is known as delete But this is done with the help of two parameters rear and front. Implementation of queue in computers When program is executed.
Queue A Queue is a data structure in which insertion is done at the end and deletion is done from the front of queue. It is FIFO . Representation  of Queue Each one of the above has two  open  end Front and Rear. Insertion is done from Rear and deletion form Front Rear Front Front Rear Front Rear Front Rear data4 data3 data2 data2 data3 data4 data4 data3 data2 data2 data3 data4
Basic operation and implementation of QUEUE Creation of Queue Check for empty Queue Check for full Queue Add element in Queue Delete element in Queue Print Queue
QUEUE The fundamental operations that can be performed on Queue are  Insert and Delete . When element is added on the Queue Front is called  Insert .  And When Data is removed from the Queue Rear, the operation is called  Delete.
QUEUE The Queue operation can be explained as follows:   Queue operation Content of array Insert(a)   Front=0 Rear=0 Insert(b)  Front=0 Rear=1 Insert( c)   Front=0 Rear=2 Delete()   Front=1 Rear=2 Delete()   Front=2 Rear=2 If we try to insert Overflow occurs Though first two cells are empty a b a c b a c b c
Linear Queue int Q[5]; When  INSERT  is selected,  Rear  is  incremented, And data is added at that subscript location When  DELETE  is selected,  Front  is  decremented, And data is removed from that subscript location Queue array int Front, Rear; To hold address of location where data is inserted or deleted
QUEUE A Queue is a list, any list implementation can be used to implement Queue. We can implement Queue by the following data structures: Array called  Linear Queue Linked List called  Linked Queue
Lets see working of  LINEAR QUEUE Insert 7 Insert 20 Insert 14 OVERFLOW QUEUE  is full Front  rear rear rear Front Front Rear is incremented Rear++ 10 9 8 10 9 8 7 10 9 8 7 20
Lets see working of Queue as an array Delete Delete Underflow occurs when QUEUE  is empty Rear Front Rear Rear Front Front Front is incremented Front++ 10 9 8 7 20 9 8 7 20 8 7 20
Lets see this using a program Program Code for the Same is  Click here to execute program Click here to see program code
struct QUEUE // structure for QUEU { int data; QUEUE *link;  }; struct *Front,*Rear;  LINKED QUEUE To hold address of First and Last node of the list Front and Rear  pointer to holds address of dynamic objects of link stack. As we insert a node Rear element get shifted and new node becomes next node.  FIFO implementation every new node added at end. When we Delete Front node is deleted and next node becomes first node.
Lets see working of  Linked Queue * Front  * Rear * Temp NULL  NULL 0x8ffab2e6   A  new memory  is allocated and address is stored in temp X  NULL data  link 0x8ffab2e6   Front=Rear  = Temp Front and Rear  will hold address of First location * Front  * Rear 0x8ffab2e6   0x8ffab2e6   Thus,  Front and Rear  will have this address . Insert operation Initially Front and Rear is assigned NULL Temp holds address of new location
Cont….. *Front  * Rear * Temp 0x8ffab2e6  0x8ffab2e6 0x8ffab2e8 Another  new memory  is allocated to an object X data  link 0x8ffab2e6 * Rear 0x8ffab2e8 Y  NULL data  link 0x8ffab2e8 temp-> link = Rear Rear=temp 0x8ffab2e8 Now Rear is Rear will get shifted Y becomes Last node
Cont….. * Front  * Rear * Temp 0x8ffab2e6 0x8ffab2e8 0x8ffab2e6 An  object  is deleted from Front X data  link 0x8ffab2e6 Thus Front will be * Front 0x8ffab2e8 Y  NULL data  link Temp=Front Front=Front->link 0x8ffab2e8 delete temp  (to release memory) 0x8ffab2e8 Front will get shifted Y becomes first node  X will be released Delete operation
Lets see this using a program Program Code for the Same is  Click here to execute program Click here to see program code
CIRCULAR QUEUE The fundamental operations that can be performed on Circular Queue are  Insert and Delete . When overflow occurs though the free cells are available, Rear reaches ends Circular Queue is implemented to avoid this drawback. In Circular Queue as soon as Rear reaches maximum it should reset to 0.
QUEUE The Queue operation can be explained as follows:   Queue operation Content of array Insert(a)   Front=0 Rear=0 Insert(b)  Front=0 Rear=1 Insert( c)   Front=0 Rear=2 Delete()   Front=1 Rear=2 Insert (d)   Front=2 Rear=0 Overflow occurs only when Array is FULL. Rear moves to 0 if array is empty a b a c b a c b c d
Lets see this using a program Program Code for the Same is  Click here to execute program Click here to see program code
Do you have any QUESTIONS ?
TEST YOUR KNOWLEDGE What is difference between Stack & Queue? What is Dynamic Allocation? What is the significance of Top? What is the significance of Front & Rear? What is Overflow? What is Underflow? Where Stack is Implemented?
THANKS NITI ARORA FROM

More Related Content

PPTX
Tree in data structure
PDF
Linked list implementation of Stack
DOCX
Artificial Intelligence Lab File
PPT
Chapter 8: tree data structure
PPTX
Red black tree in data structure
PPSX
PPTX
Doubly circular linked list
PPT
Queue Data Structure
Tree in data structure
Linked list implementation of Stack
Artificial Intelligence Lab File
Chapter 8: tree data structure
Red black tree in data structure
Doubly circular linked list
Queue Data Structure

What's hot (20)

PPT
PPTX
Data structure tree - intermediate
PPTX
B+ trees - Insertion, Deletion
PPTX
Ppt on Linked list,stack,queue
PPTX
Ppt bubble sort
PPTX
deque and it applications
PPTX
Trees data structure
PPTX
Introduction to stack
PPT
BINARY TREE REPRESENTATION.ppt
PPT
Stacks & Queues By Ms. Niti Arora
PPTX
Sorting Algorithms
DOC
Time and space complexity
PPTX
Stacks in DATA STRUCTURE
PDF
linear search and binary search
PPTX
Trees (data structure)
PPT
Binary tree
PPT
Queue implementation
PPTX
trees in data structure
Data structure tree - intermediate
B+ trees - Insertion, Deletion
Ppt on Linked list,stack,queue
Ppt bubble sort
deque and it applications
Trees data structure
Introduction to stack
BINARY TREE REPRESENTATION.ppt
Stacks & Queues By Ms. Niti Arora
Sorting Algorithms
Time and space complexity
Stacks in DATA STRUCTURE
linear search and binary search
Trees (data structure)
Binary tree
Queue implementation
trees in data structure
Ad

Viewers also liked (7)

PPS
Solo En Mexico1
PPT
Welcome+To+Penghu
PPT
Del.Icio.Us
PPT
Reforma Religiosa
PDF
Nielsen Online Cristina Papini Osservatorio Multicanalità2007 15112007
PPT
5 4a Slope Intercept form
PPT
Cogneon Praesentation N2early 2007 11 15
Solo En Mexico1
Welcome+To+Penghu
Del.Icio.Us
Reforma Religiosa
Nielsen Online Cristina Papini Osservatorio Multicanalità2007 15112007
5 4a Slope Intercept form
Cogneon Praesentation N2early 2007 11 15
Ad

Similar to Stacks & Queues (20)

PPT
Rana Junaid Rasheed
PPT
Stacks queues-1220971554378778-9
DOCX
CDS artificial intelligence and Machine.docx
PPTX
Stack and queue power point presentation data structure and algorithms Stack-...
PPTX
Data structure , stack , queue
PPTX
stacks and queues
DOC
Data Structure
PPTX
Stack and Queue
PPSX
Stacks fundamentals
DOCX
Ds
PPTX
STACK, LINKED LIST ,AND QUEUE
PPTX
chapter three ppt.pptx
PDF
Chapter 5 Stack and Queue.pdf
PPTX
introduction of the Stacks and Queues.pptx
PPTX
Abscddnddmdkwkkstack implementation.pptx
PPTX
Stack.pptx
PPTX
هياكلبيانات
PPTX
Stack and queue
PPTX
01-Introduction of DSA-1.pptx
Rana Junaid Rasheed
Stacks queues-1220971554378778-9
CDS artificial intelligence and Machine.docx
Stack and queue power point presentation data structure and algorithms Stack-...
Data structure , stack , queue
stacks and queues
Data Structure
Stack and Queue
Stacks fundamentals
Ds
STACK, LINKED LIST ,AND QUEUE
chapter three ppt.pptx
Chapter 5 Stack and Queue.pdf
introduction of the Stacks and Queues.pptx
Abscddnddmdkwkkstack implementation.pptx
Stack.pptx
هياكلبيانات
Stack and queue
01-Introduction of DSA-1.pptx

More from tech4us (8)

PPT
Edge1
PPS
Kmap Slideshare
PPS
Kmap Slideshare
PPS
Cruched Eau
PPT
Sql
PPT
Rdbms
PPT
Pointers (Pp Tminimizer)
PPT
eBeam : Intractive Whiteboard System
Edge1
Kmap Slideshare
Kmap Slideshare
Cruched Eau
Sql
Rdbms
Pointers (Pp Tminimizer)
eBeam : Intractive Whiteboard System

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
KodekX | Application Modernization Development
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
NewMind AI Weekly Chronicles - August'25 Week I
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Review of recent advances in non-invasive hemoglobin estimation
KodekX | Application Modernization Development
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
sap open course for s4hana steps from ECC to s4
MYSQL Presentation for SQL database connectivity
Reach Out and Touch Someone: Haptics and Empathic Computing
The AUB Centre for AI in Media Proposal.docx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Chapter 3 Spatial Domain Image Processing.pdf
cuic standard and advanced reporting.pdf
Approach and Philosophy of On baking technology
Network Security Unit 5.pdf for BCA BBA.
Encapsulation_ Review paper, used for researhc scholars
Profit Center Accounting in SAP S/4HANA, S4F28 Col11

Stacks & Queues

  • 1. Let’s learn TACKS & UEUES for CLASS XII( C++) SENIOR SECONDARY GROUP Presented By : NITI ARORA
  • 2. STACKS AND QUEUES
  • 3. Objective Introduction to Data Structure Array and Link list Stack Array implementation of Stack Linked Implementation of Stack Queue Array implementation of Queue Linked Implementation of Queue
  • 4. A mathematical and logical model of data is known as Data Structure .   Primitive data structure : The data structure, which is available in the compiler, is known as a primitive data structure . Non-primitive data structure : The data structure, which is not available in the compiler, is known as non-primitive data structure .   DATA STRUCTURE: INTRODUCTION
  • 5.   Linear Data Structure : The data structure in which each element has access to maximum of one predecessor element and maximum of one successor element is known as linear data structure . Example: Stack, Queue, etc . Non-linear Data Structure : The data structure in which each element can access any number of predecessor elements and any number of successor elements is known as Non-linear data structure . Example: Tree, Graphs, etc .   DATA STRUCTURE: INTRODUCTION
  • 6. Static Data Structure: The data structure in which the number of elements is fixed, is known as Static Data Structure . Example: Arrays Dynamic Data Structure: The data structure in which the number of elements is not fixed, is known as Dynamic Data Structure . Example: Linked List. TYPES OF DATA STRUCTURE
  • 7. It is a static data structure . It is a homogeneous collection of data. The elements in the array are stored on consecutive memory locations. Array is also known as a subscripted variable, e.g., A[i] is i th element of the array A. ARRAY
  • 8. STACK It is a non-primitive linear data structure in which insertion and deletion of elements takes place from only one end , known as top. It is a non-primitive linear data structure in which insertion and deletion of elements takes place from two opposite ends rear and front respectively. QUEUE
  • 9. STACKS Stacks is LIFO (Last In First Out) structure and physically can be implemented as an array or as a linked list. Stack, when implemented as an array is functionally same as any other array except that here, adding an element and deletion is done from the same direction just like a pile of books.
  • 10. STACK Inserting an element in an array is known as PUSH . Deleting an element from an array is known as POP . Implementation of STACK in computers When functions are called. To convert a infix expression to postfix. To evaluate a postfix expression.
  • 11. STACK A stack is a list in which insertion and deletion takes place only at one end called top. Thus, called LIFO. Representation of STACK Each one of the above has one open and one close end and data movement takes place from open end . data4 TOP data3 data2 data1 data2 data1 data3 data4 TOP TOP data4 data3 data2 data1 data1 data2 data3 data4 TOP
  • 12. Basic operation and implementation of stacks Creation of stack Check for empty stack Check for full stack Add element in stack Delete element in stack Print stack
  • 13. STACKS The fundamental operations that can be performed on stack are PUSH and POP . When element is added on the stack top is called PUSH . And When Data is removed from the stack top, the operation is called POP.
  • 14. STACK The stack operation can be explained as follows: Stack operation Content of array Push(a) a Push(b) ba Push( c) cba Pop() ba Pop() a Push (a) a b a Push(b) b a C Push( c) b a Pop( c) a Pop(b)
  • 15. STACKS A stack is a list, any list implementation can be used to implement stack. We can implement stack by the following data structures: Array called Linear Stack Linked List called Linked Stack
  • 16. Linear Stack int S[5]; When PUSH is selected, TOP is incremented, And data is added at that subscript location When POP is selected, TOP is decremented, And data is removed from that subscript location Stack array int TOP; To hold address of location where data is inserted or deleted
  • 17. Lets see working of Linear Stack Push 7 Push 20 Push 14 OVERFLOW ARRAY IS FULL TOP TOP TOP Top is incremented TOP++ 10 9 8 10 9 8 7 10 9 8 7 20
  • 18. CONTINUED…. Pop 20 Pop 7 UNDERFLOW OCCURS WHEN STACK IS EMPTY TOP Top Top TOP is decremented TOP -- 10 9 8 7 20 10 9 8 7 10 9 8
  • 19. Lets see this using a program Program Code for the Same is Click here to execute program Click here to see program code
  • 20. A variable which holds an address of a memory location of another variable is known as a Pointer Variable (or only pointer). Example int amt, *p; amt Requires 2 bytes 0x8ffebab4 *P Requires 2 bytes Pointer P holds address of amt POINTER     900     0x8ffebab4
  • 21. NEW operator in C++ returns the address of a block of unallocated bytes (depending on data type a pointer pointing to). DELETE operator in C++ reverses the process of new operator, by releasing the memory location from a pointer. It de allocates memory assigned by NEW. DYNAMIC ALLOCATION
  • 22. A pointer, which stores the address of struct type data, is known as Pointer to structure. struct abc { int X,Y; }; struct *g=new abc; Holds address of dynamic object of struct abc   G   0x8ff134ab G->X 0x8ff134ab G->X G->Y LINK LIST To allocate dynamic allocation and store address in point g    
  • 23. struct STACK // structure for stack { int data; STACK *link; }; struct *TOP; LINK STACK To hold address of First node of the list TOP pointer to holds address of dynamic objects of link stack. As we push a node TOP element get shifted and new node becomes first node. LIFO implementation every new node becomes first node. When we pop Top node is deleted and next node becomes first node.
  • 24. Lets see working of Linked stack * TOP * Temp NULL 0x8ffab2e6 A new memory is allocated and address is stored in temp X NULL data link 0x8ffab2e6 Top = Temp Top will hold address of new location * TOP 0x8ffab2e6 Thus, TOP will have this address. Push operation Initially top is assigned NULL Temp holds address of new location
  • 25. Cont….. *TOP * Temp 0x8ffab2e6 0x8ffab2e8 Another new memory is allocated to an object Y data link 0x8ffab2e8 * TOP 0x8ffab2e8 X NULL data link 0x8ffab2e6 temp-> link = Top Top=temp 0x8ffab2e6 Now TOP is TOP will get shifted Y becomes first node X becomes second node
  • 26. Cont….. * TOP * Temp 0x8ffab2e8 0x8ffab2e8 An object is deleted from top Y data link 0x8ffab2e8 Thus Top will be * TOP 0x8ffab2e6 X NULL data link Temp=TOP TOP=TOP->link 0x8ffab2e6 delete temp (to release memory) 0x8ffab2e6 TOP will get shifted X becomes first node Y will be released POP operation
  • 27. Lets see this using a program Program Code for the Same is Click here to execute program Click here to see program code
  • 28. Queues Queue is FIFO (First In First Out) structure and physically can be implemented as an array or as a linked list. Queue , when implemented as an array is functionally same as any other array except that here, adding an element and deletion is done from the one direction and deletion from other just like any queue of peoples.
  • 29. Queues Inserting an element in an array is known as insert. Deleting an element from an array is known as delete But this is done with the help of two parameters rear and front. Implementation of queue in computers When program is executed.
  • 30. Queue A Queue is a data structure in which insertion is done at the end and deletion is done from the front of queue. It is FIFO . Representation of Queue Each one of the above has two open end Front and Rear. Insertion is done from Rear and deletion form Front Rear Front Front Rear Front Rear Front Rear data4 data3 data2 data2 data3 data4 data4 data3 data2 data2 data3 data4
  • 31. Basic operation and implementation of QUEUE Creation of Queue Check for empty Queue Check for full Queue Add element in Queue Delete element in Queue Print Queue
  • 32. QUEUE The fundamental operations that can be performed on Queue are Insert and Delete . When element is added on the Queue Front is called Insert . And When Data is removed from the Queue Rear, the operation is called Delete.
  • 33. QUEUE The Queue operation can be explained as follows: Queue operation Content of array Insert(a) Front=0 Rear=0 Insert(b) Front=0 Rear=1 Insert( c) Front=0 Rear=2 Delete() Front=1 Rear=2 Delete() Front=2 Rear=2 If we try to insert Overflow occurs Though first two cells are empty a b a c b a c b c
  • 34. Linear Queue int Q[5]; When INSERT is selected, Rear is incremented, And data is added at that subscript location When DELETE is selected, Front is decremented, And data is removed from that subscript location Queue array int Front, Rear; To hold address of location where data is inserted or deleted
  • 35. QUEUE A Queue is a list, any list implementation can be used to implement Queue. We can implement Queue by the following data structures: Array called Linear Queue Linked List called Linked Queue
  • 36. Lets see working of LINEAR QUEUE Insert 7 Insert 20 Insert 14 OVERFLOW QUEUE is full Front rear rear rear Front Front Rear is incremented Rear++ 10 9 8 10 9 8 7 10 9 8 7 20
  • 37. Lets see working of Queue as an array Delete Delete Underflow occurs when QUEUE is empty Rear Front Rear Rear Front Front Front is incremented Front++ 10 9 8 7 20 9 8 7 20 8 7 20
  • 38. Lets see this using a program Program Code for the Same is Click here to execute program Click here to see program code
  • 39. struct QUEUE // structure for QUEU { int data; QUEUE *link; }; struct *Front,*Rear; LINKED QUEUE To hold address of First and Last node of the list Front and Rear pointer to holds address of dynamic objects of link stack. As we insert a node Rear element get shifted and new node becomes next node. FIFO implementation every new node added at end. When we Delete Front node is deleted and next node becomes first node.
  • 40. Lets see working of Linked Queue * Front * Rear * Temp NULL NULL 0x8ffab2e6 A new memory is allocated and address is stored in temp X NULL data link 0x8ffab2e6 Front=Rear = Temp Front and Rear will hold address of First location * Front * Rear 0x8ffab2e6 0x8ffab2e6 Thus, Front and Rear will have this address . Insert operation Initially Front and Rear is assigned NULL Temp holds address of new location
  • 41. Cont….. *Front * Rear * Temp 0x8ffab2e6 0x8ffab2e6 0x8ffab2e8 Another new memory is allocated to an object X data link 0x8ffab2e6 * Rear 0x8ffab2e8 Y NULL data link 0x8ffab2e8 temp-> link = Rear Rear=temp 0x8ffab2e8 Now Rear is Rear will get shifted Y becomes Last node
  • 42. Cont….. * Front * Rear * Temp 0x8ffab2e6 0x8ffab2e8 0x8ffab2e6 An object is deleted from Front X data link 0x8ffab2e6 Thus Front will be * Front 0x8ffab2e8 Y NULL data link Temp=Front Front=Front->link 0x8ffab2e8 delete temp (to release memory) 0x8ffab2e8 Front will get shifted Y becomes first node X will be released Delete operation
  • 43. Lets see this using a program Program Code for the Same is Click here to execute program Click here to see program code
  • 44. CIRCULAR QUEUE The fundamental operations that can be performed on Circular Queue are Insert and Delete . When overflow occurs though the free cells are available, Rear reaches ends Circular Queue is implemented to avoid this drawback. In Circular Queue as soon as Rear reaches maximum it should reset to 0.
  • 45. QUEUE The Queue operation can be explained as follows: Queue operation Content of array Insert(a) Front=0 Rear=0 Insert(b) Front=0 Rear=1 Insert( c) Front=0 Rear=2 Delete() Front=1 Rear=2 Insert (d) Front=2 Rear=0 Overflow occurs only when Array is FULL. Rear moves to 0 if array is empty a b a c b a c b c d
  • 46. Lets see this using a program Program Code for the Same is Click here to execute program Click here to see program code
  • 47. Do you have any QUESTIONS ?
  • 48. TEST YOUR KNOWLEDGE What is difference between Stack & Queue? What is Dynamic Allocation? What is the significance of Top? What is the significance of Front & Rear? What is Overflow? What is Underflow? Where Stack is Implemented?