CSE 373 Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks; Eclipse.

Slides:



Advertisements
Similar presentations
Building Java Programs Chapter 14
Advertisements

COMPSCI 105 S Principles of Computer Science 13 Stacks.
Elementary Data Structures CS 110: Data Structures and Algorithms First Semester,
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.
Chapter 3 Stacks.
Stacks. What is a stack? Last-in first-out data structure (LIFO) New objects are placed on top Removal restricted to top object Examples?
Stacks Chapter 5. Chapter 5: Stacks2 Chapter Objectives To learn about the stack data type and how to use its four methods: push, pop, peek, and empty.
Unit 11 1 Unit 11: Data Structures H We explore some simple techniques for organizing and managing information H This unit focuses on: Abstract Data Types.
1 Lecture 24 Abstract Data Types (ADT) –I Overview  What is an Abstract Data type?  What is Stack ADT?  Stack ADT Specifications  Array Implementation.
Part-B1 Stacks. Stacks2 Abstract Data Types (ADTs) An abstract data type (ADT) is an abstraction of a data structure An ADT specifies: Data stored Operations.
TCSS 342, Winter 2005 Lecture Notes
CSE 143 Lecture 7 Stacks and Queues reading: Stuart Reges notes on website slides created by Marty Stepp
Building Java Programs
Building Java Programs
CSE 373 Data Structures and Algorithms Lecture 2: Queues.
CSE 143 Lecture 7 Stacks and Queues reading: "Appendix Q" (see course website) slides created by Marty Stepp and Hélène Martin
© 2006 Pearson Addison-Wesley. All rights reserved7A-1 Chapter 7 Stacks (and a bit of generics for flavor)
Topic 3 The Stack ADT.
Week7 Stack Data Structures & Algorithms. Introduction to Stacks and Queues Widely used data structures Ordered List of element Easy to implement Easy.
CHAPTER 05 Compiled by: Dr. Mohammad Omar Alhawarat Stacks & Queues.
Chapter 3 Introduction to Collections – Stacks Modified
CSE 143 Lecture 5 Stacks and Queues slides created by Marty Stepp
Data Structures. The Stack: Definition A stack is an ordered collection of items into which new items may be inserted and from which items may be deleted.
CSE 143 Lecture 20 Binary Search Trees continued; Tree Sets read slides created by Marty Stepp and Hélène Martin
CSE 143 Lecture 9 Interfaces; Stacks and Queues slides created by Marty Stepp
© 2004 Goodrich, Tamassia Stacks. © 2004 Goodrich, Tamassia Stacks2 Abstract Data Types (ADTs) An abstract data type (ADT) is an abstraction of a data.
CSE 373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks; Eclipse.
30 May Stacks (5.1) CSE 2011 Winter Stacks2 Abstract Data Types (ADTs) An abstract data type (ADT) is an abstraction of a data structure An.
1 Chapter 20 Lists, Stacks, Queues Lecture 7 Dr. Musab Zghoul برمجة هيكلية.
Min Chen School of Computer Science and Engineering Seoul National University Data Structure: Chapter 3.
Stacks and Queues. 2 3 Runtime Efficiency efficiency: measure of computing resources used by code. can be relative to speed (time), memory (space), etc.
CSE 143 Lecture 24 Advanced collection classes (ADTs; abstract classes; inner classes; generics; iterators) read 11.1, 9.6, , slides.
Stacks Nour El-Kadri CSI Stacks Software stacks are abstract data types (structures) similar to physical stacks, Plates Trays Books PEZ dispenser.
COMPSCI 105 SS 2015 Principles of Computer Science 09 ADT & Stacks.
CSE 373: Data Structures and Algorithms Lecture 2: Queues.
CSC 205 – Java Programming II Lecture 30 April 3, 2002.
M180: Data Structures & Algorithms in Java Stacks Arab Open University 1.
3-1 Java's Collection Framework Another use of polymorphism and interfaces Rick Mercer.
Click to edit Master text styles Stacks Data Structure.
Stacks and Queues. 2 Abstract Data Types (ADTs) abstract data type (ADT): A specification of a collection of data and the operations that can be performed.
Building Java Programs
Comprehensive Introduction to OOP with Java, C. Thomas Wu Stack ADT
Stacks and Queues.
Revised based on textbook author’s notes.
Stacks.
CSE 373: Data Structures and Algorithms
The Stack ADT. 3-2 Objectives Define a stack collection Use a stack to solve a problem Examine an array implementation of a stack.
CSE 373: Data Structures and Algorithms
Stacks and Queues.
Building Java Programs Chapter 14
Building Java Programs
Stacks and Queues.
Building Java Programs
Building Java Programs Chapter 14
CSC 205 – Java Programming II
Data Structures and Algorithms
Stacks and Queues.
slides created by Marty Stepp
Building Java Programs
Building Java Programs
Building Java Programs Chapter 14
Stacks and Queues CLRS, Section 10.1.
CSC 143 Stacks [Chapter 6].
slides created by Marty Stepp
slides created by Marty Stepp
Lecture 2: Stacks and Queues
Generics, Stack, Queue Based on slides by Alyssa Harding
slides created by Marty Stepp
Stacks and Queues.
slides created by Marty Stepp and Hélène Martin
Presentation transcript:

CSE 373 Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks; Eclipse

Course objectives  Learn basic data structures and algorithms  data structures – how data is organized  algorithms – unambiguous sequence of steps to compute something  algorithm analysis – determining how long an algorithm will take to solve a problem  Become a better software developer  "Data Structures + Algorithms = Programs" -- Niklaus Wirth, author of Pascal language 2

Abstract Data Types  abstract data type (ADT): A specification of a collection of data and the operations that can be performed on it.  Describes what a collection does, not how it does it  Described in Java with interfaces (e.g., List, Map, Set )  Separate from implementation  ADTs can be implemented in multiple ways by classes:  ArrayList and LinkedList implement List  HashSet and TreeSet implement Set  LinkedList, ArrayDeque, etc.implement Queue  Java messed up on Stack—there's no Stack interface, just a class. 3

List ADT  An ordered collection the form A 0, A 1,..., A N-1, where N is the size of the list  Operations described in Java's List interface (subset):  ArrayList and LinkedList are implementations 4 add( elt, index ) inserts the element at the specified position in the list remove ( index ) removes the element at the specified position get( index ) returns the element at the specified position set( index, elt ) replaces the element at the specified position with the specified element contains( elt ) returns true if the list contains the element size() returns the number of elements in the list

Stack ADT 5  stack: a list with the restriction that insertions/deletions can only be performed at the top/end of the list  Last-In, First-Out ("LIFO")  The elements are stored in order of insertion, but we do not think of them as having indexes.  The client can only add/remove/examine the last element added (the "top").  basic stack operations:  push: Add an element to the top.  pop: Remove the top element.  peek: Examine the top element.

Applications of Stacks  Programming languages:  method calls are placed onto a stack (call=push, return=pop)  Matching up related pairs of things:  find out whether a string is a palindrome  examine a file to see if its braces { } and other operators match  Sophisticated algorithms:  searching through a maze with "backtracking"  many programs use an "undo stack" of previous operations 6 method3 return var local vars parameters method2 return var local vars parameters method1 return var local vars parameters

Class Stack 7 Stack s = new Stack (); s.push(42); s.push(-3); s.push(17); // bottom [42, -3, 17] top System.out.println(s.pop()); // 17 Stack () constructs a new stack with elements of type E push( value ) places given value on top of stack pop() removes top value from stack and returns it; throws EmptyStackException if stack is empty peek() returns top value from stack without removing it; throws EmptyStackException if stack is empty size() returns number of elements in stack isEmpty() returns true if stack has no elements

Stack limitations/idioms  Remember: You can’t loop over a stack like you do a list. Stack s = new Stack ();... for (int i = 0; i < s.size(); i++) { do something with s.get(i); }  Instead, you pull contents out of the stack to view them.  Idiom: Remove each element until the stack is empty. while (!s.isEmpty()) { do something with s.pop(); } 8

Exercise 9  Write a method symbolsBalanced that accepts a String as a parameter and returns whether or not the parentheses and the curly brackets in that String are balanced as they would have to be in a valid Java program.  Use a Stack to solve this problem.

Eclipse concepts 10  workspace: a collection of projects  stored as a directory  project: a Java program  must have your files in a project in order to be able to compile, debug and run them  by default stored in a directory in your workspace  perspective: a view of your current project using a set of pre-laid-out windows and menus  Java perspective  debugging perspective