Lecture 9. Binary Trees (3)
|
|
- Dora Allison
- 7 years ago
- Views:
Transcription
1 Lecture 9. Binary Trees (3) Instructor: 罗国杰 School of EECS Peking University
2 Outline n Sets and Maps n Priority queues (heaps) 2
3 Sets n The set is an ordered container that does not allow duplicates q Traversal of the set n n objects: iterator, const_iterator methods: begin, end, size, empty, q Other operations n insert, erase, find, 3
4 Sets // O(log N) insert pair<iterator,bool> insert (const Object & x); // O(1) insert if hint is accurate; otherwise O(log N) pair<iterator,bool> insert ( iterator hint, const Object & x); // this code segment might be faster set <int> s; for (int i = 0; i < ; i++) s.insert(s.end(), i); 4
5 Sets int erase(const Object & x); iterator erase(iterator itr); iterator erase(iterator start, iterator end); iterator find(const Object & x) const; // in the following code, the set s has size 1 class CaseInsensitiveCompare { public: bool islessthan(const string & lhs, const string & rhs) const { return stricmp(lhs.c_cstr(), rhs.c_str()) < 0;} } set<string,caseinsensitivecompare> s; s.insert(hello ); s.insert( HELLO ); cout << The size is: << s.size() << endl; 5
6 Maps n A map is used to store a collection of ordered entries that consists of keys and their values n The map behaves like a set with pairs, whose comparison refers only to the key n Basic operations (like the set) q iterator itr n (*itr) is of type pair<keytype,valuetype> q begin, end, size, empty; insert, remove, find; n Extra operation q ValueType & operator[] (const KeyType & key); 6
7 Maps: Access Values map<string,double> salaries; salaries[ Pat ] = ; cout << salaries[ Pat ] << endl; cout << salaries[ Jan ] << endl; map<string,double>::const_iterator itr; itr = salaries.find( Chris ); if (itr == salaries.end()) cout << Not an employee of this company! << endl; else cout << itr->second << endl; 7
8 Implementation of Set and Map n STL requires that set and map support the basic insert, erase, and find in O(log N) worst-case n The implementation is a balanced BST q Typically AVL tree is not used q Instead, top-down red-black trees (later) n How to support the iterator classes under these constraints? q Internally, the iterator maintains a pointer to the current node q How to efficiently advance to the next node? 8
9 Implementation of Set and Map n How to efficiently advance an iterator to the next node? n Solution 1 q Each iterator store an array containing the set items as its data q This does not work for efficient erase and insert n Solution 2 q Have the iterator maintain a stack storing the nodes on the path to the current node q The iterator is large, and the iteration node is clumsy 9
10 Implementation of Set and Map n How to efficiently advance an iterator to the next node? n Solution 3 n n Have each node store an extra link to its parent Extra memory is always required; the iteration is clumsy n Solution 4 n n Have each node maintain extra links one to the next smaller, and one to the next larger node It takes spaces, but the iteration is very simple q 10
11 Implementation of Set and Map n How to efficiently advance an iterator to the next node? n Solution 5 q Maintain the extra links only for nodes that have NULL left or right links (threaded tree) q It is used in many STL implementations 11
12 Threaded Binary Trees n Reuse the lchild, rchild pointers for efficient access to predecessor and successor lchild ltag data rtag rchild q ltag = 0: lchild is the left child q ltag = 1: lchild is the predecessor q rtag = 0: rchild is the right child q rtag = 1: rchild is the successor 12
13 An Inorder Threaded Binary Tree 13
14 Priority Queue: Motivation n Have you ever been jammed by a huge job while you are waiting for just one-page printout? n This is a typical situation for a simple first-in first-out (FIFO) queue n Can there be a smarter printer (multi-user computing)? 14
15 Simple Implementations n There are multiple possibilities for the implementation. n Simple linked list (solution 1) q insert in front O(1) q delete minimum O(N) n Sorted linked list (solution 2) q insert O(N) q delete minimum O(1) 15
16 Simple Implementations n Binary search tree (solution 3) q O (log N) on average for insertion/deletion n Binary heap (solution in this lecture) q O (1) for finding the minimum q O (log N) for insert but O(1) on average q O(N) worst-case to build a priority queue 16
17 Priority Queue: Model Function level DeleteMin (H) Priority Queue H Insert (H) A Logical level B C D E F G H I J Implementation level A B C D E F G H I J
18 Binary Heap (Heap) n Structure property q A heap is a complete binary tree n that is completely filled, except at the bottom level, which is filled from left to right q A complete binary tree of height (depth) h has between 2 h and 2 h+1 1 nodes q The height of a complete binary tree = log N 18
19 Binary Heap A B C D E F G H I J n A complete binary tree can be represented in an array without using pointers 19
20 A B C D E F G H I n The root is at pos. 1 q (reserve position 0 for a sentinel - MinData). 1 B A 2 C D E F G J n For an element at position i, q its left child is at position 2i; q its it right child at 2i +1; q its parent is at i/2 H I J
21 Binary Heap n Heap Order Property q The value at any node should be smaller than all of its descendants (guarantee that the node with the minimum value is at the root)
22 Binary Heap A Binary Search Tree a heap Note the difference in node ordering!! 22
23 Binary Heap // definition struct HeapStruct { }; int Capacity; // maximum size int Size; // actual size ElementType *Elements; typedef struct HeapStruct *PriorityQueue; 23
24 Binary Heap // some operations PriorityQueue Initialize (int MaxElements); void Destroy (PriorityQueue H); void MakeEmpty (PriorityQueue H); void Insert (ElementType X, PriorityQueue H); ElementType DeleteMin (PriorityQueue H); ElementType FindMin (PriorityQueue H); int IsEmpty (PriorityQueue H); int IsFull (PriorityQueue H); 24
25 Binary Heap: Initialize PriorityQueue Initialize (int MaxElements) { PriorityQueue H; if (MaxElements < MinPQSize) Error ("Priority queue size is too small"); H = malloc (sizeof (struct HeapStruct)); if (H == NULL) FatalError ("Out of space!!!"); 25
26 Binary Heap: Initialize } // Allocate the array plus one extra for sentinel H->Elements = malloc ((MaxElements + 1) * sizeof (ElementType)); if (H->Elements == NULL) FatalError ("Out of space!!!"); H->Capacity = MaxElements; H->Size = 0; H->Elements [0] = - ; return H; 26
27 Binary Heap: Insert n Attempt to insert 14 q Create a hole, and bubble the hole up
28 Binary Heap: Insert n The remaining two steps to insert
29 Binary Heap: Insert n To insert an element X, q Create a hole in the next available location. q If X can be placed in the hole without violating heap order, insertion is complete. q Otherwise bubble the hole up towards the root. q Continue this process until X can be placed in the hole (a percolating up process). n Worst case running time is O (log N) - the new element is percolating up all the way to the root. 29
30 Binary Heap: Insert // H->Element [0] is a sentinel void Insert (ElementType X, PriorityQueue H) { int i; if (IsFull (H)) { Error ("Priority queue is full"); return; } for (i = ++H->Size; H->Elements [i / 2] > X; i /= 2) H->Elements [i] = H->Elements [i / 2]; H->Elements [i] = X; } 30
31 Binary Heap: Insert H->Elements[0]
32 Binary Heap: DeleteMin n Creation of the hole at the root
33 Binary Heap: DeleteMin n Next two steps in DeleteMin
34 Binary Heap: DeleteMin n Last step in DeleteMin
35 Binary Heap: DeleteMin n The element at the root (position 1) is to be removed, and a hole is created. n If X is smaller than the child(ren), job is done. n Otherwise slide the smaller of the hole s children into the hole, thus pushing the hole down one level. 35
36 Binary Heap: DeleteMin n Repeat the previous step until X can be placed in the hole (percolating down). n Some node may have only one child (be careful when coding!). n Worst case running time is O(log N). n On average, the hole is percolated almost to the bottom of the heap, so the average running time is O(log N) again. 36
37 Binary Heap: DeleteMin ElementType DeleteMin (PriorityQueue H) { int i, Child; ElementType MinElement, LastElement; if (IsEmpty (H)) { } Error ("Priority queue is empty"); return H->Elements [0]; MinElement = H->Elements [1]; LastElement = H->Elements [H->Size--]; 37
38 Binary Heap: DeleteMin for (i = 1; i * 2 <= H->Size; i = Child) { // Find smaller child Child = i * 2; if ( Child!= H->Size && H->Elements[Child + 1] < H->Elements[Child] ) Child++; // Percolate one level if (LastElement > H->Elements [Child]) H->Elements [i] = H->Elements [Child]; else break; } H->Elements [i] = LastElement; return MinElement; } 38
39 Binary Heap: Other Operations n There is no way to find any particular key without a linear scan through the entire heap. n However, if we know the position, we can access the key immediately. 39
40 Binary Heap: Other Operations n DecreaseKey (P,, H) q Lower the key value at position P by. q Fix the heap order by percolating up. q (Advance the priority of a job.) n Delete (P, H) q Remove the node at position P. q DecreaseKey (P,, H) and DeleteMin (H) 40
41 Binary Heap: BuildHeap n BuildHeap (H) q Given N unordered keys, how to build a heap? q Solution 1: n n n N successive appends at the end of the array each takes O(1) average and O(log N) worst-case time. total runtime is O(N) average but O(N log N) worst-case q Solution 2: n PercolateDown (i), for i = N/2 to 1. 41
42 Binary Heap: BuildHeap n Initial heap
43 Binary Heap: BuildHeap n After PercolateDown(7) q dashed line = 2 comparisons (compare with the smaller child)
44 Binary Heap: BuildHeap n After PercolateDown(6)
45 Binary Heap: BuildHeap n After PercolateDown(5)
46 Binary Heap: BuildHeap n After PercolateDown(4)
47 Binary Heap: BuildHeap n After PercolateDown(3)
48 Binary Heap: BuildHeap n After PercolateDown(2)
49 Binary Heap: BuildHeap n After PercolateDown(1)
50 BuildHeap: Complexity Analysis n For a heap with n nodes q the depth d = log 2 n q there are 2 i nodes with depth i n The number of PercolateDown operations q About a half nodes at depth d q About a quarter nodes at depth d-1, which percolate down at most one level q At every upper level, the max distance to move is increased by 1, but the number of nodes to move is also decreased by 1 q Time complexity Σ i=1 logn (i-1)n/2 i = O(n) 50
51 Applications of Priority Queues n Find the kth smallest elements q It requires k DeleteMin operations. q O(N) to create the heap. q O(log N) for each DeleteMin. q Total running time is O(N + k log N). q If k = O(N / log N), running time is O(N). q For large value of k, running time is O(k log N). 51
52 Applications of Priority Queues n Discrete Event Simulation q e.g., bank waiting line q Given n n n n n n customers interarrival distribution number of tellers (server) arriving customer joins the shortest queue customers are served on FIFO within the queue no queue switching service time (transaction time) distribution 52
53 Applications of Priority Queues n Statistics required q average waiting time q average banking time (waiting time + service time) q maximum waiting time, banking time, queue length n Generate service time of each customer n Generate arrival time of each customer (arrival time of current customer + time interval for the next customer to come) n One customer queue for each teller 53
54 Applications of Priority Queues n Event queue with 2 types of events (in event occurrence sequence) q customer arrival q complete of service of one customer n At customer arrival event q generate service time for this customer q insert the customer into the end of the shortest teller queue 54
55 Applications of Priority Queues q generate interarrival time and then compute arrival time of the next customer q using the arrival time of the next customer, generate an arrival event and insert it into the event queue (not necessarily the last in the queue) n At service completion event q remove the customer from the teller queue q compute relevant statistics for this customer 55
56 Applications of Priority Queues q if this teller queue is not empty, serve the next customer in the queue q compute the service completion time (current time + service time) q generate service completion event, and insert it into the event queue 56
57 Applications of Priority Queues k servers Customer arriving? Average queue length? Average waiting time... Customer departing 57
58 Applications of Priority Queues k servers? Average queue length? Average waiting time... Departure time = Arrival time + Waiting time + Service time Customer arriving Customer departing Arrive 09:15 9:19 9:23 9:24 9:30 9:31 Serve (min)
59 Applications of Priority Queues Approach Using a heap Arrive 09:15 9:19 9:23 9:24 9:30 9:31 Serve (min) server available? N, go into the queue FIFO Teller Queue Check the next arrival Y, compute the departure time & insert the departure event Insert arrival event DeleteMin if arrival event Event Queue (Heap) 59
60 Applications of Priority Queues Approach Using a heap Arrive 09:15 9:19 9:23 9:24 9:30 9:31 Serve (min) DeleteMin if departure event Queue Empty? Y, go to next DeleteMin N, remove one from the queue, compute the departure FIFO Teller Queue time & insert as a departure event Event Queue (Heap) 60
61 Applications of Priority Queues n Given N customers, how many events altogether? n What is the running (CPU) time for each event? n What is the overall complexity? 61
62 Recommended Readings n Weiss, DS & Algo. Analysis in C++ (3 rd ed.) q Section 4.8 Sets and Maps in the STL q Section Priority Queues (Heaps) 62
63 Acknowledgments n 张铭 王腾蛟 赵海燕, 数据结构与算法, 高教出版社,2008 年 n Weiss, Data structures and algorithm analysis in C++, (3 rd ed.), 人民邮电出版社, q Lecture notes, COMP1200, HKBU n
Cpt S 223. School of EECS, WSU
Priority Queues (Heaps) 1 Motivation Queues are a standard mechanism for ordering tasks on a first-come, first-served basis However, some tasks may be more important or timely than others (higher priority)
More informationBinary Heaps. CSE 373 Data Structures
Binary Heaps CSE Data Structures Readings Chapter Section. Binary Heaps BST implementation of a Priority Queue Worst case (degenerate tree) FindMin, DeleteMin and Insert (k) are all O(n) Best case (completely
More information6 March 2007 1. Array Implementation of Binary Trees
Heaps CSE 0 Winter 00 March 00 1 Array Implementation of Binary Trees Each node v is stored at index i defined as follows: If v is the root, i = 1 The left child of v is in position i The right child of
More information1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++
Answer the following 1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++ 2) Which data structure is needed to convert infix notations to postfix notations? Stack 3) The
More informationFrom Last Time: Remove (Delete) Operation
CSE 32 Lecture : More on Search Trees Today s Topics: Lazy Operations Run Time Analysis of Binary Search Tree Operations Balanced Search Trees AVL Trees and Rotations Covered in Chapter of the text From
More informationBinary Heaps * * * * * * * / / \ / \ / \ / \ / \ * * * * * * * * * * * / / \ / \ / / \ / \ * * * * * * * * * *
Binary Heaps A binary heap is another data structure. It implements a priority queue. Priority Queue has the following operations: isempty add (with priority) remove (highest priority) peek (at highest
More informationSorting revisited. Build the binary search tree: O(n^2) Traverse the binary tree: O(n) Total: O(n^2) + O(n) = O(n^2)
Sorting revisited How did we use a binary search tree to sort an array of elements? Tree Sort Algorithm Given: An array of elements to sort 1. Build a binary search tree out of the elements 2. Traverse
More informationEE2204 DATA STRUCTURES AND ALGORITHM (Common to EEE, EIE & ICE)
EE2204 DATA STRUCTURES AND ALGORITHM (Common to EEE, EIE & ICE) UNIT I LINEAR STRUCTURES Abstract Data Types (ADT) List ADT array-based implementation linked list implementation cursor-based linked lists
More informationCS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team
CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team Lecture Summary In this lecture, we learned about the ADT Priority Queue. A
More informationQuestions 1 through 25 are worth 2 points each. Choose one best answer for each.
Questions 1 through 25 are worth 2 points each. Choose one best answer for each. 1. For the singly linked list implementation of the queue, where are the enqueues and dequeues performed? c a. Enqueue in
More informationBinary Heap Algorithms
CS Data Structures and Algorithms Lecture Slides Wednesday, April 5, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks CHAPPELLG@member.ams.org 2005 2009 Glenn G. Chappell
More informationA binary search tree or BST is a binary tree that is either empty or in which the data element of each node has a key, and:
Binary Search Trees 1 The general binary tree shown in the previous chapter is not terribly useful in practice. The chief use of binary trees is for providing rapid access to data (indexing, if you will)
More informationOrdered Lists and Binary Trees
Data Structures and Algorithms Ordered Lists and Binary Trees Chris Brooks Department of Computer Science University of San Francisco Department of Computer Science University of San Francisco p.1/62 6-0:
More informationPES Institute of Technology-BSC QUESTION BANK
PES Institute of Technology-BSC Faculty: Mrs. R.Bharathi CS35: Data Structures Using C QUESTION BANK UNIT I -BASIC CONCEPTS 1. What is an ADT? Briefly explain the categories that classify the functions
More informationTREE BASIC TERMINOLOGIES
TREE Trees are very flexible, versatile and powerful non-liner data structure that can be used to represent data items possessing hierarchical relationship between the grand father and his children and
More informationA binary heap is a complete binary tree, where each node has a higher priority than its children. This is called heap-order property
CmSc 250 Intro to Algorithms Chapter 6. Transform and Conquer Binary Heaps 1. Definition A binary heap is a complete binary tree, where each node has a higher priority than its children. This is called
More informationB-Trees. Algorithms and data structures for external memory as opposed to the main memory B-Trees. B -trees
B-Trees Algorithms and data structures for external memory as opposed to the main memory B-Trees Previous Lectures Height balanced binary search trees: AVL trees, red-black trees. Multiway search trees:
More informationBinary Search Trees. Data in each node. Larger than the data in its left child Smaller than the data in its right child
Binary Search Trees Data in each node Larger than the data in its left child Smaller than the data in its right child FIGURE 11-6 Arbitrary binary tree FIGURE 11-7 Binary search tree Data Structures Using
More informationBinary Search Trees. A Generic Tree. Binary Trees. Nodes in a binary search tree ( B-S-T) are of the form. P parent. Key. Satellite data L R
Binary Search Trees A Generic Tree Nodes in a binary search tree ( B-S-T) are of the form P parent Key A Satellite data L R B C D E F G H I J The B-S-T has a root node which is the only node whose parent
More informationPrevious Lectures. B-Trees. External storage. Two types of memory. B-trees. Main principles
B-Trees Algorithms and data structures for external memory as opposed to the main memory B-Trees Previous Lectures Height balanced binary search trees: AVL trees, red-black trees. Multiway search trees:
More informationOutline BST Operations Worst case Average case Balancing AVL Red-black B-trees. Binary Search Trees. Lecturer: Georgy Gimel farb
Binary Search Trees Lecturer: Georgy Gimel farb COMPSCI 220 Algorithms and Data Structures 1 / 27 1 Properties of Binary Search Trees 2 Basic BST operations The worst-case time complexity of BST operations
More informationCSE 326, Data Structures. Sample Final Exam. Problem Max Points Score 1 14 (2x7) 2 18 (3x6) 3 4 4 7 5 9 6 16 7 8 8 4 9 8 10 4 Total 92.
Name: Email ID: CSE 326, Data Structures Section: Sample Final Exam Instructions: The exam is closed book, closed notes. Unless otherwise stated, N denotes the number of elements in the data structure
More informationAlgorithms and Data Structures Written Exam Proposed SOLUTION
Algorithms and Data Structures Written Exam Proposed SOLUTION 2005-01-07 from 09:00 to 13:00 Allowed tools: A standard calculator. Grading criteria: You can get at most 30 points. For an E, 15 points are
More informationConverting a Number from Decimal to Binary
Converting a Number from Decimal to Binary Convert nonnegative integer in decimal format (base 10) into equivalent binary number (base 2) Rightmost bit of x Remainder of x after division by two Recursive
More informationSequences in the C++ STL
CS 311 Data Structures and Algorithms Lecture Slides Wednesday, November 4, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks CHAPPELLG@member.ams.org 2005 2009 Glenn
More informationQuiz 4 Solutions EECS 211: FUNDAMENTALS OF COMPUTER PROGRAMMING II. 1 Q u i z 4 S o l u t i o n s
Quiz 4 Solutions Q1: What value does function mystery return when called with a value of 4? int mystery ( int number ) { if ( number
More information1. The memory address of the first element of an array is called A. floor address B. foundation addressc. first address D.
1. The memory address of the first element of an array is called A. floor address B. foundation addressc. first address D. base address 2. The memory address of fifth element of an array can be calculated
More informationAnalysis of a Search Algorithm
CSE 326 Lecture 4: Lists and Stacks 1. Agfgd 2. Dgsdsfd 3. Hdffdsf 4. Sdfgsfdg 5. Tefsdgass We will review: Analysis: Searching a sorted array (from last time) List ADT: Insert, Delete, Find, First, Kth,
More informationData Structure and Algorithm I Midterm Examination 120 points Time: 9:10am-12:10pm (180 minutes), Friday, November 12, 2010
Data Structure and Algorithm I Midterm Examination 120 points Time: 9:10am-12:10pm (180 minutes), Friday, November 12, 2010 Problem 1. In each of the following question, please specify if the statement
More informationKrishna Institute of Engineering & Technology, Ghaziabad Department of Computer Application MCA-213 : DATA STRUCTURES USING C
Tutorial#1 Q 1:- Explain the terms data, elementary item, entity, primary key, domain, attribute and information? Also give examples in support of your answer? Q 2:- What is a Data Type? Differentiate
More informationHeaps & Priority Queues in the C++ STL 2-3 Trees
Heaps & Priority Queues in the C++ STL 2-3 Trees CS 3 Data Structures and Algorithms Lecture Slides Friday, April 7, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks
More informationData Structures and Algorithms
Data Structures and Algorithms CS245-2016S-06 Binary Search Trees David Galles Department of Computer Science University of San Francisco 06-0: Ordered List ADT Operations: Insert an element in the list
More informationLecture Notes on Binary Search Trees
Lecture Notes on Binary Search Trees 15-122: Principles of Imperative Computation Frank Pfenning Lecture 17 March 17, 2010 1 Introduction In the previous two lectures we have seen how to exploit the structure
More informationLinked Lists: Implementation Sequences in the C++ STL
Linked Lists: Implementation Sequences in the C++ STL continued CS 311 Data Structures and Algorithms Lecture Slides Wednesday, April 1, 2009 Glenn G. Chappell Department of Computer Science University
More informationLinked Lists, Stacks, Queues, Deques. It s time for a chainge!
Linked Lists, Stacks, Queues, Deques It s time for a chainge! Learning Goals After this unit, you should be able to... Differentiate an abstraction from an implementation. Define and give examples of problems
More informationWhy Use Binary Trees?
Binary Search Trees Why Use Binary Trees? Searches are an important application. What other searches have we considered? brute force search (with array or linked list) O(N) binarysearch with a pre-sorted
More informationData Structures. Jaehyun Park. CS 97SI Stanford University. June 29, 2015
Data Structures Jaehyun Park CS 97SI Stanford University June 29, 2015 Typical Quarter at Stanford void quarter() { while(true) { // no break :( task x = GetNextTask(tasks); process(x); // new tasks may
More informationHome Page. Data Structures. Title Page. Page 1 of 24. Go Back. Full Screen. Close. Quit
Data Structures Page 1 of 24 A.1. Arrays (Vectors) n-element vector start address + ielementsize 0 +1 +2 +3 +4... +n-1 start address continuous memory block static, if size is known at compile time dynamic,
More informationCommon Data Structures
Data Structures 1 Common Data Structures Arrays (single and multiple dimensional) Linked Lists Stacks Queues Trees Graphs You should already be familiar with arrays, so they will not be discussed. Trees
More informationNode-Based Structures Linked Lists: Implementation
Linked Lists: Implementation CS 311 Data Structures and Algorithms Lecture Slides Monday, March 30, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks CHAPPELLG@member.ams.org
More informationData Structures Fibonacci Heaps, Amortized Analysis
Chapter 4 Data Structures Fibonacci Heaps, Amortized Analysis Algorithm Theory WS 2012/13 Fabian Kuhn Fibonacci Heaps Lacy merge variant of binomial heaps: Do not merge trees as long as possible Structure:
More informationCpt S 223. School of EECS, WSU
The Shortest Path Problem 1 Shortest-Path Algorithms Find the shortest path from point A to point B Shortest in time, distance, cost, Numerous applications Map navigation Flight itineraries Circuit wiring
More informationSymbol Tables. Introduction
Symbol Tables Introduction A compiler needs to collect and use information about the names appearing in the source program. This information is entered into a data structure called a symbol table. The
More informationroot node level: internal node edge leaf node CS@VT Data Structures & Algorithms 2000-2009 McQuain
inary Trees 1 A binary tree is either empty, or it consists of a node called the root together with two binary trees called the left subtree and the right subtree of the root, which are disjoint from each
More information5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.
1. The advantage of.. is that they solve the problem if sequential storage representation. But disadvantage in that is they are sequential lists. [A] Lists [B] Linked Lists [A] Trees [A] Queues 2. The
More informationOutput: 12 18 30 72 90 87. struct treenode{ int data; struct treenode *left, *right; } struct treenode *tree_ptr;
50 20 70 10 30 69 90 14 35 68 85 98 16 22 60 34 (c) Execute the algorithm shown below using the tree shown above. Show the exact output produced by the algorithm. Assume that the initial call is: prob3(root)
More informationExam study sheet for CS2711. List of topics
Exam study sheet for CS2711 Here is the list of topics you need to know for the final exam. For each data structure listed below, make sure you can do the following: 1. Give an example of this data structure
More information10CS35: Data Structures Using C
CS35: Data Structures Using C QUESTION BANK REVIEW OF STRUCTURES AND POINTERS, INTRODUCTION TO SPECIAL FEATURES OF C OBJECTIVE: Learn : Usage of structures, unions - a conventional tool for handling a
More informationHow To Create A Tree From A Tree In Runtime (For A Tree)
Binary Search Trees < 6 2 > = 1 4 8 9 Binary Search Trees 1 Binary Search Trees A binary search tree is a binary tree storing keyvalue entries at its internal nodes and satisfying the following property:
More information- Easy to insert & delete in O(1) time - Don t need to estimate total memory needed. - Hard to search in less than O(n) time
Skip Lists CMSC 420 Linked Lists Benefits & Drawbacks Benefits: - Easy to insert & delete in O(1) time - Don t need to estimate total memory needed Drawbacks: - Hard to search in less than O(n) time (binary
More informationDATA STRUCTURES USING C
DATA STRUCTURES USING C QUESTION BANK UNIT I 1. Define data. 2. Define Entity. 3. Define information. 4. Define Array. 5. Define data structure. 6. Give any two applications of data structures. 7. Give
More informationSample Questions Csci 1112 A. Bellaachia
Sample Questions Csci 1112 A. Bellaachia Important Series : o S( N) 1 2 N N i N(1 N) / 2 i 1 o Sum of squares: N 2 N( N 1)(2N 1) N i for large N i 1 6 o Sum of exponents: N k 1 k N i for large N and k
More informationInternational Journal of Software and Web Sciences (IJSWS) www.iasir.net
International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research) ISSN (Print): 2279-0063 ISSN (Online): 2279-0071 International
More informationBig O and Limits Abstract Data Types Data Structure Grand Tour. http://gcc.gnu.org/onlinedocs/libstdc++/images/pbds_different_underlying_dss_1.
Big O and Limits Abstract Data Types Data Structure Grand Tour http://gcc.gnu.org/onlinedocs/libstdc++/images/pbds_different_underlying_dss_1.png Consider the limit lim n f ( n) g ( n ) What does it
More informationCS711008Z Algorithm Design and Analysis
CS711008Z Algorithm Design and Analysis Lecture 7 Binary heap, binomial heap, and Fibonacci heap 1 Dongbo Bu Institute of Computing Technology Chinese Academy of Sciences, Beijing, China 1 The slides were
More informationOperations: search;; min;; max;; predecessor;; successor. Time O(h) with h height of the tree (more on later).
Binary search tree Operations: search;; min;; max;; predecessor;; successor. Time O(h) with h height of the tree (more on later). Data strutcure fields usually include for a given node x, the following
More informationLecture 6: Binary Search Trees CSCI 700 - Algorithms I. Andrew Rosenberg
Lecture 6: Binary Search Trees CSCI 700 - Algorithms I Andrew Rosenberg Last Time Linear Time Sorting Counting Sort Radix Sort Bucket Sort Today Binary Search Trees Data Structures Data structure is a
More informationCours de C++ Utilisations des conteneurs
Cours de C++ Utilisations des conteneurs Cécile Braunstein cecile.braunstein@lip6.fr 1 / 18 Introduction Containers - Why? Help to solve messy problems Provide useful function and data structure Consistency
More informationRotation Operation for Binary Search Trees Idea:
Rotation Operation for Binary Search Trees Idea: Change a few pointers at a particular place in the tree so that one subtree becomes less deep in exchange for another one becoming deeper. A sequence of
More informationBinary Search Trees CMPSC 122
Binary Search Trees CMPSC 122 Note: This notes packet has significant overlap with the first set of trees notes I do in CMPSC 360, but goes into much greater depth on turning BSTs into pseudocode than
More informationAnalysis of Algorithms I: Binary Search Trees
Analysis of Algorithms I: Binary Search Trees Xi Chen Columbia University Hash table: A data structure that maintains a subset of keys from a universe set U = {0, 1,..., p 1} and supports all three dictionary
More informationMAX = 5 Current = 0 'This will declare an array with 5 elements. Inserting a Value onto the Stack (Push) -----------------------------------------
=============================================================================================================================== DATA STRUCTURE PSEUDO-CODE EXAMPLES (c) Mubashir N. Mir - www.mubashirnabi.com
More informationData Structures and Algorithm Analysis (CSC317) Intro/Review of Data Structures Focus on dynamic sets
Data Structures and Algorithm Analysis (CSC317) Intro/Review of Data Structures Focus on dynamic sets We ve been talking a lot about efficiency in computing and run time. But thus far mostly ignoring data
More informationChapter 14 The Binary Search Tree
Chapter 14 The Binary Search Tree In Chapter 5 we discussed the binary search algorithm, which depends on a sorted vector. Although the binary search, being in O(lg(n)), is very efficient, inserting a
More informationCpt S 223. School of EECS, WSU
Abstract Data Types 1 Topics Abstract Data Types (ADTs) Some basic ADTs: Lists Stacks Queues 2 Primitive Data Type vs. Abstract Data Types Primitive DT: ADT: programmer progra ammer Interface (API) e.g.,
More informationEE602 Algorithms GEOMETRIC INTERSECTION CHAPTER 27
EE602 Algorithms GEOMETRIC INTERSECTION CHAPTER 27 The Problem Given a set of N objects, do any two intersect? Objects could be lines, rectangles, circles, polygons, or other geometric objects Simple to
More informationIntroduction to Data Structures and Algorithms
Introduction to Data Structures and Algorithms Chapter: Elementary Data Structures(1) Lehrstuhl Informatik 7 (Prof. Dr.-Ing. Reinhard German) Martensstraße 3, 91058 Erlangen Overview on simple data structures
More informationCSE 326: Data Structures B-Trees and B+ Trees
Announcements (4//08) CSE 26: Data Structures B-Trees and B+ Trees Brian Curless Spring 2008 Midterm on Friday Special office hour: 4:-5: Thursday in Jaech Gallery (6 th floor of CSE building) This is
More informationCompSci-61B, Data Structures Final Exam
Your Name: CompSci-61B, Data Structures Final Exam Your 8-digit Student ID: Your CS61B Class Account Login: This is a final test for mastery of the material covered in our labs, lectures, and readings.
More informationUnit 4.3 - Storage Structures 1. Storage Structures. Unit 4.3
Storage Structures Unit 4.3 Unit 4.3 - Storage Structures 1 The Physical Store Storage Capacity Medium Transfer Rate Seek Time Main Memory 800 MB/s 500 MB Instant Hard Drive 10 MB/s 120 GB 10 ms CD-ROM
More informationECE 250 Data Structures and Algorithms MIDTERM EXAMINATION 2008-10-23/5:15-6:45 REC-200, EVI-350, RCH-106, HH-139
ECE 250 Data Structures and Algorithms MIDTERM EXAMINATION 2008-10-23/5:15-6:45 REC-200, EVI-350, RCH-106, HH-139 Instructions: No aides. Turn off all electronic media and store them under your desk. If
More informationData Structures, Practice Homework 3, with Solutions (not to be handed in)
Data Structures, Practice Homework 3, with Solutions (not to be handed in) 1. Carrano, 4th edition, Chapter 9, Exercise 1: What is the order of each of the following tasks in the worst case? (a) Computing
More informationLecture Notes on Binary Search Trees
Lecture Notes on Binary Search Trees 15-122: Principles of Imperative Computation Frank Pfenning André Platzer Lecture 17 October 23, 2014 1 Introduction In this lecture, we will continue considering associative
More informationPersistent Binary Search Trees
Persistent Binary Search Trees Datastructures, UvA. May 30, 2008 0440949, Andreas van Cranenburgh Abstract A persistent binary tree allows access to all previous versions of the tree. This paper presents
More informationData Structure [Question Bank]
Unit I (Analysis of Algorithms) 1. What are algorithms and how they are useful? 2. Describe the factor on best algorithms depends on? 3. Differentiate: Correct & Incorrect Algorithms? 4. Write short note:
More informationBig Data and Scripting. Part 4: Memory Hierarchies
1, Big Data and Scripting Part 4: Memory Hierarchies 2, Model and Definitions memory size: M machine words total storage (on disk) of N elements (N is very large) disk size unlimited (for our considerations)
More informationClass Overview. CSE 326: Data Structures. Goals. Goals. Data Structures. Goals. Introduction
Class Overview CSE 326: Data Structures Introduction Introduction to many of the basic data structures used in computer software Understand the data structures Analyze the algorithms that use them Know
More informationAlgorithms Chapter 12 Binary Search Trees
Algorithms Chapter 1 Binary Search Trees Outline Assistant Professor: Ching Chi Lin 林 清 池 助 理 教 授 chingchi.lin@gmail.com Department of Computer Science and Engineering National Taiwan Ocean University
More informationData Structure with C
Subject: Data Structure with C Topic : Tree Tree A tree is a set of nodes that either:is empty or has a designated node, called the root, from which hierarchically descend zero or more subtrees, which
More informationBinary Trees and Huffman Encoding Binary Search Trees
Binary Trees and Huffman Encoding Binary Search Trees Computer Science E119 Harvard Extension School Fall 2012 David G. Sullivan, Ph.D. Motivation: Maintaining a Sorted Collection of Data A data dictionary
More informationDATABASE DESIGN - 1DL400
DATABASE DESIGN - 1DL400 Spring 2015 A course on modern database systems!! http://www.it.uu.se/research/group/udbl/kurser/dbii_vt15/ Kjell Orsborn! Uppsala Database Laboratory! Department of Information
More informationAlgorithms and Data Structures
Algorithms and Data Structures Part 2: Data Structures PD Dr. rer. nat. habil. Ralf-Peter Mundani Computation in Engineering (CiE) Summer Term 2016 Overview general linked lists stacks queues trees 2 2
More informationLearning Outcomes. COMP202 Complexity of Algorithms. Binary Search Trees and Other Search Trees
Learning Outcomes COMP202 Complexity of Algorithms Binary Search Trees and Other Search Trees [See relevant sections in chapters 2 and 3 in Goodrich and Tamassia.] At the conclusion of this set of lecture
More informationData Structures. Level 6 C30151. www.fetac.ie. Module Descriptor
The Further Education and Training Awards Council (FETAC) was set up as a statutory body on 11 June 2001 by the Minister for Education and Science. Under the Qualifications (Education & Training) Act,
More informationData storage Tree indexes
Data storage Tree indexes Rasmus Pagh February 7 lecture 1 Access paths For many database queries and updates, only a small fraction of the data needs to be accessed. Extreme examples are looking or updating
More informationData Structures and Data Manipulation
Data Structures and Data Manipulation What the Specification Says: Explain how static data structures may be used to implement dynamic data structures; Describe algorithms for the insertion, retrieval
More informationCPSC 211 Data Structures & Implementations (c) Texas A&M University [ 221] edge. parent
CPSC 211 Data Structures & Implementations (c) Texas A&M University [ 221] Trees Important terminology: edge root node parent Some uses of trees: child leaf model arithmetic expressions and other expressions
More informationBinary Search Trees (BST)
Binary Search Trees (BST) 1. Hierarchical data structure with a single reference to node 2. Each node has at most two child nodes (a left and a right child) 3. Nodes are organized by the Binary Search
More informationAlgorithms and Data Structures
Algorithms and Data Structures CMPSC 465 LECTURES 20-21 Priority Queues and Binary Heaps Adam Smith S. Raskhodnikova and A. Smith. Based on slides by C. Leiserson and E. Demaine. 1 Trees Rooted Tree: collection
More informationSorting Algorithms. Nelson Padua-Perez Bill Pugh. Department of Computer Science University of Maryland, College Park
Sorting Algorithms Nelson Padua-Perez Bill Pugh Department of Computer Science University of Maryland, College Park Overview Comparison sort Bubble sort Selection sort Tree sort Heap sort Quick sort Merge
More informationCourse: Programming II - Abstract Data Types. The ADT Stack. A stack. The ADT Stack and Recursion Slide Number 1
Definition Course: Programming II - Abstract Data Types The ADT Stack The ADT Stack is a linear sequence of an arbitrary number of items, together with access procedures. The access procedures permit insertions
More informationA binary search tree is a binary tree with a special property called the BST-property, which is given as follows:
Chapter 12: Binary Search Trees A binary search tree is a binary tree with a special property called the BST-property, which is given as follows: For all nodes x and y, if y belongs to the left subtree
More informationCourse: Programming II - Abstract Data Types. The ADT Queue. (Bobby, Joe, Sue, Ellen) Add(Ellen) Delete( ) The ADT Queues Slide Number 1
Definition Course: Programming II - Abstract Data Types The ADT Queue The ADT Queue is a linear sequence of an arbitrary number of items, together with access procedures. The access procedures permit addition
More informationAbstract Data Type. EECS 281: Data Structures and Algorithms. The Foundation: Data Structures and Abstract Data Types
EECS 281: Data Structures and Algorithms The Foundation: Data Structures and Abstract Data Types Computer science is the science of abstraction. Abstract Data Type Abstraction of a data structure on that
More informationClass Notes CS 3137. 1 Creating and Using a Huffman Code. Ref: Weiss, page 433
Class Notes CS 3137 1 Creating and Using a Huffman Code. Ref: Weiss, page 433 1. FIXED LENGTH CODES: Codes are used to transmit characters over data links. You are probably aware of the ASCII code, a fixed-length
More informationCSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues. Linda Shapiro Spring 2016
CSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues Linda Shapiro Registration We have 180 students registered and others who want to get in. If you re thinking of dropping
More informationData Structures Using C++
Data Structures Using C++ 1.1 Introduction Data structure is an implementation of an abstract data type having its own set of data elements along with functions to perform operations on that data. Arrays
More informationThe ADT Binary Search Tree
The ADT Binary Search Tree The Binary Search Tree is a particular type of binary tree that enables easy searching for specific items. Definition The ADT Binary Search Tree is a binary tree which has an
More informationData Structures and Algorithms Lists
Data Structures and Algorithms Lists Chris Brooks Department of Computer Science University of San Francisco Department of Computer Science University of San Francisco p.1/19 5-0: Abstract Data Types An
More informationLINKED DATA STRUCTURES
LINKED DATA STRUCTURES 1 Linked Lists A linked list is a structure in which objects refer to the same kind of object, and where: the objects, called nodes, are linked in a linear sequence. we keep a reference
More information