© 2006 Pearson Education Chapter 10: Non-linear Data Structures Presentation slides for Java Software Solutions for AP* Computer Science A 2nd Edition.

Slides:



Advertisements
Similar presentations
© 2011 Pearson Education, publishing as Addison-Wesley Chapter 8: Recursion Presentation slides for Java Software Solutions for AP* Computer Science 3rd.
Advertisements

Chapter 10: Data Structures II
The Dictionary ADT Definition A dictionary is an ordered or unordered list of key-element pairs, where keys are used to locate elements in the list. Example:
Chapter 15 Heaps. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Chapter Objectives Define a heap abstract data structure Demonstrate.
Chapter 6: Arrays Java Software Solutions for AP* Computer Science
Binary Trees, Binary Search Trees CMPS 2133 Spring 2008.
CS 171: Introduction to Computer Science II
Trees Chapter 8.
Binary Search Trees Briana B. Morrison Adapted from Alan Eugenio.
Fall 2007CS 2251 Trees Chapter 8. Fall 2007CS 2252 Chapter Objectives To learn how to use a tree to represent a hierarchical organization of information.
Trees Chapter 8. Chapter 8: Trees2 Chapter Objectives To learn how to use a tree to represent a hierarchical organization of information To learn how.
© 2006 Pearson Addison-Wesley. All rights reserved11 A-1 Chapter 11 Trees.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved L12 (Chapter 20) Lists, Stacks,
© 2006 Pearson Addison-Wesley. All rights reserved11 A-1 Chapter 11 Trees.
Chapter 13 Binary Search Trees. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Chapter Objectives Define a binary search tree abstract.
Chapter 12 Trees. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Chapter Objectives Define trees as data structures Define the terms.
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 19 Binary.
A Binary Search Tree Implementation Chapter 25 Copyright ©2012 by Pearson Education, Inc. All rights reserved.
Marc Smith and Jim Ten Eyck
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Sixth Edition Chapter 19: Binary Trees.
© 2011 Pearson Education, publishing as Addison-Wesley Chapter 8: Recursion Presentation slides for Java Software Solutions for AP* Computer Science 3rd.
Data Structures – Binary Tree
Maps A map is an object that maps keys to values Each key can map to at most one value, and a map cannot contain duplicate keys KeyValue Map Examples Dictionaries:
Geoff Holmes and Bernhard Pfahringer COMP206-08S General Programming 2.
Data Structures Arrays both single and multiple dimensions Stacks Queues Trees Linked Lists.
Trees Chapter 8. 2 Tree Terminology A tree consists of a collection of elements or nodes, organized hierarchically. The node at the top of a tree is called.
Trees. Tree Terminology Chapter 8: Trees 2 A tree consists of a collection of elements or nodes, with each node linked to its successors The node at the.
© 2006 Pearson Education Chapter 12: Data Structures Presentation slides for Java Software Solutions for AP* Computer Science A 2nd Edition by John Lewis,
Searching: Binary Trees and Hash Tables CHAPTER 12 6/4/15 Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education,
Lecture 10 Trees –Definiton of trees –Uses of trees –Operations on a tree.
© 2011 Pearson Addison-Wesley. All rights reserved 11 B-1 Chapter 11 (continued) Trees.
Trees Chapter 8. Chapter 8: Trees2 Chapter Objectives To learn how to use a tree to represent a hierarchical organization of information To learn how.
Chapter 19 Implementing Trees and Priority Queues Fundamentals of Java.
Spring 2010CS 2251 Trees Chapter 6. Spring 2010CS 2252 Chapter Objectives Learn to use a tree to represent a hierarchical organization of information.
Chapter 19 Implementing Trees and Priority Queues Fundamentals of Java.
Binary Trees, Binary Search Trees RIZWAN REHMAN CENTRE FOR COMPUTER STUDIES DIBRUGARH UNIVERSITY.
Trees Chapter 8. 2 Tree Terminology A tree consists of a collection of elements or nodes, organized hierarchically. The node at the top of a tree is called.
Binary Search Tree Traversal Methods. How are they different from Binary Trees?  In computer science, a binary tree is a tree data structure in which.
© 2010 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of CHAPTER 12: Multi-way Search Trees Java Software Structures: Designing.
Trees CS 105. L9: Trees Slide 2 Definition The Tree Data Structure stores objects (nodes) hierarchically nodes have parent-child relationships operations.
Chapter 11 B Trees. © 2004 Pearson Addison-Wesley. All rights reserved 11 B-2 The ADT Binary Search Tree A deficiency of the ADT binary tree which is.
Starting Out with C++ Early Objects Seventh Edition by Tony Gaddis, Judy Walters, and Godfrey Muganda Modified for use at Midwestern State University Chapter.
Topics Definition and Application of Binary Trees Binary Search Tree Operations.
Computer Science 112 Fundamentals of Programming II Introduction to Trees.
© 2011 Pearson Education, publishing as Addison-Wesley Chapter 8: Recursion Presentation slides for Java Software Solutions for AP* Computer Science 3rd.
Binary Tree. Some Terminologies Short review on binary tree Tree traversals Binary Search Tree (BST)‏ Questions.
1 Lecture 21: Binary Search Tree delete etc. operations Lecturer: Santokh Singh CompSci 105 SS 2005 Principles of Computer Science.
ADT Binary Search Tree Ellen Walker CPSC 201 Data Structures Hiram College.
Rooted Tree a b d ef i j g h c k root parent node (self) child descendent leaf (no children) e, i, k, g, h are leaves internal node (not a leaf) sibling.
Copyright © 2012 Pearson Education, Inc. Chapter 20: Binary Trees.
Data Structures: A Pseudocode Approach with C, Second Edition 1 Chapter 7 Objectives Create and implement binary search trees Understand the operation.
Copyright © 2015, 2012, 2009 Pearson Education, Inc., Publishing as Addison-Wesley All rights reserved. Chapter 20: Binary Trees.
BINARY TREES Objectives Define trees as data structures Define the terms associated with trees Discuss tree traversal algorithms Discuss a binary.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 20: Binary Trees.
Trees Chapter 15.
Fundamentals of Programming II Introduction to Trees
Recursive Objects (Part 4)
Binary Search Tree (BST)
Section 8.1 Trees.
Trees.
Lecture 18. Basics and types of Trees
Tonga Institute of Higher Education
Binary Trees, Binary Search Trees
Chapter 20: Binary Trees.
Chapter 22 : Binary Trees, AVL Trees, and Priority Queues
Chapter 10: Non-linear Data Structures
Chapter 21: Binary Trees.
Copyright ©2012 by Pearson Education, Inc. All rights reserved
Chapter 20: Binary Trees.
Chapter 11 Trees © 2011 Pearson Addison-Wesley. All rights reserved.
Presentation transcript:

© 2006 Pearson Education Chapter 10: Non-linear Data Structures Presentation slides for Java Software Solutions for AP* Computer Science A 2nd Edition by John Lewis, William Loftus, and Cara Cocking Java Software Solutions is published by Addison-Wesley Presentation slides are copyright 2006 by John Lewis, William Loftus, and Cara Cocking. All rights reserved. Instructors using the textbook may use and modify these slides for pedagogical purposes. *AP is a registered trademark of The College Entrance Examination Board which was not involved in the production of, and does not endorse, this product.

© 2006 Pearson Education 2 Non-linear Data Structures  Now we learn a few more data structures  Chapter 10 focuses on: Sets and maps Trees and binary search trees Heaps Handling collisions in hashtables

© 2006 Pearson Education Sets and Maps  A set is a collection of elements with no duplicates Example: {5, 7, 8} is a set, {3, 3, 4} is not  A map matches, or maps, keys to value Example: a dictionary is a map that maps words to definitions  The keys in a map form a set (and therefore must be unique)  The Set and Map interfaces in Java represent sets and maps  The classes HashSet, TreeSet, HashMap, and TreeMap are implementations

© 2006 Pearson Education Trees and Binary Trees  A tree is a non-linear data structure that consists of zero or more nodes that form a hierarchy  One node is the root node  In a binary tree, each node has at most two children, the right child and left child  Nodes without children are called leaf nodes  A subtree is formed by each child, consisting of the child and its descendents

© 2006 Pearson Education A Tree

© 2006 Pearson Education Binary Tree Implementation  A binary tree is a dynamic data structure  Each node contains data and has references to the left and right children  Basic structure: class TreeNode { Object value; TreeNode left; TreeNode right; }  See TreeNode.java (page 557) TreeNode.java

© 2006 Pearson Education Binary Tree Implementation

© 2006 Pearson Education Tree Traversal  There are 3 ways to traverse a tree, that is, to visit every node:  Preorder traversal: visit the current node, then traverse its left subtree, then its right subtree  Postorder traversal: traverse the left subtree, then the right subtree, then visit the current node  Inorder traversal: traverse the left subtree, then visit the current node, then traverse its right subtree  Tree traversal is a recursive process

© 2006 Pearson Education Binary Search Trees  A binary search tree can be used for storing sorted data  For any node N, every node in N’s left subtree must be less than N, and every node in N’s right subtree must be greater than or equal to N  An inorder traversal of a binary tree visits the nodes in sorted order  See SortGrades.java (page 562) SortGrades.java  See BSTree.java (page 563) BSTree.java  See BSTNode.java (page 565) BSTNode.java

© 2006 Pearson Education A Binary Search Tree

© 2006 Pearson Education Binary Search Trees  Searching for an element is a recursive process  If the desired element is less than the current node, try the left child next  If the desired element is greater than the current node, try the right child next  To insert an element, perform a search to find the proper spot  To delete an element, replace it with its inorder successor

© 2006 Pearson Education Heaps  A heap is a complete binary tree in which each parent has a value less than both its children  A complete binary tree has the maximum number of nodes on every level, except perhaps the bottom, and all the nodes are in the leftmost positions on the bottom  The smallest node in a heap is always at the root

© 2006 Pearson Education Adding to a Heap  To add a node to a heap, add it in the position that keeps the tree complete, then bubble it up if necessary by swapping with its parent until it is not less than its parent

© 2006 Pearson Education Deleting from a Heap  To delete a node from a heap, replace it with the last node on the bottom level and bubble that node up or down as necessary

© 2006 Pearson Education Heapsort  A heap can be used to perform a sort  To do a heapsort, add the elements to a heap, then remove the elements one-by-one by always removing the root node  The nodes will be removed in sorted order  Heapsort is O(n log n)

© 2006 Pearson Education Implementing Heaps  Heaps are often implemented using lists since it is more convenient to add and delete items  The children of the i th element are the 2i th and 2i+1 th elements in the list

© 2006 Pearson Education Hashtables  We can handle collisions in hashtables using chaining or open addressing techniques  With chaining, each cell in the hashtable is a linked list and thus many elements can be stored in the same cell

© 2006 Pearson Education Hashtables  With open addressing techniques, when a collision occurs, a new hash code is calculated, called rehashing  Rehashing continues until a free cell is found  Linear probing, a simple rehash method, probes down the hashtable (wrapping around when the end is reached) until a free cell is found  See Guests.java (page 586) Guests.java

© 2006 Pearson Education Summary  Chapter 10 has focused on: Sets and maps Trees and binary search trees Heaps Handling collisions in hashtables