Chapter 2. Stack & Queues. M hiwa ahmad aziz
|
|
- Roger Conley
- 5 years ago
- Views:
Transcription
1 . Chapter 2 Stack & Queues M hiwa ahmad aziz 1
2 Stack A stack structure with a series of data elements that Allows access to only the last item inserted. An item is inserted or removed from the stack from one end called the top of the stack. This mechanism is called Last-In-First-Out (LIFO). Adding a data item on the top is called pushing, while removing an item from the top is called popping it. push and pop are the primary stack operations. Top changed -1 to n and in first top=-1. 2
3 Stack If top=-1 stack is empty and if top=n -1stack is full 3
4 stk: Stack top = 3 or count = 4 If stack is represented by top = -1 or count = 0, then an empty stack To add (push) an element, either: Increment top and store the element in stk[top], or Store the element in stk[count-1] and increment count To remove (pop) an element, either: Get the element from stk[top] and decrement top, or Decrement count and get the element in stk[count-1] 4
5 Constructor Constructor in java is a special type of method that is used to initialize the object and field. Java constructor is invoked at the time of object creation. Rules for creating java constructor 1. Constructor name must be same as its class name 2. Constructor must have no explicit return type Types of java constructors 1. Default constructor (no-arg constructor) 2. Parameterized constructor 5
6 Constructor output Default Constructor 6
7 Constructor Constructor Main method 7
8 Push in Stack public void push(object item) { if(top==stack.length-1) { System.out.println("Stack is Full"); return; //end if stack[++top]=item; 8
9 Pop in Stack public object pop( int stk, int top) { /* return the top element from the stack */ if (top == -1) { System.out.println("Stack is Empty"); return null; return stk [top--]; 9
10 Peek and display and count public Object peek() { if (top == -1) { System.out.println("stack is empty"); return 0; return stack[top];. void count() { System.out.println(top + 1); public void display() { for (int i = top; i >= 0; i--) System.out.println(stack[i] + " "); 10
11 push& pop Example : implement the following operations in sequence from left to right by drawing shapes. Push(15), Push(7), Push(-12), pop(a), pop(b), Push(3) 11
12 Error checking There are two stack errors that can occur: Underflow: trying to pop (or peek at) an empty stack Overflow: trying to push onto an already full stack For underflow, you should throw an exception You could create your own, more informative exception For overflow, you could do the same things Or, you could check for the problem, and copy everything into a new, larger array 12
13 Sharing space Of course, the bottom of the stack could be at the other end stk: top = 6 or count = 4 Sometimes this is done to allow two stacks to share the same storage area. Stk1=n1, stk2= n2 Stks= n1 +n2 stks: topstk1 = 2 topstk2 = 6 13
14 Multiple stack But if more than two stack implemented in an array, The previous method is not applicable. In this case, for the production of n stack in the array S [1... m], n part of our array. For each stack i, b [i] to the lowest element and t [i] refers to the highest element, and if b [i] = t [i] is the i-th stack is empty. 14
15 Multiple stack Example : If the array S [ ] we want to create 4 stack,what is the address of the beginning of each stack? (Assuming the same stack size). t[1]=[495/4](1-1)+1=1 t[2]=[495/4](2-1)+1=124 t[3]=[495/4](3-1)+1=247 t[4]=[495/4](4-1)+1=370 15
16 implement a Stack package stackmethods; import java.util.arrays; class StackMethods { private int top; int size; int[] stack ; public StackMethods(int arraysize){ size=arraysize; stack= new int[size]; top=-1; public void push(int value){ if(top==size-1){ System.out.println("Stack is full, can't push a value"); else{ stack[++ top]=value; { public int pop(){ if(top==-1) System.out.println("Can't pop...stack is empty"); return stack[top - -]; public boolean isempty(){ return top==-1; public void display(){ for(int i=0;i<=top;i++){ System.out.print(stack[i]+ " "); System.out.println(); public static void main(string[] args) StackMethods newstack = new StackMethods(5); newstack.push(10); newstack.push(1); newstack.push(50); newstack.push(20); newstack.push(90); newstack.display(); newstack.pop(); newstack.pop(); newstack.pop(); newstack.pop(); newstack.display(); 16
17 Import java.util.stack The Stack ADT, as provided in java.util.stack: Stack(): the constructor boolean empty() (but also inherits isempty()) Object push(object item) Object peek() Object pop() int search(object o): Returns the 1-based position of the object on this stack 17
18 Other Implement a Stack package arraystack; import java.util.stack; public class ArrayStack { Object stack[]; int top; ArrayStack(int n){ stack=new Object[n]; top=-1; //end constrctor ArrayStack // public void push(object item){ if(top==stack.length-1){ // public Object peek(){ if(isempty()) return null; return stack[top]; //end peek // public boolean isempty(){ return (top==-1); //end isempty // public int size(){ return top+1; //end size // public void reversestring(){ System.out.println("size of stack= "+stk.size()); System.out.println("pop= "+stk.pop()); stk.push('e'); stk.push('f'); System.out.println("top of stack= "+stk.peek()); System.out.print("string after reverse: "); stk.reversestring(); System.out.println(); // TODO code application logic here System.out.println("Stack is Full"); return; //end if top++; stack[top]=item; //end push // public Object pop(){ { if(top==-1) // or can if(isempty()) System.out.println("Stack is Empty"); return null; //end if Object tmp=stack[top]; top--; return tmp; //end pop ArrayStack stk=new ArrayStack(6); String word="abcdef"; for(int i=0;i<word.length();i++) stk.push(word.charat(i)); while(!stk.isempty()) System.out.print(stk.pop()+" "); //end reversestring public static void main(string[] args) { ArrayStack stk=new ArrayStack(4); stk.push('a'); stk.push('b'); stk.push('c'); stk.push('d'); 18
19 application of stack Example: If the sequence numbers 1,2,3,4,5,6, respectively, from left to right stack Which of the following output of the stack is not possible. a) b) c) d) Input: 1, 3, 4, 5, d) a) b) c) d)
20 application of stack Example: the sequence numbers 1,2,3,4,5,6,7,8 respectively, from left to right stack. can the following output with push and pop. Answer : 20
21 Infix to Postfix & prefix Conversion The expression A + B * C + D can be rewritten as ((A + (B * C)) + D) to show that the multiplication happens first, followed by the leftmost addition. A + B * C + D can be written as (((A + B) *C) + D) since the addition operations associate from left parenthesis to prefix expression and right parenthesis to postfix expression. Example : postfix (A + (B * C)) = ABC*+ Prefix: (A + (B * C)) = +A*BC 21
22 Infix to Postfix & prefix Conversion Example: more complex expression: (A + B) * C - (D - E) * (F + G). 22
23 Infix to Postfix & prefix Conversion Example: more complex expression: Postfix prefix 23
24 Infix to Postfix & prefix Conversion Example: more complex expression: (A + B) * C - (D - E) * (F + G). 24
25 General algorithm for Conversion Infix-to-Postfix Scan the token list from left to right. 1) If the token is an operand, append it to the end of the output list. 2) If the token is an operator, *, /, +, or -, push it on the stack. However, first remove any operators already on the stack that have higher or equal precedence and append them to the output list. 3) When the input expression has been completely processed, check the stack. Any operators still on the stack can be removed and appended to the end of the output list. 25
26 General Infix-to-prefix Conversion 26
27 General Infix-to-postfix Conversion 27
28 General Infix-to-Postfix Conversion Following figure shows the conversion algorithm working on the expression A * B + C * D. Note that the first * operator is removed upon seeing the + operator. Also, + stays on the stack when the second * occurs, since multiplication has precedence over addition. At the end of the infix expression the stack is popped twice, removing both operators and placing + as the last operator in the postfix expression. 28
29 example We can now handle this result by placing it back on the stack so that it can be used as an operand for the later operators in the expression. When the final operator is processed, there will be only one value left on the stack. Pop and return it as the result of the expression. Ex= * + 29
30 Use the stack for calculate following postfix expression / Example(postfix to infix) 30
31 Example(prefix to infix) Use the stack for calculate following prefix expression. 31
32 Example(prefix to postfix) Use the stack for convert following prefix expression to postfix. 32
33 Queue Queue is an ADT data structure similar to stack, except that the first item to be inserted is the first one to be removed. This mechanism is called First-In-First-Out (FIFO). Placing an item in a queue is called insertion or enqueue, which is done at the end of the queue called rear. Removing an item from a queue is called deletion or dequeue, which is done at the start of the queue called front. Total no of elements in queue= rear front +1 33
34 Queue Applications Some of the applications are : Real-World Applications Cashier lines in any store Check out at a bookstore Bank / ATM Call an airline Computer Science Applications Print lines of a document Printer sharing between computers Recognizing palindromes Shared resource usage (CPU, memory access, ) 34
35 Queue implementation First the queue is empty insert insert insert delete delete
36 When queue is empty FRONT = 0 and REAR = -1 Insertion Adding an element in queue will increased value of REAR by 1 Removal rear = rear + 1 or rear ++ Removing an element from queue will increased value of FRONT by 1 front = front+ 1 or front++ 36
37 Enqueue operation 37
38 Enqueue operation rear==maxsize-1 (front =rear )!!! 38
39 Algorithm Enqueue (item) 1.If (rear = size -1 ) print ( queue overflow ) return 2.else rear ++ Queue [rear] = item 39
40 Dequeue operation que[front++]=null ; 40
41 Dequeue operation (front =rear) is empty or full!!!! 41
42 Algorithm Enqueue (item) 1.if (front =rear && count=0 ) print queue empty ; return; 2. else item = queue [front]; Front ++; Return item ; 42
43 Circuit Queue After a few insert and delete operations the rear might reach the end of the queue and no more items can be inserted although the items from the front of the queue have been deleted and there is space in the queue. To solve this problem, queues implement wrapping around. Such queues are called Circular Queues. Both the front and the rear pointers wrap around to the beginning of the array. It is also called as Ring buffer. Items can inserted and deleted from a queue in O(1) time. 43
44 Circuit Queue for insert in circuit queue 44
45 Empty Circuit Queue : Circuit Queue if (front==rear ) && count==0 queue is empty if (front==rear ) && count==size queue is full 45
46 For know full circuit queue or empty we have to define variable count=0 if insert itrm count++ and if delete item count--. If (count==0) && (rear==front) queue is empty If (count== size) && (rear==front) queue is full If (rear == size -1) means circuit queue and rear=0 For insert que[++rear]=item; and count++ For remove que[front ++]=item; and count-- 46
47 Creat queue & insert package arrayqueue; public class ArrayQueue { int maxsize; Object []que; int front; int rear; int count; ArrayQueue(int s){ maxsize=s; que=new Object[maxsize]; front=0 ; rear=-1; //end ArrayQueue // public void insert(object item){ if (count == size) { System.out.println("queue is full"); return; if (rear == size - 1) { rear = 0; que[rear] = item; else { que[++rear] = item; count++; //end insert 47
48 Remove & peek & empty & display public Object remove(){ if (count == 0) { System.out.println("queue is empty"); return 0; Object item = que[front]; que[front] = null; if (front == size - 1) { front = 0; else { front++; count--; return item; //end remove // public Object peek(){ return que[front]; // public boolean isempty(){ return count==0; // public int size(){ return count; // public void display(){ System.out.print("Queue: "); for(int i=0;i<= rear ;i++) System.out.print(que[i]+" "); System.out.println(); 48
49 public static void main(string[]args){ ArrayQueue q=new ArrayQueue(3); q.insert('a'); q.insert('b'); q.insert('c'); q.display(); System.out.println(q.remove()+" is deleted"); System.out.println("Queue after delete"); q.display(); q.insert('d'); q.display(); Main method System.out.println("peek= "+q.peek()); System.out.println("Queue size= "+q.size()); //end main //end class 49
50 50
Lecture Data Structure Stack
Lecture Data Structure Stack 1.A stack :-is an abstract Data Type (ADT), commonly used in most programming languages. It is named stack as it behaves like a real-world stack, for example a deck of cards
More informationAssociate Professor Dr. Raed Ibraheem Hamed
Associate Professor Dr. Raed Ibraheem Hamed University of Human Development, College of Science and Technology Computer Science Department 2015 2016 1 What this Lecture is about: Stack Structure Stack
More informationStack ADT. ! push(x) puts the element x on top of the stack! pop removes the topmost element from the stack.
STACK Stack ADT 2 A stack is an abstract data type based on the list data model All operations are performed at one end of the list called the top of the stack (TOS) LIFO (for last-in first-out) list is
More informationWrite a program to implement stack or any other data structure in Java ASSIGNMENT NO 15
Write a program to implement stack or any other data structure in Java ASSIGNMENT NO 15 Title: Demonstrate implementation of data structure in Java Objectives: To learn implementation of data structure
More informationADVANCED DATA STRUCTURES USING C++ ( MT-CSE-110 )
ADVANCED DATA STRUCTURES USING C++ ( MT-CSE-110 ) Unit - 2 By: Gurpreet Singh Dean Academics & H.O.D. (C.S.E. / I.T.) Yamuna Institute of Engineering & Technology, Gadholi What is a Stack? A stack is a
More informationSTACKS AND QUEUES. Problem Solving with Computers-II
STACKS AND QUEUES Problem Solving with Computers-II 2 Stacks container class available in the C++ STL Container class that uses the Last In First Out (LIFO) principle Methods i. push() ii. iii. iv. pop()
More informationThe Bucharest University of Economic Studies. Data Structures. ADTs-Abstract Data Types Stacks and Queues
The Bucharest University of Economic Studies Data Structures ADTs-Abstract Data Types Stacks and Queues Agenda Definition Graphical representation Internal interpretation Characteristics Operations Implementations
More informationCMPS 390 Data Structures
CMPS 390 Data Structures Programming Assignment #02 Infix to Postfix 1. Complete two methods in Java program (Postfix.java) to convert an infix expression into a postfix expression and evaluate the postfix
More information1. Stack Implementation Using 1D Array
Lecture 5 Stacks 1 Lecture Content 1. Stack Implementation Using 1D Array 2. Stack Implementation Using Singly Linked List 3. Applications of Stack 3.1 Infix and Postfix Arithmetic Expressions 3.2 Evaluate
More informationStacks (5.1) Abstract Data Types (ADTs) CSE 2011 Winter 2011
Stacks (5.1) CSE 2011 Winter 2011 26 January 2011 1 Abstract Data Types (ADTs) An abstract data type (ADT) is an abstraction of a data structure An ADT specifies: Data stored Operations on the data Error
More informationInterfaces & Generics
Interfaces & Generics CSC207 Winter 2018 The Programming Interface The "user" for almost all code is a programmer. That user wants to know:... what kinds of object your class represents... what actions
More informationStacks. Stacks. Main stack operations. The ADT Stack stores arbitrary objects. Insertions and deletions follow the last-in first-out (LIFO) principle.
Stacks 1 Stacks The ADT Stack stores arbitrary objects. Insertions and deletions follow the last-in first-out (LIFO) principle. 2 Main stack operations Insertion and removal are defined by: push(e): inserts
More informationStacks. Chapter 5. Copyright 2012 by Pearson Education, Inc. All rights reserved
Stacks Chapter 5 Contents Specifications of the ADT Stack Using a Stack to Process Algebraic Expressions A Problem Solved: Checking for Balanced Delimiters in an Infix Algebraic Expression A Problem Solved:
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Queues ArrayQueue Marcel Turcotte School of Electrical Engineering and Computer Science Version of March 10, 2014 Abstract These lecture notes are meant to be looked
More informationCMSC 132: Object-Oriented Programming II. Stack and Queue
CMSC 132: Object-Oriented Programming II Stack and Queue 1 Stack Allows access to only the last item inserted. An item is inserted or removed from the stack from one end called the top of the stack. This
More informationData Structures G5029
Data Structures G5029 Lecture 2 Kingsley Sage Room 5C16, Pevensey III khs20@sussex.ac.uk University of Sussex 2006 Lecture 2 Stacks The usual analogy is the stack of plates. A way of buffering a stream
More informationQueues Fall 2018 Margaret Reid-Miller
Queues 15-121 Fall 2018 Margaret Reid-Miller Today Exam 2 is next Tuesday, October 30 Writing methods various classes that implement Lists. Methods using Lists and Big-O w/ ArrayList or LinkedLists Prove
More informationPA3 Design Specification
PA3 Teaching Data Structure 1. System Description The Data Structure Web application is written in JavaScript and HTML5. It has been divided into 9 pages: Singly linked page, Stack page, Postfix expression
More informationStack. 4. In Stack all Operations such as Insertion and Deletion are permitted at only one end. Size of the Stack 6. Maximum Value of Stack Top 5
What is Stack? Stack 1. Stack is LIFO Structure [ Last in First Out ] 2. Stack is Ordered List of Elements of Same Type. 3. Stack is Linear List 4. In Stack all Operations such as Insertion and Deletion
More informationADT Stack. Inserting and deleting elements occurs at the top of Stack S. top. bottom. Stack S
Stacks Stacks & Queues A linear sequence, or list, is an ordered collection of elements: S = (s 1, s 2,..., s n ) Stacks and queues are finite linear sequences. A Stack is a LIFO (Last In First Out) list.
More informationStack and Its Implementation
Stack and Its Implementation Tessema M. Mengistu Department of Computer Science Southern Illinois University Carbondale tessema.mengistu@siu.edu Room - 3131 1 Definition of Stack Usage of Stack Outline
More informationLIFO : Last In First Out
Introduction Stack is an ordered list in which all insertions and deletions are made at one end, called the top. Stack is a data structure that is particularly useful in applications involving reversing.
More informationinfix expressions (review)
Outline infix, prefix, and postfix expressions queues queue interface queue applications queue implementation: array queue queue implementation: linked queue application of queues and stacks: data structure
More information1 P age DS & OOPS / UNIT II
UNIT II Stacks: Definition operations - applications of stack. Queues: Definition - operations Priority queues - De que Applications of queue. Linked List: Singly Linked List, Doubly Linked List, Circular
More informationStacks. stacks of dishes or trays in a cafeteria. Last In First Out discipline (LIFO)
Outline stacks stack ADT method signatures array stack implementation linked stack implementation stack applications infix, prefix, and postfix expressions 1 Stacks stacks of dishes or trays in a cafeteria
More informationStacks. Chapter 5. Copyright 2012 by Pearson Education, Inc. All rights reserved
Stacks Chapter 5 Copyright 2012 by Pearson Education, Inc. All rights reserved Contents Specifications of the ADT Stack Using a Stack to Process Algebraic Expressions A Problem Solved: Checking for Balanced
More informationData Structures & Algorithm Analysis. Lecturer: Souad Alonazi
Data Structures & Algorithm Analysis Lec(3) Stacks Lecturer: Souad Alonazi What is a stack? Stores a set of elements in a particular order Stack principle: LAST IN FIRST OUT = LIFO It means: the last element
More informationStacks Fall 2018 Margaret Reid-Miller
Stacks 15-121 Fall 2018 Margaret Reid-Miller Today Exam 2 is next Tuesday, October 30 Today: Quiz 5 solutions Recursive add from last week (see SinglyLinkedListR.java) Stacks ADT (Queues on Thursday) ArrayStack
More informationPostfix (and prefix) notation
Postfix (and prefix) notation Also called reverse Polish reversed form of notation devised by mathematician named Jan Łukasiewicz (so really lü-kä-sha-vech notation) Infix notation is: operand operator
More informationEC8393FUNDAMENTALS OF DATA STRUCTURES IN C Unit 3
UNIT 3 LINEAR DATA STRUCTURES 1. Define Data Structures Data Structures is defined as the way of organizing all data items that consider not only the elements stored but also stores the relationship between
More informationData Structure - Stack and Queue-
Data Structure - Stack and Queue- Hanyang University Jong-Il Park STACK Stack ADT List that insertions and deletions can be performed at the end of the list Operations Push(X, S): insert X in the list
More informationCMPSCI 187: Programming With Data Structures. Lecture #11: Implementing Stacks With Arrays David Mix Barrington 28 September 2012
CMPSCI 187: Programming With Data Structures Lecture #11: Implementing Stacks With Arrays David Mix Barrington 28 September 2012 Implementing Stacks With Arrays The Idea of the Implementation Data Fields
More informationSTACKS. A stack is defined in terms of its behavior. The common operations associated with a stack are as follows:
STACKS A stack is a linear data structure for collection of items, with the restriction that items can be added one at a time and can only be removed in the reverse order in which they were added. The
More informationAbstract Data Types. Abstract Data Types
Abstract Data Types Wolfgang Schreiner Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria Wolfgang.Schreiner@risc.jku.at http://www.risc.jku.at Wolfgang Schreiner
More informationKeeping Order:! Stacks, Queues, & Deques. Travis W. Peters Dartmouth College - CS 10
Keeping Order:! Stacks, Queues, & Deques 1 Stacks 2 Stacks A stack is a last in, first out (LIFO) data structure Primary Operations: push() add item to top pop() return the top item and remove it peek()
More informationStacks. Access to other items in the stack is not allowed A LIFO (Last In First Out) data structure
CMPT 225 Stacks Stacks A stack is a data structure that only allows items to be inserted and removed at one end We call this end the top of the stack The other end is called the bottom Access to other
More informationAnnouncements Queues. Queues
Announcements. Queues Queues A queue is consistent with the general concept of a waiting line to buy movie tickets a request to print a document crawling the web to retrieve documents A queue is a linear
More informationThe Stack ADT. Stacks. The Stack ADT. The Stack ADT. Set of objects in which the location an item is inserted and deleted is prespecified.
The Stack ADT Stacks Set of objects in which the location an item is inserted and deleted is prespecified Stacks! Insert in order! Delete most recent item inserted! LIFO - last in, first out Stacks 2 The
More informationLecture 4 Stack and Queue
Lecture 4 Stack and Queue Bo Tang @ SUSTech, Spring 2018 Our Roadmap Stack Queue Stack vs. Queue 2 Stack A stack is a sequence in which: Items can be added and removed only at one end (the top) You can
More informationCS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University
CS 11 Introduction to Computing II Wayne Snyder Department Boston University Today Object-Oriented Programming Concluded Stacks, Queues, and Priority Queues as Abstract Data Types Reference types: Basic
More informationSCJ2013 Data Structure & Algorithms. Queue. Nor Bahiah Hj Ahmad & Dayang Norhayati A. Jawawi
SCJ2013 Data Structure & Algorithms Queue Nor Bahiah Hj Ahmad & Dayang Norhayati A. Jawawi Course Objectives At the end of the lesson students are expected to be able to: Understand queue concepts and
More information1.00 Lecture 26. Data Structures: Introduction Stacks. Reading for next time: Big Java: Data Structures
1.00 Lecture 26 Data Structures: Introduction Stacks Reading for next time: Big Java: 19.1-19.3 Data Structures Set of primitives used in algorithms, simulations, operating systems, applications to: Store
More informationUNIT-2 Stack & Queue
UNIT-2 Stack & Queue 59 13. Stack A stack is an Abstract Data Type (ADT), commonly used in most programming languages. It is named stack as it behaves like a real-world stack, for example a deck of cards
More informationDATA STRUCUTRES. A data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently.
DATA STRUCUTRES A data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently. An algorithm, which is a finite sequence of instructions, each of which
More information! A data type for which: ! In fact, an ADT may be implemented by various. ! Examples:
Ch. 8: ADTs: Stacks and Queues Abstract Data Type A data type for which: CS 8 Fall Jill Seaman - only the properties of the data and the operations to be performed on the data are specific, - not concerned
More informationStacks and Queues
Stacks and Queues 2-25-2009 1 Opening Discussion Let's look at solutions to the interclass problem. Do you have any questions about the reading? Do you have any questions about the assignment? Minute Essays
More informationCollections Chapter 12. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013
Collections Chapter 12 Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 2 Scope Introduction to Collections: Collection terminology The Java Collections API Abstract nature of collections
More informationData Abstraction and Specification of ADTs
CITS2200 Data Structures and Algorithms Topic 4 Data Abstraction and Specification of ADTs Example The Reversal Problem and a non-adt solution Data abstraction Specifying ADTs Interfaces javadoc documentation
More informationStacks and Queues. David Greenstein Monta Vista
Stacks and Queues David Greenstein Monta Vista Stack vs Queue Stacks and queues are used for temporary storage, but in different situations Stacks are Used for handling nested structures: processing directories
More informationData Structure using C++ Lecture 04. Data Structures and algorithm analysis in C++ Chapter , 3.2, 3.2.1
Data Structure using C++ Lecture 04 Reading Material Data Structures and algorithm analysis in C++ Chapter. 3 3.1, 3.2, 3.2.1 Summary Infix to Postfix Example 1: Infix to Postfix Example 2: Postfix Evaluation
More informationTop of the Stack. Stack ADT
Module 3: Stack ADT Dr. Natarajan Meghanathan Professor of Computer Science Jackson State University Jackson, MS 39217 E-mail: natarajan.meghanathan@jsums.edu Stack ADT Features (Logical View) A List that
More informationQueues. Gaddis 18.4, Molly A. O'Neil CS 2308 :: Spring 2016
Queues Gaddis 18.4, 18.6 Molly A. O'Neil CS 2308 :: Spring 2016 The Queue ADT A queue is an abstract data type that stores a collection of elements of the same type The elements of a queue are accessed
More informationLinked List. April 2, 2007 Programming and Data Structure 1
Linked List April 2, 2007 Programming and Data Structure 1 Introduction head A linked list is a data structure which can change during execution. Successive elements are connected by pointers. Last element
More informationCT 229 Object-Oriented Programming Continued
CT 229 Object-Oriented Programming Continued 24/11/2006 CT229 Summary - Inheritance Inheritance is the ability of a class to use the attributes and methods of another class while adding its own functionality
More informationStack and Queue. Stack:
Stack and Queue Stack: Abstract Data Type A stack is a container of objects that are inserted and removed according to the last-in first-out (LIFO) principle. In the pushdown stacks only two operations
More informationStacks and Queues. Chris Kiekintveld CS 2401 (Fall 2010) Elementary Data Structures and Algorithms
Stacks and Queues Chris Kiekintveld CS 2401 (Fall 2010) Elementary Data Structures and Algorithms Two New ADTs Define two new abstract data types Both are restricted lists Can be implemented using arrays
More informationCSE 143 SAMPLE MIDTERM
CSE 143 SAMPLE MIDTERM 1. (5 points) In some methods, you wrote code to check if a certain precondition was held. If the precondition did not hold, then you threw an exception. This leads to robust code
More informationCS6202 - PROGRAMMING & DATA STRUCTURES I Unit IV Part - A 1. Define Stack. A stack is an ordered list in which all insertions and deletions are made at one end, called the top. It is an abstract data type
More informationQueue with Array Implementation
Queue with Array Implementation SCSJ2013 Data Structures & Algorithms Nor Bahiah Hj Ahmad & Dayang Norhayati A. Jawawi Faculty of Computing Objectives Queue concepts and applications. Queue structure and
More informationStacks and Queues. CSE Data Structures April 12, 2002
Stacks and Queues CSE 373 - Data Structures April 12, 2002 Readings and References Reading Section 3.3 and 3.4, Data Structures and Algorithm Analysis in C, Weiss Other References 12-Apr-02 CSE 373 - Data
More informationData Structure using C++ Lecture 04. Data Structures and algorithm analysis in C++ Chapter , 3.2, 3.2.1
Data Structure using C++ Lecture 04 Reading Material Data Structures and algorithm analysis in C++ Chapter. 3 3.1, 3.2, 3.2.1 Summary Stack Operations on a stack Representing stacks Converting an expression
More informationApplication of Stack (Backtracking)
Application of Stack (Backtracking) Think of a labyrinth or maze How do you find a way from an entrance to an exit? Once you reach a dead end, you must backtrack. But backtrack to where? to the previous
More informationStacks, Queues (cont d)
Stacks, Queues (cont d) CSE 2011 Winter 2007 February 1, 2007 1 The Adapter Pattern Using methods of one class to implement methods of another class Example: using List to implement Stack and Queue 2 1
More informationCS24 Week 4 Lecture 2
CS24 Week 4 Lecture 2 Kyle Dewey Overview Linked Lists Stacks Queues Linked Lists Linked Lists Idea: have each chunk (called a node) keep track of both a list element and another chunk Need to keep track
More information10/26/2017 CHAPTER 3 & 4. Stacks & Queues. The Collection Framework
CHAPTER 3 & 4 Stacks & Queues The Collection Framework 1 Stack Abstract Data Type A stack is one of the most commonly used data structures in computer science A stack can be compared to a Pez dispenser
More informationCh. 18: ADTs: Stacks and Queues. Abstract Data Type
Ch. 18: ADTs: Stacks and Queues CS 2308 Fall 2011 Jill Seaman Lecture 18 1 Abstract Data Type A data type for which: - only the properties of the data and the operations to be performed on the data are
More informationData Structures and Object-Oriented Design III. Spring 2014 Carola Wenk
Data Structures and Object-Oriented Design III Spring 2014 Carola Wenk Array-Based Stack vs. DynamicStack public class ArrayStack { final static int DEFAULT_CAPACITY=50; private int[] S; private int top;
More informationQueues. Virtuelle Fachhochschule. Prof. Dr. Debora Weber-Wulff
Queues Virtuelle Fachhochschule Prof. Dr. Debora Weber-Wulff!1 Queues First In, First Out Well-known in socialist society Operations enqueue join the back of the line dequeue remove from the front of the
More informationMarch 13/2003 Jayakanth Srinivasan,
Statement Effort MergeSort(A, lower_bound, upper_bound) begin T(n) if (lower_bound < upper_bound) Θ(1) mid = (lower_bound + upper_bound)/ 2 Θ(1) MergeSort(A, lower_bound, mid) T(n/2) MergeSort(A, mid+1,
More informationCSEN 301 Data Structures and Algorithms
CSEN 301 Data Structures and Algorithms Lecture 5: Queues: Implementation and usage Prof. Dr. Slim Abdennadher slim.abdennadher@guc.edu.eg German University Cairo, Department of Media Engineering and Technology
More informationTop of the Stack. Stack ADT
Module 3: Stack ADT Dr. Natarajan Meghanathan Professor of Computer Science Jackson State University Jackson, MS 39217 E-mail: natarajan.meghanathan@jsums.edu Stack ADT Features (Logical View) A List that
More informationBBM 201 DATA STRUCTURES
BBM 201 DATA STRUCTURES Lecture 5: Stacks and Queues 2017 Fall Stacks A list on which insertion and deletion can be performed. Based on Last-in-First-out (LIFO) Stacks are used for a number of applications:
More informationLecture No.04. Data Structures
Lecture No.04 Data Structures Josephus Problem #include "CList.cpp" void main(int argc, char *argv[]) { CList list; int i, N=10, M=3; for(i=1; i
More informationOutline and Reading. The Stack ADT ( 2.1.1) Applications of Stacks ( 2.1.1) Array-based implementation ( 2.1.1) Growable array-based stack ( 1.
Stacks Outline and Reading The Stack ADT ( 2.1.1) Applications of Stacks ( 2.1.1) Array-based implementation ( 2.1.1) Growable array-based stack ( 1.5) Stacks 2 Abstract Data Types (ADTs) An abstract data
More informationDEEPIKA KAMBOJ UNIT 2. What is Stack?
What is Stack? UNIT 2 Stack is an important data structure which stores its elements in an ordered manner. You must have seen a pile of plates where one plate is placed on top of another. Now, when you
More informationMore Data Structures (Part 1) Stacks
More Data Structures (Part 1) Stacks 1 Stack examples of stacks 2 Top of Stack top of the stack 3 Stack Operations classically, stacks only support two operations 1. push 2. pop add to the top of the stack
More informationn Data structures that reflect a temporal relationship q order of removal based on order of insertion n We will consider:
Linear, time-ordered structures CS00: Stacks n Prichard Ch 7 n Data structures that reflect a temporal relationship order of removal based on order of insertion n We will consider: first come,first serve
More information-The Hacker's Dictionary. Friedrich L. Bauer German computer scientist who proposed "stack method of expression evaluation" in 1955.
Topic 15 Implementing and Using "stack n. The set of things a person has to do in the future. "I haven't done it yet because every time I pop my stack something new gets pushed." If you are interrupted
More informationLecture 3: Stacks & Queues
Lecture 3: Stacks & Queues Prakash Gautam https://prakashgautam.com.np/dipit02/ info@prakashgautam.com.np 22 March, 2018 Objectives Definition: Stacks & Queues Operations of Stack & Queues Implementation
More informationCS 206 Introduction to Computer Science II
CS 206 Introduction to Computer Science II 07 / 26 / 2016 Instructor: Michael Eckmann Today s Topics Comments/Questions? Stacks and Queues Applications of both Priority Queues Michael Eckmann - Skidmore
More informationStacks and Queues. CSE 373 Data Structures Lecture 6
Stacks and Queues CSE 373 Data Structures Lecture 6 Readings and References Reading Sections 3.3 and 3.4 10/11/02 Stacks and Queues - Lecture 6 2 Stacks A list for which Insert and Delete are allowed only
More informationA queue is a linear collection whose elements are added on one end and removed from the other
A queue is consistent with the general concept of a waiting line to buy movie tickets a request to print a document crawling the web to retrieve documents Adding an element Removing an element A queue
More informationBBM 201 DATA STRUCTURES
BBM 201 DATA STRUCTURES Lecture 6: Stacks and Queues 2015-2016 Fall Stacks A list on which insertion and deletion can be performed. Based on Last-in-First-out (LIFO) Stacks are used for a number of applications:
More informationNo Aids Allowed. Do not turn this page until you have received the signal to start.
CSC 148H Midterm Fall 2007 St. George Campus Duration 50 minutes Student Number: Family Name: Given Name: No Aids Allowed. Do not turn this page until you have received the signal to start. # 1: /10 #
More informationCS11001/CS11002 Programming and Data Structures (PDS) (Theory: 3-0-0)
CS11001/CS11002 Programming and Data Structures (PDS) (Theory: 3-0-0) Class Teacher: Pralay Mitra Department of Computer Science and Engineering Indian Institute of Technology Kharagpur Conceptual Idea
More informationLecture 12 ADTs and Stacks
Lecture 12 ADTs and Stacks Modularity Divide the program into smaller parts Advantages Keeps the complexity managable Isolates errors (parts can be tested independently) Can replace parts easily Eliminates
More informationCSE 143. Lecture 4: Stacks and Queues
CSE 143 Lecture 4: Stacks and Queues Stacks and queues Sometimes it is good to have a collection that is less powerful, but is optimized to perform certain operations very quickly. Today we will examine
More informationNo Aids Allowed. Do not turn this page until you have received the signal to start. Read this entire page or you ll miss the bonus question.
CSC 148H Midterm Fall 2005 St. George Campus Duration 50 minutes Student Number: Family Name: Given Name: No Aids Allowed. Do not turn this page until you have received the signal to start. Read this entire
More information1/18/12. Chapter 5: Stacks, Queues and Deques. Stacks. Outline and Reading. Nancy Amato Parasol Lab, Dept. CSE, Texas A&M University
Chapter 5: Stacks, ueues and Deques Nancy Amato Parasol Lab, Dept. CSE, Texas A&M University Acknowledgement: These slides are adapted from slides provided with Data Structures and Algorithms in C++, Goodrich,
More informationStacks. Revised based on textbook author s notes.
Stacks Revised based on textbook author s notes. Stacks A restricted access container that stores a linear collection. Very common for solving problems in computer science. Provides a last-in first-out
More informationStacks and Queues. Chapter Stacks
Chapter 18 Stacks and Queues 18.1 Stacks The stack abstract data type allows access to only one element the one most recently added. This location is referred to as the top of the stack. Consider how a
More informationQueue rear tail front head FIFO
The Queue ADT Objectives Examine queue processing Define a queue abstract data type Demonstrate how a queue can be used to solve problems Examine various queue implementations Compare queue implementations
More informationThe Stack and Queue Types
The Stack and Queue Types Hartmut Kaiser hkaiser@cct.lsu.edu http://www.cct.lsu.edu/ hkaiser/fall_2012/csc1254.html 2 Programming Principle of the Day Do the simplest thing that could possibly work A good
More informationCSC 273 Data Structures
CSC 273 Data Structures Lecture 3- Stacks Some familiar stacks What is a stack? Add item on top of stack Remove item that is topmost Last In, First Out LIFO Specifications of the ADT Stack Specifications
More informationMotivation for Queues
CPSC 211 Data Structures & Implementations (c) Texas A&M University [ 178] Motivation for Queues Some examples of first-in, first-out (FIFO) behavior: æ waiting in line to check out at a store æ cars on
More informationData Structures and Algorithms, Winter term 2018 Practice Assignment 3
German University in Cairo Media Engineering and Technology Prof. Dr. Slim Abdennadher Dr. Wael Abouelsaadat Data Structures and Algorithms, Winter term 2018 Practice Assignment 3 Exercise 3-1 Search in
More informationcsci 210: Data Structures Stacks and Queues
csci 210: Data Structures Stacks and Queues 1 Summary Topics Stacks and Queues as abstract data types ( ADT) Implementations arrays linked lists Analysis and comparison Applications: searching with stacks
More informationIntroduction. Problem Solving on Computer. Data Structures (collection of data and relationships) Algorithms
Introduction Problem Solving on Computer Data Structures (collection of data and relationships) Algorithms 1 Objective of Data Structures Two Goals: 1) Identify and develop useful high-level data types
More informationAbstract Data Types. Stack. January 26, 2018 Cinda Heeren / Geoffrey Tien 1
Abstract Data Types Stack January 26, 2018 Cinda Heeren / Geoffrey Tien 1 Abstract data types and data structures An Abstract Data Type (ADT) is: A collection of data Describes what data are stored but
More informationStacks and Queues III
EE Data Structures and lgorithms http://www.ecs.umass.edu/~polizzi/teaching/ee/ Stacks and Queues III Lecture 8 Prof. Eric Polizzi Queues overview First In First Out (FIFO) Input D Output Queues allow
More information