6'170 Recitation - PowerPoint PPT Presentation

About This Presentation
Title:

6'170 Recitation

Description:

6.170 Recitation. Godfrey Tan. Announcements. Quiz 1 Review. Sunday, ... Predecessors, successors. Graph Implementation. Centralized. Graph stores everything ... – PowerPoint PPT presentation

Number of Views:38
Avg rating:3.0/5.0
Slides: 26
Provided by: alle4
Learn more at: http://nms.lcs.mit.edu
Category:

less

Transcript and Presenter's Notes

Title: 6'170 Recitation


1
6.170 Recitation
  • Godfrey Tan

2
Announcements
  • Quiz 1 Review
  • Sunday, March 3, 730pm, 34-101
  • Problem Set 3
  • Tuesday, March 5
  • Quiz 1 (L1-L10)
  • Wednesday, March 6 during class
  • Locations
  • 54-100 for usernames a-j
  • 34-101 for usernames k-z
  • Open book, but it is a short quiz!

3
Graph Basics
  • Node
  • Station id, name
  • Edge
  • Line type, (in station, out station)
  • Nodes are connected via Edges
  • Graph is a collection of nodes and edges

4
Graph Requirements
  • Directed
  • Multi-graph
  • Dynamic add and remove nodes
  • Flexible works for other applications

5
Graph Operations
  • addNode, containsNode
  • addEdge, containsEdge
  • Traversal
  • Predecessors, successors

6
Graph Implementation
  • Centralized
  • Graph stores everything
  • May or may not require Node class
  • Distributed
  • Graph stores Nodes
  • Node stores Edges

7
Storing Nodes and Edges
  • Adjacency lists
  • Nodes
  • IN Edges, Out Edges for each Node
  • Adjacency matrices
  • Two dimensional arrays
  • HashMap
  • Stores (key, value)

8
Traversal
  • Depth first search
  • Breadth first search
  • Operations
  • Mark found, visited
  • Visit

9
Inputs and outputs
  • Input Harvard Alewife
  • Output
  • Harvard(14), Porter(10), Davis(7), Alewife(8)

10
Abstract Data Type What?
  • Abstraction by specification
  • Operations (T abstract type, t some other
    type)
  • Constructors t ? T
  • Producers T, t ? T
  • Mutators T, t ? void
  • Observers T, t ? t
  • Designing an Abstract Type
  • Few, simple operations that can be combined in
    powerful ways
  • Operations should have well-defined purpose,
    coherent behavior
  • Set of operations should be adequate

11
Abstract Data Type Why?
  • Allows us to
  • abstract from the details of
  • how data objects are implemented
  • how they behave
  • defer decisions about the data structures

12
Implementing an ADT
  • Select the rep (representation of instances)
  • Implement operations in terms of that rep

13
Rep
  • Data structure plus
  • Set of conventions defined by
  • rep invariant
  • abstraction function

14
A Rep example
  • We want a representation of a list of 3 integers
    sorted in ascending order
  • x1, x2, x3 where x1 lt x2 lt x3

15
Sorted List
  • class SortedList
  • Vector v Integer foo
  • // requires a lt b lt c
  • public SortedListA(Integer a, Integer b,
  • Integer c)
  • v new Vector()
  • foo new Integer(666)
  • v.add(a) v.add(foo)
  • v.add(b) v.add(foo)
  • v.add(c) v.add(foo)

16
Rep
  • Data structure plus
  • Set of conventions defined by
  • rep invariant
  • abstraction function
  • What is the data structure for SortedList?

17
Rep
  • Data structure plus
  • Set of conventions defined by
  • rep invariant
  • abstraction function
  • What is the data structure for SortedList?
  • Vector

18
Abstraction Function
  • What is the abstraction function?

19
Abstraction Function
  • What is the abstraction function?
  • Mapping from vector elements to abstract values
  • v0, v2, v4 maps to x1, x2, x3

20
Is this implementation necessarily wrong?
  • class SortedList
  • Vector v Integer foo
  • // requires a lt b lt c
  • public SortedListA(Integer a, Integer b,
  • Integer c)
  • v new Vector()
  • foo new Integer(666)
  • v.add(b) v.add(foo)
  • v.add(a) v.add(foo)
  • v.add(c) v.add(foo)

21
Abstraction Function
  • Just redefine the abstraction function!
  • v2, v0, v4 maps to x1, x2, x3
  • Abstraction function defines the convention or
    the way we interpret the underlying data
    structure for the abstraction it represents.

22
Representation Invariant
  • If I decide that my representation invariant is
    the following
  • v ! null
  • v.size() 6
  • all elements in v are Integers
  • foo Integer(666)
  • Then all operations constructors, producers,
    mutators, observers MUST maintain this property!!!

23
Representation Invariant
  • If I decide that my representation invariant is
    the following
  • v ! null
  • v.size() 6
  • all elements in v are Integers
  • foo Integer(666)
  • Suppose I take out the last clause, then what
    does this imply?
  • Then the operators the constructors, producers,
    mutators, observers cannot always expect foo
    Integer(666) in their implementation!

24
Representation Invariant
  • The idea behind Representation Invariant is to
    allow the implementation of each operation to
    agree on a set of assumptions about the data
    structure!

25
Quiz 1 Questions?
  • Good luck on the quiz!
Write a Comment
User Comments (0)
About PowerShow.com