1 / 8

CompSci 100e Program Design and Analysis II

CompSci 100e Program Design and Analysis II. March 15, 2011 Prof. Rodger. Announcements. APTs extended til 3/17 (Typing Job, Rat route hints) New APT set out today due March 22 Today Stacks and Queues Linear structures used in problem domains and algorithms.

ganit
Télécharger la présentation

CompSci 100e Program Design and Analysis II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CompSci 100eProgram Design and Analysis II March 15, 2011 Prof. Rodger CompSci 100e, Spring2011

  2. Announcements • APTs extended til 3/17 (Typing Job, Rat route hints) • New APT set out today due March 22 • Today Stacks and Queues • Linear structures used in problem domains and algorithms CompSci 100e, Spring2011

  3. Why don't we just use arrays? • Stacks used in implementing recursion, postscript language, Java language, graph algorithms • Stacks implemented using array/ArrayList • Queues used in simulation, graph algorithms, scheduling • Queues implemented using array/LinkedList CompSci 100, Fall 2010

  4. Simple stack example • Stack is part of java.util.Collections hierarchy • As an ADT it's a LIFO data structure (last in, first out) • what does pop do? What does push do? Stack<String> s = new Stack<String>(); s.push("panda"); s.push("grizzly"); s.push("brown"); System.out.println("size = "+s.size()); System.out.println(s.peek()); String str = s.pop(); System.out.println(s.peek()); System.out.println(s.pop()); CompSci 100, Fall 2010

  5. Postfix, prefix, and infix notation • Postfix notation used in some HP calculators • No parentheses needed, precedence rules still respected 3 5 + 4 2 * 7 + 3 - 9 7 + * • Read expression • For number/operand: push • For operator: pop, pop, operate, push • See Postfix.java for example code, key ideas: • Use StringTokenizer, handy tool for parsing • Note: Exceptions thrown, what are these? • What about prefix and infix notations, advantages? CompSci 100, Fall 2010

  6. Interlude: Exceptions • Exceptions are raised or thrown in exceptional cases • Bad indexes, null pointers, illegal arguments, … • File not found, URL malformed, … • Runtime exceptions aren't handled or caught • Bad index in array, don't try to handle this in code • Null pointer stops your program, don't code that way! • Some exceptions are caught or rethrown • FileNotFoundException and IOException • RuntimeException extends Exception • catch not required CompSci 100, Fall 2010

  7. Simple queue example • Queue is part of java.util.Collections hierarchy • As an ADT it's a FIFO data structure (first in, first out) • what does add do? What does remove do? Queue<String> s = new Queue<String>(); s.add("panda"); s.add("grizzly"); s.add("brown"); System.out.println("size = "+s.size()); System.out.println(s.peek()); String str = s.remove(); System.out.println(s.peek()); System.out.println(s.remove()); CompSci 100, Fall 2010

  8. Analysis • Assume a Stack is implemented with an ArrayList. How are inserts and removes done? • Inserting N elements into a stack takes how long? • Removing N removes from a stack takes how long? • Assume a Queue is implemented with an ArrayList. How are inserts and removes done? • Inserting N elements into a queue takes how long? • Removing N elements from a queue takes how long? CompSci 100e, Spring2011

More Related