Stacks. Gaddis 18.1, Molly A. O'Neil CS 2308 :: Spring 2016
|
|
- Annabella Ray
- 6 years ago
- Views:
Transcription
1 Stacks Gaddis 18.1, 18.3 Molly A. O'Neil CS 2308 :: Spring 2016
2 The Stack ADT A stack is an abstract data type that stores a collection of elements of the same type The elements of a stack are accessed in LIFO (last in, first out) order No random access to non-first elements You can only access or remove the most-recently-added element Analogy: A stack of plates or trays in a cafeteria. Clean plates/trays are put on top of the stack, and the next person takes the plate/try on top of the stack. 2
3 Stack Operations The stack ADT supports the following operations: push: add a value onto the top of the stack If it's a size-limited stack, first make sure the stack isn't full pop: remove the value at the top of the stack Depending on the implementation, sometimes pop returns the value as well isempty: returns true if the stack contains no elements Optionally, a stack can also support the following operations: peek: return the value currently at the top of the stack (without popping it from the stack) isfull: if the stack is size-limited, returns true if the stack has no more space to hold additional elements 3
4 Stack Illustrated stack.push(3) stack.push(2) stack.push(5) stack.push(1) x = stack.pop()
5 Stack Illustrated stack.push(3) 1 stack.push(2) stack.push(5) stack.push(1) x = stack.pop() 5 2 x 3 5
6 Stack Illustrated stack.push(3) stack.push(2) stack.push(5) stack.push(1) x = stack.pop() 5 x 1 y = stack.pop() 2 3 6
7 Stack Illustrated stack.push(3) 5 stack.push(2) stack.push(5) stack.push(1) y x = stack.pop() y = stack.pop() 2 3 7
8 Stack Illustrated stack.push(3) stack.push(2) stack.push(5) stack.push(1) x = stack.pop() 4 6 y 5 y = stack.pop() 2 stack.push(6) 3 stack.push(4) z = stack.pop() 8
9 Stack Illustrated stack.push(3) 4 stack.push(2) stack.push(5) stack.push(1) x = stack.pop() y = stack.pop() stack.push(6) stack.push(4) z = stack.pop() z 9
10 Stack Illustrated stack.push(3) stack.push(2) stack.push(5) stack.push(1) x = stack.pop() 6 z 4 y = stack.pop() 2 stack.push(6) 3 stack.push(4) z = stack.pop() 10
11 Stack Applications Syntax parsing (e.g., bracket matching, cf. Project 7) Compilers have to do this Evaluating arithmetic expressions in post-fix notation * is equivalent to (4 + 5) * (7-2) Algorithm: Parse input from L to R As you encounter operands, push them onto the stack If you encounter an operator, pop two operands from the stack and apply the operation, then push the result onto the stack Keep going until no more input
12 Stack Applications Syntax parsing (e.g., bracket matching, cf. Project 7) Compilers have to do this Evaluating arithmetic expressions in post-fix notation * is equivalent to (4 + 5) * (7-2) Algorithm: Parse input from L to R As you encounter operands, push them onto the stack If you encounter an operator, pop two operands from the stack and apply the operation, then push the result onto the stack Keep going until no more input = 9 12
13 Stack Applications Syntax parsing (e.g., bracket matching, cf. Project 7) Compilers have to do this Evaluating arithmetic expressions in post-fix notation * is equivalent to (4 + 5) * (7-2) Algorithm: Parse input from L to R As you encounter operands, push them onto the stack If you encounter an operator, pop two operands from the stack and apply the operation, then push the result onto the stack Keep going until no more input
14 Stack Applications Syntax parsing (e.g., bracket matching, cf. Project 7) Compilers have to do this Evaluating arithmetic expressions in post-fix notation * is equivalent to (4 + 5) * (7-2) Algorithm: Parse input from L to R As you encounter operands, push them onto the stack If you encounter an operator, pop two operands from the stack and apply the operation, then push the result onto the stack Keep going until no more input 7-2 =
15 Stack Applications Syntax parsing (e.g., bracket matching, cf. Project 7) Compilers have to do this Evaluating arithmetic expressions in post-fix notation * is equivalent to (4 + 5) * (7-2) Algorithm: Parse input from L to R As you encounter operands, push them onto the stack If you encounter an operator, pop two operands from the stack and apply the operation, then push the result onto the stack Keep going until no more input
16 Stack Applications Syntax parsing (e.g., bracket matching, cf. Project 7) Compilers have to do this Evaluating arithmetic expressions in post-fix notation * is equivalent to (4 + 5) * (7-2) Algorithm: Parse input from L to R As you encounter operands, push them onto the stack If you encounter an operator, pop two operands from the stack and apply the operation, then push the result onto the stack Keep going until no more input 9 * 5 = 45 16
17 Stack Applications Syntax parsing (e.g., bracket matching, cf. Project 7) Compilers have to do this Evaluating arithmetic expressions in post-fix notation * is equivalent to (4 + 5) * (7-2) Algorithm: Parse input from L to R As you encounter operands, push them onto the stack If you encounter an operator, pop two operands from the stack and apply the operation, then push the result onto the stack Keep going until no more input Precedence rules and parentheses are never needed! 17
18 Stack Applications "Undo" feature in text editors Recent text changes are kept in a stack Backtracking Imagine you must write code to guide a robot through a maze or labyrinth Every time you reach a decision point, choose a direction you haven't explored yet. If you hit a dead end, you must backtrack......but backtrack to where? To the previous decision point! Algorithm: At every decision point, push all possible choices onto the stack. Pop a choice and go that route. If you hit a dead end, pop the next choice from the stack. 18
19 Backtracking Decision E4: - choices: North, South H G F E D C B A E4: South E4: North 19
20 Backtracking Decision E4: - choices: North, South E4: South Decision D6: - choices: North, South H G F E D C B A D6: South D6: North E4: North 20
21 Backtracking Decision E4: - choices: North, South E4: South Decision D6: - choices: North, South D6: South Dead End! Backtrack: H G F E D C B A D6: North E4: North 21
22 Backtracking Decision E4: - choices: North, South E4: South Decision D6: - choices: North, South D6: South Dead End! Backtrack: D6: North H G F E D C B A E4: North 22
23 Backtracking Decision E4: - choices: North, South E4: South Decision D6: - choices: North, South D6: South Dead End! Backtrack: D6: North Dead End! Backtrack: H G F E D C B A E4: North 23
24 Backtracking Decision E4: - choices: North, South E4: South Decision D6: - choices: North, South D6: South Dead End! Backtrack: D6: North Dead End! Backtrack: E4: North H G F E D C B A
25 Backtracking Decision E4: - choices: North, South E4: South Decision D6: - choices: North, South D6: South Dead End! Backtrack: H G F E D C B A D6: North Dead End! Backtrack: E4: North Decision G4: - choices: East, West G4: West G4: East 25
26 Backtracking Decision E4: - choices: North, South E4: South Decision D6: - choices: North, South D6: South Dead End! Backtrack: D6: North Dead End! Backtrack: E4: North Decision G4: - choices: East, West G4: West H G F E D C B A G4: East 26
27 Backtracking Dead End! Backtrack: H G F E D C B A G4: East 27
28 Backtracking Dead End! Backtrack: G4: East H G F E D C B A
29 Backtracking Dead End! Backtrack: G4: East Success! H G F E D C B A This backtracking process is used for many other algorithms as well 29
30 Hardware Stacks We've already learned about one hardware application of a stack: where function local variables are stored in memory The stack is also used to store the return address during a function call This is how nested function calls work (remember the push/ pop behavior from the Dynamic Memory lecture?) When the function terminates, its stack frame is removed and the return address (where to resume executing code, i.e. where the function call was) is retrieved 30
31 Stack Terminology Stack overflow The condition resulting from trying to push an element onto a full stack if(!stack.isfull()) stack.push(item); Stack underflow The condition resulting from trying to pop an empty stack if(!stack.isempty()) stack.pop(); 31
32 Stack Implementations A stack is an ADT, which means it's defined only in terms of the properties of the data and the operations that can be performed on that data Like with the List ADT, there are several data structures we could use to implement a Stack: Linked list (...but really, you've already done this one!) Push == prepend node to list Pop == remove front node from list and return its value Fixed-size array Keep track of top index; stack has maximum size and can be full Dynamic array Keep track of top index; re-size/re-allocate array when full 32
33 A Fixed-Size Array Stack Class class IntStack { private: int *stackarray; // the stack array int stacksize; // the array size int top; // which array index is the stack top? public: IntStack(int); // constructor IntStack(const IntStack &) // copy constructor ~IntStack(); // destructor } void push(int); int pop(); bool isfull() const; bool isempty() const; 33
34 Stack: Constructors IntStack::IntStack(int size) { if(size <= 0) size = 1; // or error } stackarray = new int[size]; stacksize = size; top = -1; // empty IntStack::IntStack(const IntStack &rhs) { stackarray = new int[rhs.stacksize]; stacksize = rhs.stacksize; for(int i = 0; i < stacksize; i++) stackarray[i] = rhs.stackarray[i]; } top = rhs.top; 34
35 Stack: Destructor IntStack::~IntStack() { delete [] stackarray; } 35
36 Stack: Push void IntStack::push(int item) { assert(!isfull()); // stack overflow! } stackarray[++top] = item; The assert() statement will cause the program to terminate with an error if!isfull() returns false The best way to remember this: assert means "Make sure..." Really easy syntax for error checking & communication Just need to #include <cassert> Runtime error will include the line number of the assert() If you want a helpful error message, too, there's always this hack: assert(!isfull() && "Attempting to push to full stack!"); 36
37 Stack: Pop int IntStack::pop() { assert(!isempty()); // stack underflow! } return stackarray[top--]; 37
38 Stack: isfull & isempty bool IntStack::isFull() { return (top == stacksize - 1); // returns true if there is // no empty space on stack } bool IntStack::isEmpty() { return (top == -1); } // returns true if there are no // items on stack 38
! 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 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 informationADTs: Stacks and Queues
Introduction to the Stack ADTs: Stack: a data structure that holds a collection of elements of the same type. - The elements are accessed according to LIFO order: last in, first out - No random access
More information! A data type for which: ! An ADT may be implemented using various. ! Examples:
Stacks and Queues Unit 6 Chapter 19.1-2,4-5 CS 2308 Fall 2018 Jill Seaman 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 informationIntroduction to the Stack. Stacks and Queues. Stack Operations. Stack illustrated. elements of the same type. Week 9. Gaddis: Chapter 18
Stacks and Queues Week 9 Gaddis: Chapter 18 CS 5301 Fall 2015 Jill Seaman Introduction to the Stack Stack: a data structure that holds a collection of elements of the same type. - The elements are accessed
More informationIntroduction to the Stack. Stacks and Queues. Stack Operations. Stack illustrated. Week 9. elements of the same type.
Stacks and Queues Week 9 Gaddis: Chapter 18 (8th ed.) Gaddis: Chapter 19 (9th ed.) CS 5301 Fall 2018 Jill Seaman Introduction to the Stack Stack: a data structure that holds a collection of elements of
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 informationLecture 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 informationIntroduction to the Stack. Stacks and Queues. Stack Operations. Stack illustrated. elements of the same type. Week 9. Gaddis: Chapter 18
Stacks and Queues Week 9 Gaddis: Chapter 18 CS 5301 Spring 2017 Ji Seaman Introduction to the Stack Stack: a data structure that hods a coection of eements of the same type. - The eements are accessed
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 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 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 information[CS302-Data Structures] Homework 2: Stacks
[CS302-Data Structures] Homework 2: Stacks Instructor: Kostas Alexis Teaching Assistants: Shehryar Khattak, Mustafa Solmaz, Bishal Sainju Fall 2018 Semester Section 1. Stack ADT Overview wrt Provided Code
More informationCMPT 225. Lecture 9 Stack
CMPT 225 Lecture 9 Stack 1 Last Lecture We did an activity about Stack 2 Learning Outcomes 3 At the end of this lecture (and the activity), a student will be able to: Describe Stack Define public interface
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 informationStacks and their Applications
Stacks and their Applications Lecture 23 Sections 18.1-18.2 Robb T. Koether Hampden-Sydney College Fri, Mar 16, 2018 Robb T. Koether Hampden-Sydney College) Stacks and their Applications Fri, Mar 16, 2018
More informationData Structures And Algorithms
Data Structures And Algorithms Stacks Eng. Anis Nazer First Semester 2017-2018 Stack An Abstract data type (ADT) Accessed only on one end Similar to a stack of dishes you can add/remove on top of stack
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 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 informationCSE 214 Computer Science II Stack
CSE 214 Computer Science II Stack Spring 2018 Stony Brook University Instructor: Shebuti Rayana shebuti.rayana@stonybrook.edu http://www3.cs.stonybrook.edu/~cse214/sec02/ Random and Sequential Access Random
More informationAssertion. C++ Object Oriented Programming Pei-yih Ting NTOU CS
Assertion C++ Object Oriented Programming Pei-yih Ting NTOU CS 1 Contents Errors Error handling in procedural programming language Error messages vs. error codes Modifying interface to help the client
More informationLists are great, but. Stacks 2
Stacks Lists are great, but Lists are simply collections of items Useful, but nice to have some meaning to attach to them Restrict operations to create useful data structures We want to have ADTs that
More informationADTs Stack and Queue. Outline
Chapter 5 ADTs Stack and Queue Fall 2017 Yanjun Li CS2200 1 Outline Stack Array-based Implementation Linked Implementation Queue Array-based Implementation Linked Implementation Comparison Fall 2017 Yanjun
More informationITEC2620 Introduction to Data Structures
9//07 ITEC60 Introduction to Data Structures Lecture 7a ADTs and Stacks Abstract Data Types A way to specify the functionality of an entity without worrying about its implementation Similar to a JAVA interface
More informationContainers: Stack. Jordi Cortadella and Jordi Petit Department of Computer Science
Containers: Stack Jordi Cortadella and Jordi Petit Department of Computer Science The Stack ADT A stack is a list of objects in which insertions and deletions can only be performed at the top of the list.
More informationContainers: Stack. The Stack ADT. The Stack ADT. The Stack ADT
Containers: Stack The Stack ADT A stack is a list of objects in which insertions and deletions can only be performed at the top of the list. Also known as LIFO Last In, First Out) push insert an element
More informationC++ Templates. David Camp
C++ Templates David Camp C Marcos #define () #define min(i, j) (((i) < (j))? (i) : (j)) #define max(i, j) (((i) > (j))? (i) : (j)) #define RADTODEG(x)
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 informationOutline. Stacks. 1 Chapter 5: Stacks and Queues. favicon. CSI33 Data Structures
Outline Chapter 5: and Queues 1 Chapter 5: and Queues Chapter 5: and Queues The Stack ADT A Container Class for Last-In-First-Out Access A stack is a last in, first out (LIFO) structure, i.e. a list-like
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 informationIV. Stacks. A. Introduction 1. Consider the 4 problems on pp (1) Model the discard pile in a card game. (2) Model a railroad switching yard
IV. Stacks 1 A. Introduction 1. Consider the problems on pp. 170-1 (1) Model the discard pile in a card game (2) Model a railroad switching yard (3) Parentheses checker () Calculate and display base-two
More informationContents. Errors in Procedural Programming
Assertion C++ Object Oriented dprogramming Pei-yih Ting NTOU CS 12-1 Errors Contents Error handling in procedural programming language Error messages vs. error codes Modifying interface to help the client
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 informationCosc 241 Programming and Problem Solving Lecture 9 (26/3/18) Collections and ADTs
1 Cosc 241 Programming and Problem Solving Lecture 9 (26/3/18) Collections and ADTs Michael Albert michael.albert@cs.otago.ac.nz Keywords: abstract data type, collection, generic class type, stack 2 Collections
More informationCOSC160: Data Structures: Lists and Queues. Jeremy Bolton, PhD Assistant Teaching Professor
COSC160: Data Structures: Lists and Queues Jeremy Bolton, PhD Assistant Teaching Professor Outline I. Queues I. FIFO Queues I. Usage II. Implementations II. LIFO Queues (Stacks) I. Usage II. Implementations
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 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 informationCS 171: Introduction to Computer Science II. Stacks. Li Xiong
CS 171: Introduction to Computer Science II Stacks Li Xiong Today Stacks operations and implementations Applications using stacks Application 1: Reverse a list of integers Application 2: Delimiter matching
More informationData Structures using OOP C++ Lecture 9
Stack A stack is an ordered group of homogeneous items or elements. The removal of existing items and the addition of new items can take place only at the top of the stack. The stack may be considered
More informationdouble d0, d1, d2, d3; double * dp = new double[4]; double da[4];
All multiple choice questions are equally weighted. You can generally assume that code shown in the questions is intended to be syntactically correct, unless something in the question or one of the answers
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 information// The next 4 functions return true on success, false on failure
Stacks and Queues Queues and stacks are two special list types of particular importance. They can be implemented using any list implementation, but arrays are a more practical solution for these structures
More informationCMSC 341 Lecture 6 Templates, Stacks & Queues. Based on slides by Shawn Lupoli & Katherine Gibson at UMBC
CMSC 341 Lecture 6 Templates, Stacks & Queues Based on slides by Shawn Lupoli & Katherine Gibson at UMBC Today s Topics Data types in C++ Overloading functions Templates How to implement them Possible
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 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 informationCPSC 221: Algorithms and Data Structures Lecture #1: Stacks and Queues
CPSC 221: Algorithms and Data Structures Lecture #1: Stacks and Queues Alan J. Hu (Slides borrowed from Steve Wolfman) Be sure to check course webpage! http://www.ugrad.cs.ubc.ca/~cs221 1 Lab 1 is available.
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 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 informationChapter 18: Stacks And Queues
Chapter 18: Stacks And Queues 18.1 Introduction to the Stack ADT Introduction to the Stack ADT Stack: a LIFO (last in, first out) data structure Examples: plates in a cafeteria return addresses for function
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 informationl Determine if a number is odd or even l Determine if a number/character is in a range - 1 to 10 (inclusive) - between a and z (inclusive)
Final Exam Exercises Chapters 1-7 + 11 Write C++ code to: l Determine if a number is odd or even CS 2308 Fall 2016 Jill Seaman l Determine if a number/character is in a range - 1 to 10 (inclusive) - between
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Abstract Data Type Stack Version of February 2, 2013 Abstract These lecture notes are meant
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 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 informationIT 4043 Data Structures and Algorithms. Budditha Hettige Department of Computer Science
IT 4043 Data Structures and Algorithms Budditha Hettige Department of Computer Science 1 Syllabus Introduction to DSA Abstract Data Types List Operation Using Arrays Stacks Queues Recursion Link List Sorting
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 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 informationChapter 18: Stacks And Queues. Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Chapter 18: Stacks And Queues Copyright 2009 Pearson Education, Inc. Copyright Publishing as Pearson 2009 Addison-Wesley Pearson Education, Inc. Publishing as Pearson Addison-Wesley 18.1 Introduction to
More informationCSC 1052 Algorithms & Data Structures II: Stacks
CSC 1052 Algorithms & Data Structures II: Stacks Professor Henry Carter Spring 2018 Recap Abstraction allows for information to be compartmentalized and simplifies modular use Interfaces are the Java construction
More informationProgramming Abstractions
Programming Abstractions C S 1 0 6 B Cynthia Lee Today s Topics HW Tips QT Creator dos & don ts ADTs Stack Example: Reverse-Polish Notation calculator Queue Event queues QT Creator A F E W W A R N I N
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 informationStack Abstract Data Type
Stacks Chapter 5 Chapter Objectives To learn about the stack data type and how to use its four methods: push, pop, peek, and empty To understand how Java implements a stack To learn how to implement a
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 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 informationData Structures and Algorithms
Data Structures and Algorithms Alice E. Fischer Lecture 6: Stacks 2018 Alice E. Fischer Data Structures L5, Stacks... 1/29 Lecture 6: Stacks 2018 1 / 29 Outline 1 Stacks C++ Template Class Functions 2
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Abstract Data Type Stack Version of February 2, 2013 Abstract These lecture notes are meant
More informationCS 2150 Exam 1, Spring 2018 Page 1 of 6 UVa userid:
CS 2150 Exam 1, Spring 2018 Page 1 of 6 UVa userid: CS 2150 Exam 1 Name You MUST write your e-mail ID on EACH page and put your name on the top of this page, too. If you are still writing when pens down
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 informationChapter 18: Stacks And Queues
Chapter 18: Stacks And Queues 18.1 Introduction to the Stack ADT Introduction to the Stack ADT Stack a LIFO (last in, first out) data structure Examples plates in a cafeteria return addresses for function
More informationProgramming Abstractions
Programming Abstractions C S 1 0 6 B Cynthia Lee Today s Topics ADTs Stack Example: Reverse-Polish Notation calculator Queue Example: Mouse Events Stacks New ADT: Stack stack.h template
More informationLinear Data Structure
Linear Data Structure Definition A data structure is said to be linear if its elements form a sequence or a linear list. Examples: Array Linked List Stacks Queues Operations on linear Data Structures Traversal
More informationCPSC 221: Algorithms and Data Structures ADTs, Stacks, and Queues
CPSC 221: Algorithms and Data Structures ADTs, Stacks, and Queues Alan J. Hu (Slides borrowed from Steve Wolfman) Be sure to check course webpage! http://www.ugrad.cs.ubc.ca/~cs221 1 Lab 1 available very
More informationComputer Science 210 Data Structures Siena College Fall Topic Notes: Linear Structures
Computer Science 210 Data Structures Siena College Fall 2017 Topic Notes: Linear Structures The structures we ve seen so far, Vectors/ArrayLists and linked lists, allow insertion and deletion of elements
More informationChapter 12 - Templates
Chapter 12 - Templates O utline 12.1 Introd uction 12.2 Function Te m plate s 12.3 Ove rload ing Te m plate Functions 12.4 Class Te m p late s 12.5 Class Te m plate s and Non-type Param e te rs 12.6 Te
More informationCMSC 341 Lecture 6 STL, Stacks, & Queues. Based on slides by Lupoli, Dixon & Gibson at UMBC
CMSC 341 Lecture 6 STL, Stacks, & Queues Based on slides by Lupoli, Dixon & Gibson at UMBC Templates 2 Common Uses for Templates Some common algorithms that easily lend themselves to templates: Swap what
More informationStack Applications. Lecture 27 Sections Robb T. Koether. Hampden-Sydney College. Wed, Mar 29, 2017
Stack Applications Lecture 27 Sections 18.7-18.8 Robb T. Koether Hampden-Sydney College Wed, Mar 29, 2017 Robb T. Koether Hampden-Sydney College) Stack Applications Wed, Mar 29, 2017 1 / 27 1 Function
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 informationUnit 4: Stacks and Queues
Unit 4: Stacks and Queues Engineering 4892: Data Structures Faculty of Engineering & Applied Science Memorial University of Newfoundland June 1, 2011 ENGI 4892 (MUN) Unit 4 June 1, 2011 1 / 24 1 Stacks
More informationSeptember 10,
September 10, 2013 1 Bjarne Stroustrup, AT&T Bell Labs, early 80s cfront original C++ to C translator Difficult to debug Potentially inefficient Many native compilers exist today C++ is mostly upward compatible
More informationCS : Data Structures
CS 600.226: Data Structures Michael Schatz Sept 23, 2016 Lecture 9: Stacks Assignment 3: Due Sunday Sept 25 @ 10pm Remember: javac Xlint:all & checkstyle *.java & JUnit Solutions should be independently
More informationWhat can go wrong in a Java program while running?
Exception Handling See https://docs.oracle.com/javase/tutorial/ essential/exceptions/runtime.html See also other resources available on the module webpage This lecture Summary on polymorphism, multiple
More informationObject Oriented Programming COP3330 / CGS5409
Object Oriented Programming COP3330 / CGS5409 Intro to Data Structures Vectors Linked Lists Queues Stacks C++ has some built-in methods of storing compound data in useful ways, like arrays and structs.
More informationStacks and Their Applications
Chapter 5 Stacks and Their Applications We have been discussing general list structures. In practice, we often work with some restricted cases, in which insertions and/or deletions occur only at one or
More informationStacks CS102 Sections 51 and 52 Marc Smith and Jim Ten Eyck Spring 2008
Chapter 7 s CS102 Sections 51 and 52 Marc Smith and Jim Ten Eyck Spring 2008 The Abstract Data Type: Specifications of an abstract data type for a particular problem Can emerge during the design of the
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 information! Operators such as =, +, <, can be defined to. ! The function names are operator followed by the. ! Otherwise they are like normal member functions:
Operator Overloading, Lists and Templates Week 6 Gaddis: 14.5, 16.2-16.4 CS 5301 Spring 2016 Jill Seaman Operator Overloading! Operators such as =, +,
More informationCS 106B Lecture 5: Stacks and Queues
CS 106B Lecture 5: Stacks and Queues Monday, July 3, 2017 Programming Abstractions Summer 2017 Stanford University Computer Science Department Lecturer: Chris Gregg reading: Programming Abstractions in
More informationChapter 3. Object-Based Programming Part I
Chapter 3 Object-Based Programming Part I 3: Preview Object-based programming unlike object-oriented programming does not use extended (derived) classes. This chapter covers: similarities and differences
More information4.3 Stacks and Queues
4.3 Stacks and Queues Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2002 2010 03/30/12 04:33:08 PM Data Types and Data Structures Data types.
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 informationProject 1: Implementation of the Stack ADT and Its Application
Project 1: Implementation of the Stack ADT and Its Application Dr. Hasmik Gharibyan Deadlines: submit your files via handin by midnight (end of the day) on Thursday, 10/08/15. Late submission: submit your
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 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 informationDATA STRUCTURES AND ALGORITHMS
LECTURE 8 Babeş - Bolyai University Computer Science and Mathematics Faculty 2017-2018 In Lecture 7... ADT Queue ADT Matrix ADT List ADT Stack Today ADT Queue 1 ADT Queue 2 3 4 Note ADT Queue We will not
More informationAn Introduction to Queues With Examples in C++
An Introduction to Queues With Examples in C++ Prof. David Bernstein James Madison University Computer Science Department bernstdh@jmu.edu Motivation Queues are very straightforward but are slightly more
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 informationWe will now look at a restriction of the Abstract Sorted List that most operations to run in (1) time: the abstract priority queue.
7.1 Abstract Priority Queues Recall that for Abstract Lists, the linear ordering is explicitly defined by the programmer. Abstract Data Types (ADTs) that allowed such data types include strings. There
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 informationTemplates (again) Professor Hugh C. Lauer CS-2303, System Programming Concepts
Templates (again) Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2 nd edition, by Kernighan and Ritchie, Absolute C++, by Walter
More informationCISC-235. At this point we fnally turned our atention to a data structure: the stack
CISC-235 20180918 At this point we fnally turned our atention to a data structure: the stack A stack is our frst example of an Abstract Data Type: we specify the operations we need to be able to perform
More information