Data Abstraction: Sets Binary Search Trees - PowerPoint PPT Presentation

About This Presentation
Title:

Data Abstraction: Sets Binary Search Trees

Description:

Data Abstraction: Sets. Binary Search Trees. CMSC 11500. Introduction to Computer Programming ... Data abstraction:Sets. Objects as functions:Member-of?, Adjoin, ... – PowerPoint PPT presentation

Number of Views:19
Avg rating:3.0/5.0
Slides: 19
Provided by: classesCs
Category:

less

Transcript and Presenter's Notes

Title: Data Abstraction: Sets Binary Search Trees


1
Data Abstraction SetsBinary Search Trees
  • CMSC 11500
  • Introduction to Computer Programming
  • October 30, 2002

2
Roadmap
  • Recap Binary Trees
  • Data abstractionSets
  • Objects as functionsMember-of?, Adjoin,
    Intersection
  • Implementations Binary Search Trees
  • Data Definition
  • Invariants
  • Template
  • Functions
  • Analysis Efficiency
  • Summary

3
Recap Binary Trees
  • Binary trees
  • (Multiply) self-referential structures
  • Data Definition -gt Template -gt Function
  • (define-struct bt (val left right))
  • Where val number left, right binary-tree
  • A binary-tree 1) unknown,
  • 2) (make-bt val left right)
  • (define (fn-for-bt abt)
  • (cond ((eq? abt f))
  • ((bt? abt)
  • (cond ((bt-val abt))
  • .(fn-for-bt
    (bt-left abt))
  • .(fn-for-bt
    (bt-right abt))

4
Data Abstraction Sets
  • Set collection of objects
  • Defined by operations that can be performed
  • Set operations
  • Element-of?, Adjoin, Union, Intersection, Set
    difference
  • Many possible concrete implementations
  • Unordered lists
  • Ordered lists
  • Binary trees
  • Binary search trees

5
Data Definition
  • Binary search tree (bst) is
  • f or,
  • (make-bt val left right)
  • Where val number left, right bst
  • (define-struct bt (val left right))
  • Invariant
  • For a node n, the bt-vals of all nodes in
    (bt-left n) are less than (bt-val n) and all node
    values in (bt-right n) are greater.

6
Data Invariants
  • invariant if it is true of the input, must be
    true of the output
  • Invariant must be maintained by all functions
    that operate on the type
  • E.g. adjoin new element must be gt anything to
    its left, lt than anything to its right

7
Template
(define (fn-for-bst abst) (cond ((eq? abst
f)..) ((bt? abst) (cond ((
bt-val abst)) (fn-for-bst (bt-left
abst)).. (fn-for-bst (ft-right abst))
8
Sets as Binary Search Trees
  • 3,5,6,7,9,11,13
  • Balanced same nodes in left right
  • Unbalanced anything else

7
5
11
3
6
9
13
9
Element-of?
  • Contract
  • element-of? number bst -gt boolean
  • Purpose
  • To determine if element is in set

10
Element-of?
(define (element-of? num abst) (cond ((eq?
abst f) f) ((bt? abst) (cond (( num
(bt-val abst)) t) ((lt num (bt-val
abst)) (element-of? num (bt-left abst)))
((gt num (bt-val abst)) (element-of? num
(bt-right abst)))))
11
Adjoin
  • Contract
  • adjoin number bst -gt bst
  • Purpose
  • To create a new set with members of original
    set and new element

12
Adjoin BST
(define (adjoin x abst) (cond ((null? abst)
(make-bt x f f) (( x (bt-val abst))
abst) ((lt x (bt-val abst)) (make-bt
(bt-val abst) (adjoin x (bt-left abst))
(bt-right abst))) ((gt x (bt-val abst))
(make-bt (bt-val abst) (bt-left abst)
(adjoin x (bt-right abst))))
13
Intersection BST
  • Contract
  • intersection bst bst -gt bst
  • Purpose
  • To build a set including items found in both
    sets

14
Intersection
(define (intersection bst1 bst2) (intersect-iter
bst1 bst2 f) (define (intersect-iter bst1 bst2
bst-new) (cond ((or (not bst1)(not bst2))
bst-new) ((element-of? (bt-val bst2)
bst1) (intersect-iter (bt-right bst2) bst1
(intersect-iter (bt-left bst2) bst1 (adjoin
(bt-val bst2) bst-new) (else (intersect-iter
(bt-right bst2) bst1 (intersect-iter
(bt-left bst2) bst1 bst-new)
15
BST Sets
  • Analysis
  • If balanced tree
  • Each branch reduces tree size by half
  • Successive halving -gt O(log n) growth
  • Element-of? O(log n)
  • Adjoin O(log n)

16
Summary
  • Data objects
  • Defined by operations done on them
  • Abstraction
  • Many possible implementations of operations
  • All adhere to same contract, purpose
  • Different implications for efficiency

17
Alternative Ordered Lists
  • Set-of-numbers
  • 1) ()
  • 2) (cons n set-of-numbers)
  • Where n is a number, and n lt all numbers in son
  • Maintain constraint
  • Anywhere add element to set

18
Adjoin
(define (adjoin x set) (cond ((null? set) (cons x
()) ((eq? (car set) x) set) ((lt x (car set))
(cons x set)) (else (cons (car set)
(adjoin x (cdr set)))))) Note New invariant
adds condition Order of Growth On average,
check half
Write a Comment
User Comments (0)
About PowerShow.com