problem of the day
Download
Skip this Video
Download Presentation
Problem of the Day

Loading in 2 Seconds...

play fullscreen
1 / 42

Problem of the Day - PowerPoint PPT Presentation


  • 72 Views
  • Uploaded on

Problem of the Day. A person looks at a picture and says: Brothers and sisters I have none, but this man’s father is my father’s son. Who’s picture is he looking at ?. Problem of the Day.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Problem of the Day' - parley


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
problem of the day
Problem of the Day
  • A person looks at a picture and says:Brothers and sisters I have none, but this man’s father is my father’s son.Who’s picture is he looking at?
problem of the day1
Problem of the Day
  • A person looks at a picture and says:Brothers and sisters I have none, but this man’s father is my father’s son.Who’s picture is he looking at?
  • He is looking at a picture of his son.
node sounds technical
“Node” Sounds Technical…
  • Links in linked list commonly called “nodes”
  • Node is name for links in a Tree also
    • No relation to linked list class; totally different ideas
    • Each node’s data retrieved using getElement()
  • Node class often used by data structures
    • Node is not specific, but sounds better than “thingy”
    • More node classes to be seen, we use them a lot
node heights
Node Heights
  • Longest count to leaf node
    • D\'s height is 1
    • B\'s height is 3
    • A\'s height is 4

A

D

B

C

E

G

H

F

K

I

J

node heights1
Node Heights
  • Height 1 more than taller child
    • F\'s height is 2
    • B\'s height is 3
    • E\'s height is 1
  • Height of leaf always 1

A

D

B

C

E

G

H

F

K

I

J

node depths
Node Depths
  • Distance to root node of Tree
    • A\'s depth is 0
    • C\'s depth is 1
    • I\'s depth is 3

A

D

B

C

E

G

H

F

K

I

J

node depths1
Node Depths
  • Depth of a node is1 more than its parent
    • Root\'s depth always 0
    • B, C, & D have depth of 1
    • E, F, G, H have depth of 2
    • I, J, K have depth of 3

A

D

B

C

E

G

H

F

K

I

J

binarytree interface
BinaryTree Interface
  • All of the methods defined by the interface

E getRootElement()boolean contains(tgt)E find(tgt)Iterator<E> iteratorInOrder()Iterator<E> iteratorPreOrder() Iterator<E> iteratorPostOrder() Iterator<E> iteratorLevelOrder() Iterator<E> iterator()int size()booleanisEmpty()

binarytree interface1
BinaryTree Interface
  • Often have other methods beyond these in class
binarytree interface2
BinaryTree Interface
  • Often have other methods beyond these in class
    • For example, want methods to addor remove data
binarytree interface3
BinaryTree Interface
  • Often have other methods beyond these in class
    • For example, want methods to addor remove data
binarytree interface4
BinaryTree Interface
  • Often have other methods beyond these in class
    • For example, want methods to addor remove data
  • Good hint: Used in other ADTs through rest of year
binarytree nodes
BinaryTreeNodes
  • BinaryTree interface never exposes nodes
binarytree nodes1
BinaryTreeNodes
  • BinaryTree interface never exposes nodes

CENSORED

binarytree nodes2
BinaryTreeNodes
  • BinaryTree interface never exposes nodes
    • Remain implementation-free; nodes detail how it works
node class for tree
Node Class For Tree

class TNode<E> {private Eelement;private TNode<E>parent;private ArrayList<TNode<E>>kids;// Besides getters & setters, often include methods like:public TNode<E>getChild(inti) { return kids.get(i);}public void addChild(TNode<E> kid) { kids.addToRear(kid);}public TNode<E>removeChild(inti) { return kids.remove(i); }

}

linked node for binarytree
Linked Node for BinaryTree

class BTNode<E>{private Eelement;private BTNode<E>left;private BTNode<E>right;// Add getters & setters for each fieldpublic booleanhasLeftChild(){ return left != null; }public BTNode<E> getRight(){ return right; }

}

picturing linked binarytree

D

C

B

A

Picturing LinkedBinaryTree

B

A

C

 

 

D

nodes in linked binarytree

D

C

B

A

Nodes in LinkedBinaryTree

B

A

C





D

pointers in linked binarytree
Pointers in LinkedBinaryTree

B

B

A

C

 

 

D

A

C

D

array based binarytree
Array-based BinaryTree
  • Node at index specified for location in Tree
    • Root node stored at index 0
    • Root’s left child at index 1
    • Right child of root at index 2
    • Left child’s right child at index 4
    • Right child’s left child at index 5
    • Node at index n’s left child is at index 2n + 1
    • Node at index n’s right child is at index 2n + 2
array based implementation
Array-based Implementation
  • Tree’s depth limited by array size
    • Where in array determined by location
  • Listovercomes limits
    • null added to pad space
    • Replace value at index to to add nodes
array based implementation1
Array-based Implementation
  • Tree’s depth limited by array size
    • Where in array determined by location
  • Listovercomes limits
    • null added to pad space
    • Replace value at index to to add nodes
array based implementation2
Array-based Implementation
  • Tree’s depth limited by array size
    • Where in array determined by location
  • Listovercomes limits
    • null added to pad space
    • Replace value at index to to add nodes
array based implementation3
Array-based Implementation
  • Tree’s depth limited by array size
    • Where in array determined by location
  • Listovercomes limits
    • null added to pad space
    • Replace value at index to to add nodes
  • Cannot easily overcome limits
    • Be careful using this approach
array based impl1
Array-based Impl.

A

A

B

D

B

D

E

F

C

J

C

E

F

J

G

H

G

H

2 nd array based impl
2nd Array-based Impl.

A

G

B

D

H

F

C

J

E

A

B

D

C

E

F

J

G

H

correct array based impl
Correct Array-based Impl.

A

0

G

C

E

B

D

F

J

A

1

2

B

D

3

4

5

6

C

E

F

J

9

10

G

H

H

array refers to node s
Array Refers to Nodes

A

0

G

C

E

B

D

F

J

A

1

2

B

D

3

4

5

6

C

E

F

J

9

10

G

H

H

node s implicitly linked only
Nodes Implicitly Linked Only

A

0

G

B

D

A

1

2

B

D

3

4

5

6

C

E

F

J

E

F

C

J

9

10

G

H

H

node s implicitly linked only1
Nodes Implicitly Linked Only

A

0

G

B

D

A

1

2

B

D

3

4

5

6

C

E

F

J

E

F

C

J

9

10

G

H

H

node for array based impl
Node for Array-based Impl.

public class BANode<E>{private Eelement;privateintmyIndex;privatebooleanhasLeft;privatebooleanhasRight;// Add getters & setters for each fieldpublic intgetLeft() { if (!hasLeft) { return -1; } return (myIndex* 2) + 1;}public void setRight() {hasRight= true; }

}

your turn
Your Turn
  • Get into your groups and complete activity
for next lecture
For Next Lecture
  • Read 12.1 & online for Friday\'s lecture
    • What and how does a heap extend BinaryTree?
    • Why does heap sound familiar, but why is it not?
    • Can computer science ever be consistent with terms?
  • Week #13 posted today & due week from Tues.
  • Programming Assignment #2 available now
ad