template<class T> T TreeNode<T>:: getdata() const { return data; }//end getdata
|
|
- Antony Williams
- 6 years ago
- Views:
Transcription
1 #pragma once template<class T> class BinarySearchTree; template<class T> class TreeNode friend class BinarySearchTree<T>; public: TreeNode(); TreeNode(const T &info, TreeNode<T> *left, TreeNode<T> *right); T getdata() const; private: T data; TreeNode<T> *leftchildptr; TreeNode<T> *rightchildptr; };//end class tree template<class T> TreeNode<T>::TreeNode() leftchildptr=null: rightchildptr = NULL; }//end TreeNode TreeNodeBST.h
2 template<class T> TreeNode<T>::TreeNode(const T &info, TreeNode<T> *left, TreeNode<T> *right) data= info; leftchildptr= left; rightchildptr = right; } // end TreeNode template<class T> T TreeNode<T>:: getdata() const return data; }//end getdata
3 #pragma once #include "TreeNodeBST.h" #include <iostream> #include <cassert> using namespace ::std; BinarySearchTree.h template <class T> class BinarySearchTree private: TreeNode<T> *root; public: BinarySearchTree(); BinarySearchTree(const BinarySearchTree<T> &temptree); ~BinarySearchTree(); bool isempty() const; void searchtreeinsert(const T &newitem); void searchtreedelete(t searchitem); void searchtreeretrieve(t searchkey, T &treeitem); void preordertransverse() const;
4 void postordertransverse() const; BinarySearchTree<T>& BinarySearchTree<T>::operator = (const BinarySearchTree<T>&tempTree); protected: void insertitem(treenode<t> *& treeptr, const T &newitem); void deleteitem(treenode<t> *&, T searchkey); void deletenodeitem(treenode<t> *&nodeptr); void processleftmost(treenode<t> *&nodeptr, T &treeitem); TreeNode<T> *roottree() const; void setrootptr(treenode <T> *newroot); void getchildptrs(treenode <T> *temproot,treenode <T> *&templeftchild, TreeNode <T>*&tempRightChild) const; void setchildptrs(treenode <T> *temproot,treenode <T> *&templeftchild, TreeNode <T>*&tempRightChild) ; void preorder(treenode<t> *temproot) const; void postorder(treenode<t> *temproot) const; void inorder(treenode<t> *temproot ) const; }; //end BinarySearchTree class
5 BinarySearchTree<T>::BinarySearchTree():root(NULL) }//end constructor //Constructor que hace una replica del contenido de un arbol BinarySearchTree<T>::BinarySearchTree(const BinarySearchTree<T> &temptree) copytree(temptree.root,root); }//end constructor //Destruye el arbol binario BinarySearchTree<T>::~BinarySearchTree() destroytree(root); }//end destructor //Verifica si el arbol esta vacio template <class T> bool BinarySearchTree<T>::isEmpty() const return(root == NULL); } //end isempty //Anade un nodo nuevo al arbol void BinarySearchTree<T>::searchTreeInsert(const T &newitem) insertitem(root,newitem); }//end searchtreeinsert
6 //Elimina un nodo del arbol void BinarySearchTree<T>::searchTreeDelete(T searchitem) deleteitem(root, searchitem); }//end serachtreedelete //Retorna la direccion del nodo buscado void BinarySearchTree<T>::searchTreeRetrieve(T searchkey, T &treeitem) retrieveitem(root, searchkey,treeitem); }//end searchtreeretrieve //Recorrido del arbol void BinarySearchTree<T>::preOrderTransverse() const preorder(root); }//end preordertransverse
7 //Recorrido del arbol void BinarySearchTree<T>::postOrderTransverse() const postorder(root); } //end porordertransverse //Recorrido del arbol template <class T> void BinarySearchTree<T>::inOrderTransverse() const inorder(root); }//end inordertransverse
8 //El nodo se anade a la hoja izquierda si el menor y a la derecha si es mayor template <class T> void BinarySearchTree<T>::insertItem(TreeNode<T> *&treeptr, const T &newitem) if(treeptr == NULL) treeptr = new TreeNode<T> (newitem,null,null); if(treeptr==null) else cout<<"no hay memoria suficiente\n"; if(newitem < treeptr->data) }//endif else insertitem(treeptr->leftchildptr, newitem); insertitem(treeptr->rightchildptr, newitem); }//end insertitem
9 //Elimina un nodo del arbol void BinarySearchTree<T>::deleteItem(TreeNode<T> *&treeptr, T searchkey) if(treeptr == NULL) cout<<"delete failed\n"; } else if(searchkey == treeptr->data) deletenodeitem(treeptr); }//endif else if(searchkey < treeptr->data) deleteitem(treeptr->leftchildptr,searchkey); else deleteitem(treeptr->rightchildptr,searchkey); }//end deleteitem
10 void BinarySearchTree<T>::deleteNodeItem(TreeNode<T> *&nodeptr) TreeNode<T> *delptr; T replecementitem; if((nodeptr->leftchildptr==null) && (nodeptr->rightchildptr==null)) //Es una hoja delete nodeptr; nodeptr = NULL; } //end if else if(nodeptr->leftchildptr==null) //el nodo solo tenia un hijo derecho delptr = nodeptr; nodeptr = nodeptr->rightchildptr; delptr-> rightchildptr= NULL; delete delptr; } //end if
11 else if(nodeptr->rightchildptr==null) //el nodo solo tenia un hijo izquierdo delptr = nodeptr; nodeptr = nodeptr->leftchildptr; delptr-> leftchildptr= NULL; delete delptr; else //el nodo tiene dos hijos, busca la hoja mas izquierda del subarbol derecho processleftmost(nodeptr->rightchildptr, replecementitem); nodeptr->data = replecementitem; }//end deletenodeitem
12 void BinarySearchTree<T>::processLeftmost(TreeNode<T> *&nodeptr, T &treeitem) if(nodeptr->leftchildptr==null) //el nodo solo tenia un hijo derecho treeitem = nodeptr->data; TreeNode <T> *delptr = nodeptr; nodeptr = nodeptr->rightchildptr; delptr->rightchildptr = NULL; delete delptr; } //endif else processleftmost(nodeptr->leftchildptr, treeitem); }//end processleftmost void BinarySearchTree<T>::retrieveItem(TreeNode<T> *&treeptr, T searchkey, T &treeitem) const if(treeptr == NULL) cout<<"search key not found\n"; } //end if else if(searchkey == treeptr->data) treeitem = treeptr->data; }//endif else if(searchkey < treeptr->data) retrieveitem(treeptr->leftchildptr,searchkey, treeitem); else retrieveitem(treeptr->rightchildptr,searchkey,treeitem);
13 //Realiza una replica de un arbol con el operador igual BinarySearchTree<T> & BinarySearchTree<T>::operator = (const BinarySearchTree<T> &temptree) if(this!= &temptree) destroytree(temptree); copytree(temptree.root,root); return *this; }//end operator=
14 //Realiza una replica del contenido del arbol void BinarySearchTree<T>::copyTree(TreeNode <T> *temptree,treenode <T> *&newtree) const if(temptree!= NULL) newtree = new TreeNode<T> (temptree->data, NULL,NULL); if(newtree == NULL) cout<<"no hay memoria suficiente\n"; } //end if else copy(temptree->leftchildptr, newtree->leftchildptr); copy(temptree->rightchildptr, newtree->rightchildptr); else newtree = NULL; }//end copytree
15 void BinarySearchTree<T>::destroyTree(TreeNode <T> *&temptree) if(temptree!= NULL) destroytree(temptree->leftchildptr); destroytree(temptree->rightchildptr); delete temptree; }//end destroytree TreeNode<T> * BinarySearchTree<T>::rootTree() const return root; }//end roottree
16 void BinarySearchTree<T>::setRootPtr(TreeNode <T> *newroot) root = newroot; }//end setrootptr void BinarySearchTree<T>::getChildPtrs(TreeNode <T> *temproot, TreeNode <T> *&templeftchild, TreeNode <T>*&tempRightChild) const templeftchild = temproot->leftchildptr; temprightchild= temproot->rightchildptr; }//end getchildptrs
17 void BinarySearchTree<T>::setChildPtrs(TreeNode <T> *temproot,treenode <T>*&tempLeftChild, TreeNode <T>*&tempRightChild) temproot->leftchildptr = templeftchild; temproot->rightchildptr = temprightchild; }//end setchildptrs void BinarySearchTree<T>::preOrder(TreeNode<T> *temproot) const if(temproot!= NULL) cout<<temproot->data<<" "; preorder(temproot->leftchildptr); preorder(temproot->rightchildptr); }//end preorder void BinarySearchTree<T>::postOrder(TreeNode<T> *temproot) const if(temproot!= NULL) postorder(temproot->leftchildptr); postorder(temproot->rightchildptr); cout<<temproot->data<<" "; }//end pororder
18 void BinarySearchTree<T>::inOrder(TreeNode<T> *temproot) const if(temproot!= NULL) inorder(temproot->leftchildptr); cout<<temproot->data<<" "; inorder(temproot->rightchildptr); }//end inorder
19 #include "BinarySearchTree.h" #include <iostream> using namespace ::std; int main() BinarySearchTree<int> tree; BinarySearchTree_main.cpp tree.searchtreeinsert(60); tree.searchtreeinsert(20); tree.searchtreeinsert(10); tree.searchtreeinsert(40); tree.searchtreeinsert(30); tree.searchtreeinsert(50); tree.searchtreeinsert(70); cout<<"\npreorder:"; tree.preordertransverse(); cout<<"\ninorder:"; tree.inordertransverse(); cout<<"\npostorder:"; tree.postordertransverse(); cout<<"\n"; /* Preorder: Inorder: Postorder: Press any key to continue...*/ return 0; }//end main
Propedéutico de Programación
Propedéutico de Programación Coordinación de Ciencias Computacionales Semana 6, Primera Parte Dra. Pilar Gómez Gil Versión 1.2 08.07.08 http://ccc.inaoep.mx/~pgomez/cursos/programacion/ Chapter 8 Binary
More informationCS302 - Data Structures using C++
CS302 - Data Structures using C++ Topic: Tree Implementations Kostas Alexis Nodes in a Binary Tree Representing tree nodes Must contain both data and pointers to node s children Each node will be an object
More informationTrees, Heaps, and Priority Queues
Chapter 17 Trees, Heaps, and Priority Queues Objectives To know how to represent and access the elements in a binary tree ( 17.2.1-17.2.2). To insert an element to a binary tree ( 17.2.3). To traverse
More information8 Binary Search Trees
8 Binary Search Trees Jake s Pizza Shop Owner Jake Manager Brad Chef Carol Waitress Waiter Cook Helper Joyce Chris Max Len 2 A Tree Has a Root Node ROOT NODE Owner Jake Manager Brad Chef Carol Waitress
More informationTo find a value in a BST search from the root node:
BST Search To find a value in a BST search from the root node: If the target is less than the value in the node search its left subtree If the target is greater than the value in the node search its right
More informationComplete Binary Trees
Trees part 2. Full Binary Trees A binary tree is full if all the internal nodes (nodes other than leaves) has two children and if all the leaves have the same depth A A full binary tree of height h has
More informationCS302 - Data Structures using C++
CS302 - Data Structures using C++ Topic: Implementation Kostas Alexis s Definition: A (BST) is a binary tree where each node has a Comparable key (and an associated value) and satisfies the restriction
More informationSome other data structures we will consider. trees, tables, graphs, hash-tables. EECS 268 Programming II 2. range of applications.
Trees Linear Vs non-linear data structures Types of binary trees Binary tree traversals Representations of a binary tree Binary tree ADT Binary search tree 1 Terminology A Tree T is a set of n >= 0 elements:
More informationData Structures Lab II. Binary Search Tree implementation
Data Structures Lab II Binary Search Tree implementation Objectives: Making students able to understand basic concepts relating to Binary Search Tree (BST). Making students able to implement Binary Search
More information1 import java.io.*; 2 import java.util.*; class BTNode{ 6 7 private int nodeid; 8 private int data; 9 private int levelnum; 10 private BTNode
1 import java.io.*; 2 import java.util.*; 3 4 5 class BTNode{ 6 7 private int nodeid; 8 private int data; 9 private int levelnum; 10 private BTNode leftchildptr; 11 private BTNode rightchildptr; 12 13
More informationChapter 20: Binary Trees
Chapter 20: Binary Trees 20.1 Definition and Application of Binary Trees Definition and Application of Binary Trees Binary tree: a nonlinear linked list in which each node may point to 0, 1, or two other
More informationCS200 Midterm 2 Fall 2007
CS200 Midterm 2 Fall 2007 Name Topic Possible Received Generics, programming 10 Trees 35 Priority Queues, Heaps 30 Graphs 25 TOTAL 100 1. Generics/Programming [10 points] a. [4 points] Why is it important
More information1 #include <iostream> 2 #include <fstream> 3 #include <string> 4 #include <cstring> // for string tokenizer and c-style string processing 5 #include
1 #include 2 #include 3 #include 4 #include // for string tokenizer and c-style string processing 5 #include // max function 6 7 using namespace std;
More informationPropedéutico de Programación
Propedéutico de Programación Coordinación de Ciencias Computacionales Semana 4, Segunda Parte Dra. Pilar Gómez Gil Versión 1. 24.06.08 http://ccc.inaoep.mx/~pgomez/cursos/programacion/ Chapter 3 ADT Unsorted
More informationChapter 8. Binary Search Trees. Fall 2013 Yanjun Li CISC Trees. Owner Jake. Waitress Waiter Cook Helper Joyce Chris Max Len
Chapter 8 Binary Search Trees Fall 2013 Yanjun Li CISC 2200 1 Trees Owner Jake Manager Brad Chef Carol Waitress Waiter Cook Helper Joyce Chris Max Len Jake s Pizza Shop Fall 2013 Yanjun Li CISC 2200 2
More informationADT Sorted List Operations
6 Lists Plus ADT Sorted List Operations Transformers MakeEmpty InsertItem DeleteItem Observers IsFull LengthIs RetrieveItem Iterators ResetList GetNextItem change state observe state process all class
More informationTree Data Structures CSC 221
Tree Data Structures CSC 221 Specialized Trees Binary Tree: A restriction of trees such that the maximum degree of a node is 2. Order of nodes is now relevant May have zero nodes (emtpy tree) Formal Definition:
More informationProgramming Assignment #4 Binary Trees in C++
Programming Assignment #4 Binary Trees in C++ Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2 nd edition, by Kernighan and Ritchie,
More information1 import java.io.*; 2 import java.util.*; class BTNode{ 6 7 private int nodeid; 8 private int data; 9 private int levelnum; 10 private BTNode
1 import java.io.*; 2 import java.util.*; 3 4 5 class BTNode{ 6 7 private int nodeid; 8 private int data; 9 private int levelnum; 10 private BTNode leftchildptr; 11 private BTNode rightchildptr; 12 13
More informationSCJ2013 Data Structure & Algorithms. Binary Search Tree. Nor Bahiah Hj Ahmad
SCJ2013 Data Structure & Algorithms Binary Search Tree Nor Bahiah Hj Ahmad Binary Search Tree A binary search tree has the following properties: For every node n in the tree Value of n is greater than
More information! Tree: set of nodes and directed edges. ! Parent: source node of directed edge. ! Child: terminal node of directed edge
Trees & Heaps Week 12 Gaddis: 20 Weiss: 21.1-3 CS 5301 Fall 2018 Jill Seaman!1 Tree: non-recursive definition! Tree: set of nodes and directed edges - root: one node is distinguished as the root - Every
More informationIf you took your exam home last time, I will still regrade it if you want.
Some Comments about HW2: 1. You should have used a generic node in your structure one that expected an Object, and not some other type. 2. Main is still too long for some people 3. braces in wrong place,
More informationTree Terminology. root. Edge. interior node. parent. path. subtree. child. leaf
Tree Terminology Binary Trees CS00: Trees interior node Node path root parent Edge subtree Degree? Depth/Level? A binary tree is a set T of nodes such that either T is empty, or T is partitioned into three
More informationWhat is a List? elements, with a linear relationship. first) has a unique predecessor, and. unique successor.
5 Linked Structures What is a List? A list is a homogeneous collection of elements, with a linear relationship between elements. That is, each list element (except the first) has a unique predecessor,
More informationCMPT 225. Binary Search Trees
CMPT 225 Binary Search Trees Trees A set of nodes with a single starting point called the root Each node is connected by an edge to some other node A tree is a connected graph There is a path to every
More informationChapter 11.!!!!Trees! 2011 Pearson Addison-Wesley. All rights reserved 11 A-1
Chapter 11!!!!Trees! 2011 Pearson Addison-Wesley. All rights reserved 11 A-1 2015-03-25 21:47:41 1/53 Chapter-11.pdf (#4) Terminology Definition of a general tree! A general tree T is a set of one or more
More informationChapter 11.!!!!Trees! 2011 Pearson Addison-Wesley. All rights reserved 11 A-1
Chapter 11!!!!Trees! 2011 Pearson Addison-Wesley. All rights reserved 11 A-1 2015-12-01 09:30:53 1/54 Chapter-11.pdf (#13) Terminology Definition of a general tree! A general tree T is a set of one or
More informationCSCE 110 PROGRAMMING FUNDAMENTALS
CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++ Prof. Amr Goneid AUC Part 15. Dictionaries (1): A Key Table Class Prof. amr Goneid, AUC 1 Dictionaries(1): A Key Table Class Prof. Amr Goneid, AUC 2 A Key Table
More informationDefinition of Stack. 5 Linked Structures. Stack ADT Operations. ADT Stack Operations. A stack is a LIFO last in, first out structure.
5 Linked Structures Definition of Stack Logical (or ADT) level: A stack is an ordered group of homogeneous items (elements), in which the removal and addition of stack items can take place only at the
More information1 #include <iostream> 2 using namespace std; 3 4 // implementing the dynamic List ADT using Linked List 5 6 class Node{ 7 8 private: 9 int data; 10
1 #include 2 using namespace std; 3 4 // implementing the dynamic List ADT using Linked List 5 6 class Node{ 7 8 private: 9 int data; 10 Node* nextnodeptr; 11 12 public: 13 Node(){} 14 15 void
More informationOutline. Part 6. Trees (1) Data RepresentaCon. Terminology 3/2/12. Represent hierarchical relationships B C D. Parent node
Outline Part 6. Trees (1) CS 200 lgorithms and Data Structures Terminology Binary Tree Basic operations Traversals of a Binary Tree Representations of a Binary Tree Implementations Binary Search Tree lgorithms
More informationCSCI-1200 Data Structures Spring 2018 Lecture 18 Trees, Part III
CSCI-1200 Data Structures Spring 2018 Lecture 18 Trees, Part III Review from Lecture 16 & 17 Overview of the ds set implementation begin, find, destroy_tree, insert In-order, pre-order, and post-order
More informationCSCI-1200 Data Structures Spring 2015 Lecture 18 Trees, Part I
CSCI-1200 Data Structures Spring 2015 Lecture 18 Trees, Part I Review from Lectures 17 Maps containing more complicated values. Example: index mapping words to the text line numbers on which they appear.
More informationCMP-338 Solutions Final Fall 2015 Version 1
Version 1 1. (20 Points) Multiple Choice: A. (2 Points) In a graph, all begin and end at the same vertex and do not pass through any other vertices more than once. a. Paths b. Simple paths c. Cycles d.
More informationObject Oriented Programming COP3330 / CGS5409
Object Oriented Programming COP3330 / CGS5409 Intro to Data Structures Vectors Linked Lists Queues Stacks C++ has some built-in methods of storing compound data in useful ways, like arrays and structs.
More informationExercise Solutions Chapter 1
Exercise Solutions Chapter 1 1. a. true; b. false; c. false; d. false; e. false; f. true; g. false; h. false 2. Precondition: The value of x must be nonnegative. Postcondition: If the value of x is nonnegative,
More informationChapter 17: Linked Lists
Chapter 17: Linked Lists 17.1 Introduction to the Linked List ADT Introduction to the Linked List ADT Linked list: set of data structures (nodes) that contain references to other data structures list head
More informationLinked List using a Sentinel
Linked List using a Sentinel Linked List.h / Linked List.h Using a sentinel for search Created by Enoch Hwang on 2/1/10. Copyright 2010 La Sierra University. All rights reserved. / #include
More informationTutorial Letter 102/1/2012 Programming: Data Structures
/1/2012 Tutorial Letter 102/1/2012 Programming: Data Structures COS2611 Semester 1 School of Computing This tutorial letter contains important information regarding the Exam. Bar code List of all tutorial
More information3 Trees: traversal and analysis of standard search trees
3 Trees: traversal and analysis of standard search trees Binary search trees Binary trees for storing sets of keys, such that the operations are supported: - find - insert - delete Search tree property:
More informationTerminology. The ADT Binary Tree. The ADT Binary Search Tree
Terminology The ADT Binary Tree The ADT Binary Search Tree 1 Terminology 3 A general tree A general tree T is a set of one or more nodes such that T is partitioned into disjoint subsets: o A single node
More informationClass and Function Templates
Class and Function 1 Motivation for One Way to Look at... Example: Queue of some type Foo C++ What can a parameter be used for? Instantiating a Template Usage of Compiler view of templates... Implementing
More informationCS200: Trees. Rosen Ch & 11.3 Prichard Ch. 11. CS200 - Trees
CS200: Trees Rosen Ch. 11.1 & 11.3 Prichard Ch. 11 1 Trees A A node has only one parent! Except the root: zero parents B C D E F Tree grows top to bottom! 2 Tree Terminology Node interior node path root
More informationMotivation for Templates. Class and Function Templates. One Way to Look at Templates...
Class and Function 1 Motivation for 2 Motivation for One Way to Look at... Example: Queue of some type Foo C++ What can a parameter be used for? Instantiating a Template Usage of Compiler view of templates...
More informationselectors, methodsinsert() andto_string() the depth of a tree and a membership function
Binary Search Trees 1 Sorting Numbers using a Tree a sorting algorithm using a tree of integer numbers 2 Header Files defining a node struct defining a tree class 3 Definition of Methods selectors, methodsinsert()
More informationChapter 17: Linked Lists
Chapter 17: Linked Lists Copyright 2009 Pearson Education, Inc. Copyright Publishing as Pearson 2009 Pearson Addison-Wesley Education, Inc. Publishing as Pearson Addison-Wesley 17.1 Introduction to the
More informationIterators. Professor Hugh C. Lauer CS-2303, System Programming Concepts
Iterators Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2 nd edition, by Kernighan and Ritchie, Absolute C++, by Walter Savitch,
More informationCSCI-1200 Data Structures Spring 2015 Lecture 20 Trees, Part III
CSCI-1200 Data Structures Spring 2015 Lecture 20 Trees, Part III Review from Lecture 18 & 19 Overview of the ds set implementation begin, find, destroy_tree, insert In-order, pre-order, and post-order
More informationCSCE 110 PROGRAMMING FUNDAMENTALS
CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++ Prof. Amr Goneid AUC Part 16. Linked Lists Prof. amr Goneid, AUC 1 Linked Lists Prof. amr Goneid, AUC 2 Linked Lists The Linked List Structure Some Linked List
More informationCSCI-1200 Data Structures Fall 2018 Lecture 19 Trees, Part III
CSCI-1200 Data Structures Fall 2018 Lecture 19 Trees, Part III Review from Lecture 17 & 18 Overview of the ds set implementation begin, find, destroy_tree, insert In-order, pre-order, and post-order traversal;
More informationCS302 - Data Structures using C++
CS302 - Data Structures using C++ Topic: Trees Kostas Alexis Trees List, stacks, and queues are linear in their organization of data. Items are one after another In this section, we organize data in a
More informationEECE.3220: Data Structures Spring 2017
EECE.3220: Data Structures Spring 2017 Lecture 14: Key Questions February 24, 2017 1. Describe the characteristics of an ADT to store a list. 2. What data members would be necessary for a static array-based
More informationTrees. 1 Introduction. 2 Trees. Prof. Stewart Weiss. CSci 235 Software Design and Analysis II Trees
1 Introduction are an abstraction that can be used to represent hierarchical relationships, such as genealogies, evolutionary trees, corporate structures, and le systems. Previous data types have been
More informationCS302 - Data Structures using C++
CS302 - Data Structures using C++ Topic: Linked Lists Implementation of the Bag ADT Kostas Alexis Consider we need to store data, we need to store data of certain type and we need to have a specific way
More informationJordan University of Science & Technology Department of Computer Science CS 211 Exam #1 (23/10/2010) -- Form A
Jordan University of Science & Technology Department of Computer Science CS 211 Exam #1 (23/10/2010) -- Form A Name: ID#: Section #: Day & Time: Instructor: Answer all questions as indicated. Closed book/closed
More informationOutline. Preliminaries. Binary Trees Binary Search Trees. What is Tree? Implementation of Trees using C++ Tree traversals and applications
Trees 1 Outline Preliminaries What is Tree? Implementation of Trees using C++ Tree traversals and applications Binary Trees Binary Search Trees Structure and operations Analysis 2 What is a Tree? A tree
More informationChapter 12: Searching: Binary Trees and Hash Tables. Exercises 12.1
Chapter 12: Searching: Binary Trees and Hash Tables Exercises 12.1 1. 4, 6 2. 4, 1, 2, 3 3. 4, 6, 5 4. 4, 1, 0 5. 4, 6, 7, 8 6. template linearsearch(elementtype x[], ElementType
More informationSample Questions for Midterm Exam 2
Sample Questions for Midterm Exam 2 The following are meant to give you some examples of questions that might be asked on the second midterm exam. The sample exam questions do not represent the length
More informationLab 2: ADT Design & Implementation
Lab 2: ADT Design & Implementation By Dr. Yingwu Zhu, Seattle University 1. Goals In this lab, you are required to use a dynamic array to design and implement an ADT SortedList that maintains a sorted
More informationCMSC 341 Lecture 10 Binary Search Trees
CMSC 341 Lecture 10 Binary Search Trees John Park Based on slides from previous iterations of this course Review: Tree Traversals 2 Traversal Preorder, Inorder, Postorder H X M A K B E N Y L G W UMBC CMSC
More informationTrees 11/15/16. Chapter 11. Terminology. Terminology. Terminology. Terminology. Terminology
Chapter 11 Trees Definition of a general tree A general tree T is a set of one or more nodes such that T is partitioned into disjoint subsets: A single node r, the root Sets that are general trees, called
More informationData Structures Fakhar lodhi Chapter 5: Trees
Chapter 5 Trees Introduction Linked-lists are essentially used to store and organize data where the relationship among data is linear or one-dimensional (a circular structure can be considered as a special
More informationLecture 7. Binary Trees
Lecture 7. Binary Trees Instructor: 罗国杰 gluo@pku.edu.cn School of EECS Peking University Outline Preliminaries of trees Basic concepts Example: trees in a file system Binary trees Full, complete, extended
More informationmoretosearch = (location < length);
Chapter 3(6th edition): Exercises 1,2,3,9,10,11,12,18-28 (due: 25/10/2017) Solution: 1. (a) Boolean IsThere(ItemType item) Function: Determines if item is in the list. Precondition: List has been initialized.
More information4. Trees. 4.1 Preliminaries. 4.2 Binary trees. 4.3 Binary search trees. 4.4 AVL trees. 4.5 Splay trees. 4.6 B-trees. 4. Trees
4. Trees 4.1 Preliminaries 4.2 Binary trees 4.3 Binary search trees 4.4 AVL trees 4.5 Splay trees 4.6 B-trees Malek Mouhoub, CS340 Fall 2002 1 4.1 Preliminaries A Root B C D E F G Height=3 Leaves H I J
More informationDefault Route de la configuración en el EIGRP
Default Route de la configuración en el EIGRP Contenido Introducción prerrequisitos Requisitos Componentes Utilizados Configurar Diagrama de la red del r1 del r2 R3 Method-1 usando la ruta predeterminado
More information! Tree: set of nodes and directed edges. ! Parent: source node of directed edge. ! Child: terminal node of directed edge
Trees (& Heaps) Week 12 Gaddis: 20 Weiss: 21.1-3 CS 5301 Spring 2015 Jill Seaman 1 Tree: non-recursive definition! Tree: set of nodes and directed edges - root: one node is distinguished as the root -
More informationCSCI-1200 Data Structures Fall 2017 Lecture 17 Trees, Part I
Review from Lecture 16 CSCI-1200 Data Structures Fall 2017 Lecture 17 Trees, Part I Maps containing more complicated values. Example: index mapping words to the text line numbers on which they appear.
More informationCSCI-1200 Data Structures Fall 2014 Lecture 18 Trees, Part III
Review from Lecture 17 CSCI-1200 Data Structures Fall 2014 Lecture 18 Trees, Part III Overview of the ds set implementation begin, find, destroy_tree, insert In-order, pre-order, and post-order traversal;
More informationData Structures (INE2011)
Data Structures (INE2011) Electronics and Communication Engineering Hanyang University Haewoon Nam Lecture 4 1 Stacks Insertion and deletion are made at one end () Last input first output (LIFO) Inserting
More informationDataStruct 7. Trees. Michael T. Goodrich, et. al, Data Structures and Algorithms in C++, 2 nd Ed., John Wiley & Sons, Inc., 2011.
2013-2 DataStruct 7. Trees Michael T. Goodrich, et. al, Data Structures and Algorithms in C++, 2 nd Ed., John Wiley & Sons, Inc., 2011. November 6, 2013 Advanced Networking Technology Lab. (YU-ANTL) Dept.
More informationCpSc212 Goddard Notes Chapter 10. Linked Lists
CpSc212 Goddard Notes Chapter 10 Linked Lists 10.1 Links and Pointers The linked list is not an ADT in its own right; rather it is a way of implementing many data structures. It is designed to replace
More informationAlso, recursive methods are usually declared private, and require a public non-recursive method to initiate them.
Laboratory 11: Expression Trees and Binary Search Trees Introduction Trees are nonlinear objects that link nodes together in a hierarchical fashion. Each node contains a reference to the data object, a
More informationChapter 17. Linked Data Structures. Copyright 2016 Pearson, Inc. All rights reserved.
Chapter 17 Linked Data Structures Copyright 2016 Pearson, Inc. All rights reserved. Learning Objectives Nodes and Linked Lists Creating, searching Linked List Applications Stacks, queues, sets, hash tables
More informationMore Group HW. #ifndef Stackh #define Stackh. #include <cstdlib> using namespace std;
More Group HW The following code is contained in the file ex1stck.h. Fill in the blanks with the C++ statement(s) that will correctly finish the method. Each blank may be filled in with more than one statement.
More informationContainers and the Standard Template Library (STL)
Containers and the Standard Template Library (STL) Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2 nd edition, by Kernighan and
More informationObject oriented programming
Exercises 12 Version 1.0, 9 May, 2017 Table of Contents 1. Virtual destructor and example problems...................................... 1 1.1. Virtual destructor.......................................................
More informationB-Trees. nodes with many children a type node a class for B-trees. an elaborate example the insertion algorithm removing elements
B-Trees 1 B-Trees nodes with many children a type node a class for B-trees 2 manipulating a B-tree an elaborate example the insertion algorithm removing elements MCS 360 Lecture 35 Introduction to Data
More informationPropedéutico de Programación
Propedéutico de Programación Coordinación de Ciencias Computacionales Semana 4, Primera Parte Dra Pilar Gómez Gil Versión 1 230608 http://cccinaoepmx/~pgomez/cursos/programacion/ Estructuras de Datos Abstractas
More informationCMPSCI 187: Programming With Data Structures. Lecture #26: Binary Search Trees David Mix Barrington 9 November 2012
CMPSCI 187: Programming With Data Structures Lecture #26: Binary Search Trees David Mix Barrington 9 November 2012 Binary Search Trees Why Binary Search Trees? Trees, Binary Trees and Vocabulary The BST
More information3 Trees: traversal and analysis of standard search trees. Summer Term 2010
3 Trees: traversal and analysis of standard search trees Summer Term 2010 Robert Elsässer Binary Search Trees Binary trees for storing sets of keys (in the internal nodes of trees), such that the operations
More informationBilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü
Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü 1 C LECTURE 12 ++ Data Structures 2 Data Structures 17.1
More informationHomework 5. Yuji Shimojo CMSC 330. Instructor: Prof. Reginald Y. Haseltine
Homework 5 Yuji Shimojo CMSC 330 Instructor: Prof. Reginald Y. Haseltine July 13, 2013 Question 1 Consider the following Java definition of a mutable string class. class MutableString private char[] chars
More informationHeaps. A complete binary tree can be easily stored in an array - place the root in position 1 (for convenience)
Binary heap data structure Heaps A binary heap is a special kind of binary tree - has a restricted structure (must be complete) - has an ordering property (parent value is smaller than child values) Used
More information1 #include <iostream> 2 #include <stdlib.h> //srand, rand 3 #include <time.h>//clock_t, clock, CLOCKS_PER_SEC 4 using namespace std; 5 6 //
1 #include 2 #include //srand, rand 3 #include //clock_t, clock, CLOCKS_PER_SEC 4 using namespace std; 5 6 // implementing hash tables as an array of linked lists 7 8 class
More informationUNIVERSITY OF MASSACHUSETTS LOWELL Department of Electrical and Computer Engineering. Program 8 EECE.3220 Data Structures Fall 2017
UNIVERSITY OF MASSACHUSETTS LOWELL Department of Electrical and Computer Engineering Program 8 EECE.3220 Data Structures Fall 2017 Binary Search Trees and Class Templates Word Counter Application The object
More informationThe Composite State Visitor Pattern
Design Patterns for Data Structures Chapter 8 he Composite State Visitor Pattern Design Patterns for Data Structures Chapter 8 he Composite State Binary ree with the Visitor Pattern BireeCSV Design Patterns
More informationCSCI-1200 Data Structures Fall 2017 Lecture 18 Trees, Part II
CSCI-1200 Data Structures Fall 2017 Lecture 18 Trees, Part II Review from Lecture 17 and Lab 9 Binary Trees, Binary Search Trees, & Balanced Trees STL set container class (like STL map, but without the
More informationIntroduction to C++ Friends, Nesting, Static Members, and Templates Topic #7
Introduction to C++ Friends, Nesting, Static Members, and Templates Topic #7 CS202 7-1 Relationship of Objects Friends, Nesting Static Members Template Functions and Classes Reusing Code Template Specializations
More informationCSCI-1200 Data Structures Spring 2018 Lecture 16 Trees, Part I
CSCI-1200 Data Structures Spring 2018 Lecture 16 Trees, Part I Review from Lecture 15 Maps containing more complicated values. Example: index mapping words to the text line numbers on which they appear.
More informationCpt S 122 Data Structures. Course Review FINAL. Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University
Cpt S 122 Data Structures Course Review FINAL Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Final When: Wednesday (12/12) 1:00 pm -3:00 pm Where: In Class
More informationExample Final Questions Instructions
Example Final Questions Instructions This exam paper contains a set of sample final exam questions. It is for practice purposes only. You ll most likely need longer than three hours to answer all the questions.
More informationCMSC 341. Binary Search Trees CMSC 341 BST
CMSC 341 Binary Search Trees CMSC 341 BST Announcements Homework #3 dues Thursday (10/5/2017) Exam #1 next Thursday (10/12/2017) CMSC 341 BST A Generic Tree CMSC 341 BST Binary Tree CMSC 341 BST The Binary
More information國立清華大學電機工程學系. Outline
國立清華大學電機工程學系 2410 ata Structure hapter 5 Trees (Part I) Outline Introduction inary Trees inary Tree Traversal dditional inary Tree Operations Threaded inary Trees Heaps ch5.1-2 Genealogical harts no inbreeding
More information1 Short Answer (7 Points Each)
1 Short Answer (7 Points Each) 1. Given the following function, what operations will need to be overloaded in the class T for this code to compile? template T square(t n) { return n * n; } The
More informationMotivation for Templates
Motivation for You want both: a list of Location objects a list of MazeMonster objects 1 How can you accomplish this by writing one LinkedList class? state all the ways you can think of doing this state
More informationC Data Structures Stacks. Stack. push Adds a new node to the top of the stack
1 12 C Data Structures 12.5 Stacks 2 Stack New nodes can be added and removed only at the top Similar to a pile of dishes Last-in, first-out (LIFO) Bottom of stack indicated by a link member to NULL Constrained
More informationData Structures and Algorithms
Data Structures and Algorithms First Semester 2017/2018 Linked Lists Eng. Anis Nazer Linked List ADT Is a list of nodes Each node has: data (can be any thing, int, char, Person, Point, day,...) link to
More information1 Short Answer (8 Points Each)
1 Short Answer (8 Points Each) 1. State the definitions of Big-O, Big-Ω, and Big-Θ. Big-O (Upper Bound): A function f(x) is O(g(x)) if and only if there exist a constant C and a constant k such that, for
More information1 #include <iostream> 2 #include <stdlib.h> //srand, rand 3 #include <time.h>//clock_t, clock, CLOCKS_PER_SEC 4 using namespace std; 5 6 //
1 #include 2 #include //srand, rand 3 #include //clock_t, clock, CLOCKS_PER_SEC 4 using namespace std; 5 6 // implementing hash table as an array of linked lists 7 // and
More information