An Introduction to Trees
|
|
- Alberta Flowers
- 6 years ago
- Views:
Transcription
1 An Introduction to Trees Alice E. Fischer Spring 2017 Alice E. Fischer An Introduction to Trees... 1/34 Spring / 34
2 Outline 1 Trees the Abstraction Definitions 2 Expression Trees 3 Binary Search Trees 4 Recursion and Recursive Thinking. C++ Implementation of a Binary Search Tree Alice E. Fischer An Introduction to Trees... 2/34 Spring / 34
3 Trees the Abstraction Definitions Definitions In mathematics, a tree is an acyclic undirected graph.... and a rooted tree is a tree where one node is called the root. In computing, a tree is an abstract data type that has nodes and edges that connect nodes. Each node (except the root) has exactly one predecessor. Each node is either a leaf, or it has 1 to n successors. For binary trees, n=2. Alice E. Fischer An Introduction to Trees... 3/34 Spring / 34
4 Trees the Abstraction Definitions Examples a. A typical tree with 9 nodes. b. A sparse tree with 9 nodes.. c. A full tree with 9 nodes. d. A complete tree. Alice E. Fischer An Introduction to Trees... 4/34 Spring / 34
5 Trees the Abstraction Definitions Properties of Trees Size of a tree: the number of nodes in the tree. Height of a tree: the length of the path from the root to the most distant leaf. Depth of a node N: the length of the path from N to the root. A tree can be sparse, bushy, full, or complete. A tree can be balanced or unbalanced. A tree can be represented in more than one way. Alice E. Fischer An Introduction to Trees... 5/34 Spring / 34
6 Trees the Abstraction Definitions Tree Height Tree height = 3 Tree height = 4 Depth of orange node = 2 Height of orange node =1 Depth of blue node = 4 Height of blue node = 0 Alice E. Fischer An Introduction to Trees... 6/34 Spring / 34
7 Trees the Abstraction Definitions Full and Complete A full tree with 9 nodes. A complete tree. Alice E. Fischer An Introduction to Trees... 7/34 Spring / 34
8 Trees the Abstraction Definitions Degenerate Trees An unbalanced tree. A degenerate tree. Alice E. Fischer An Introduction to Trees... 8/34 Spring / 34
9 Trees the Abstraction Definitions TreeNodes Left: A simple binary tree uses nodes with three members: a data value and two links A Leaf Node 17 'a' An Interior Node 17 \0 0 0 Right: A Huffman Code tree has two data fields and two pointers. Alice E. Fischer An Introduction to Trees... 9/34 Spring / 34
10 Trees the Abstraction Definitions Tree Applications Trees provide an efficient way to index large amounts of data. A tree is the natural representation for arithmetic expressions. A heap (a specialized tree) is the best implementation of a priority queue. In a search tree, the nodes data members are used to index the data. Balanced trees make searching faster. A trie is great for a spelling-checker or for data compression. Alice E. Fischer An Introduction to Trees... 10/34 Spring / 34
11 Expression Trees Expression Trees A compiler analyzes the expressions in a program and builds an expression tree for each one. In C++, we use infix notation and apply precedence and associativity to determine the meaning. Parentheses can be used to override the default order of evaluation. a + b * c - d a / (b + c) - d x = a - (b * b) - 2*(a + c) Alice E. Fischer An Introduction to Trees... 11/34 Spring / 34
12 Expression Trees Parse Trees A parse tree is built when a compiler translates an arithmetic expression. Parentheses, precedence and associativity are used to determine the shape of the tree. The tree is used by the optimizer and by the code generator a + b * c - d -- a / (b + c) - d -- + d / d a * a + b c b c Alice E. Fischer An Introduction to Trees... 12/34 Spring / 34
13 Expression Trees Prefix and Postfix Notation Some languages do not use infix notation for expressions. The same expression can be written without parentheses in either prefix or postfix form. Infix: the operator is written between its two operands. Prefix: the operator is written before its operand(s). Postfix: the operator is written after its operand(s). All three ways of writing the expression map into the same parse tree. Infix: a + b * c - d a / (b + c) - d Prefix: - + a * b c d - / a + b c d Postfix: a b c * + d - a b c + / d - Alice E. Fischer An Introduction to Trees... 13/34 Spring / 34
14 Expression Trees Traversal Order Prefix: void Tree::traverse( Node* t ){ if (t == nullptr) return; t->getdata().print( ); traverse( t->left ); traverse( t->right ); } Infix: void Tree::traverse( Node* t ){ if (t == nullptr) return; traverse( t->left ); t->getdata().print( ); traverse( t->right ); } Postfix: void Tree::traverse( Node* t ){ if (t == nullptr) return; traverse( t->left ); traverse( t->right ); t->getdata().print( ); } Alice E. Fischer An Introduction to Trees... 14/34 Spring / 34
15 Expression Trees Evaluation of any format gives the same answer. Evaluate an expression a=25, b=3, c=2, d=7. infix order: a / (b + c) - d == 25 / (3 + 2) - 7 == (25 / 5) - 7 = -2 Prefix order : - / a + b c d == - / == - / == == - 2 Postfix order: a b c + / d - == / 7 - == 25 5 / 7 - == == -2 Alice E. Fischer An Introduction to Trees... 15/34 Spring / 34
16 Expression Trees Evaluation of any format gives the same answer. Evaluate a different expression with a=25, b=3, c=2, d=7. Infix: a + b * c - d == * 2-7 == == 31-7 == 24 Prefix: - + a * b c d == * == == == 24 Postfix: a b c * + d - == * == == == 24 Alice E. Fischer An Introduction to Trees... 16/34 Spring / 34
17 Expression Trees Use two Stacks to evaluate an infix expression We assume the operators are all binary operators, with two operands. To evaluate an expression such as x * z % 3 1 Initialize the operand stack to empty and the operator stack to an end-marker. 2 Read the next token. If it is an operand, put it on the operand stack. 3 If it is an operator, compare its precedence to the operator at the top of the operator-stack. See details on next slide. 4 Repeat steps (2, 3, and 4) until you come to the end of the expression. The value on the top of the operand stack is the answer. Alice E. Fischer An Introduction to Trees... 17/34 Spring / 34
18 Expression Trees Handling an operator If the new op has higher precedence than the old op, push it onto the operator-stack. Else pop the operand stack twice, into o-right and o-left, Do the operation at the top of the operation stack using the two operands, and push the result onto the operand stack. If you can t pop the operand stack twice, there is an error. Now repeat step 3, comparing the current operator to the new top of the operator stack. Alice E. Fischer An Introduction to Trees... 18/34 Spring / 34
19 Expression Trees Use one Stack to evaluate a postfix expression We assume the operators are all binary operators, with two operands. To evaluate an expression such as x z * 3 % - 1 Put an end marker on the stack. 2 Read the next token. If it is an operand, put it on the stack. 3 If it is an operator, pop the stack twice, into op-right and op-left. If you can t pop the stack twice, there is an error. 4 Do the operation, push the answer back on the stack. 5 Repeat (2,3,4) until you come to the end of the expression. The value on the top of the stack is the answer. (Remove it) 6 If the stack-top is your end marker, the expression is correct. If it is anything else, the expression has an error. Alice E. Fischer An Introduction to Trees... 19/34 Spring / 34
20 Expression Trees Use a Queue to evaluate a prefix expression We assume the operators are all binary operators, with two operands. Here is a terribly slow but funny way to evaluate a prefix expression such as - + x 5 % * 2 z 3 WHILE the queue has more than one element DO Inspect the front element. If it is an operator followed by its two operands, evaluate it, append the resulting value to the rear of the queue AND remove operator and arguments from the front of the queue. If it is an operator not followed by all its arguments, remove it from the front of the queue and copy it to the rear. Otherwise it is an operand. Remove it from the front and copy it to the rear. Alice E. Fischer An Introduction to Trees... 20/34 Spring / 34
21 Binary Search Trees Binary Search Trees Definition Recursive print and destructor Search Insertion Deletion C++ implementation Alice E. Fischer An Introduction to Trees... 21/34 Spring / 34
22 Binary Search Trees Definition: Binary Search Tree A Binary Search Tree is a binary tree with the following properties; The root may be NULL or it may point at a node. The first node inserted becomes the root of the tree and remains root until deleted. Every node has zero, one, or two successors. Each tree node has a value. That value, or part of it, is the key field. Given any node, n, all values on its left subtree are less than the value of n, and all values on its right subtree are greater than the value of n. We will work with a version in which duplicate key values are not allowed. Alice E. Fischer An Introduction to Trees... 22/34 Spring / 34
23 Binary Search Trees Definition: Binary Search Tree root Alice E. Fischer An Introduction to Trees... 23/34 Spring / 34
24 Binary Search Trees Example: Building a Binary Search Tree We insert the numbers 17, 29, 14, and 26 into an empty tree. All nodes are diagrammed in the simplified form. root 17 root root 17 root Alice E. Fischer An Introduction to Trees... 24/34 Spring / 34
25 Binary Search Trees Example: Building a Binary Search Tree We continue by inserting 5, 16, 15, 10, 20, and 25. root 17 root root Alice E. Fischer An Introduction to Trees... 25/34 Spring / 34
26 Recursion and Recursive Thinking. Recursion Recursion can replace loops. Some languages do not even support loops. Loops take less time and space. Some but not all recursions (tail recursions) can be replaced by loops. Alice E. Fischer An Introduction to Trees... 26/34 Spring / 34
27 Recursion and Recursive Thinking. Recursion Looping but Different A loop must have: a definite end-test you must make progress on every iteration A recursion must have: a definite end-test you must make progress on every recursive call (simplify the problem) The differences? Looping uses a loop variable to track the progress and end the loop. Recursion makes a new function call, with a new stack frame at every recursive step, and deallocates the stack frames upon return. Alice E. Fischer An Introduction to Trees... 27/34 Spring / 34
28 Recursion and Recursive Thinking. Recursive Thinking Iterative Thinking: add up the numbers in a list. initialize the sum start at the beginning of the list and process ( add in)m one element at a time until you reach the end. Go to the next list element after each processing step. Recursive Thinking Remember the first element on the list. Add up the rest Then add the result to the first element. Alice E. Fischer An Introduction to Trees... 28/34 Spring / 34
29 Recursion and Recursive Thinking. Array Traversal We normally use a loop to traverse (visit every element of) an array. ar[0] ar[1] ar[2] ar[3] ar[4] ar[5] ar[6] ar[7] ar[8] dust scum prize socks dishes filth dirt sink tub Sequential search of an array: scan = 0; while ( true ){ get the contents of the ar[scan]. if contents equals "prize", break ++scan; } Alice E. Fischer An Introduction to Trees... 29/34 Spring / 34
30 Recursion and Recursive Thinking. Recursive Thinking Iterative Thinking: Sequential Search Start at the beginning of the list and test one element at a time. Leave the loop if you find the wanted element or if you reach the end. Otherwise, go on to the next item in the list.. Recursive Thinking: Sequential Search Return if the list is null. Return if the current thing on the list is the wanted element. Otherwise, search the rest of the list recursively, starting with the next element Alice E. Fischer An Introduction to Trees... 30/34 Spring / 34
31 Recursion and Recursive Thinking. Recursive Thinking We normally use recursion to traverse (visit every element of) a tree. This is a binary search tree. The nodes were inserted in the order shown at the top. dust scum prize socks dishes filth dirt sink tub root dust dishes scum dirt filth prize socks sink tub Alice E. Fischer An Introduction to Trees... 31/34 Spring / 34
32 Recursion and Recursive Thinking. Recursive Thinking: A Tree Search Call the search function with the root of the tree as the parameter. Return if the parameter is null. Return the value in the current node if it is the wanted element. Otherwise, search the left side of the tree recursively. Then search the right side of the tree recursively. Alice E. Fischer An Introduction to Trees... 32/34 Spring / 34
33 Recursion and Recursive Thinking. Search a Tree We normally use recursion to traverse (visit every element of) a tree. find( current, goal ){ result = null; if current == null } then return null. if current s contents equals goal, return current. else result = find (current.leftson, goal) } if result!= null return result. else return find(current.rightson, goal) Alice E. Fischer An Introduction to Trees... 33/34 Spring / 34
34 Recursion and Recursive Thinking. C++ Implementation of a Binary Search Tree C++ Implementation Overview The Tree class has two private helper classes inside it. class Node stores the data and links to other nodes. struct Finger is used when searching the tree, and to position pointers for insertion and deletion. Tree has a public interface that supports construction, deletion, printing, insertion, deletion, and searching. Several of the functions in the public interface are implemented by private recursive functions. The rest of the public functions use a loop, not recursion, because they follow a linear access path down the tree. If written recursively, these functions would be tail recursions. Alice E. Fischer An Introduction to Trees... 34/34 Spring / 34
Postfix (and prefix) notation
Postfix (and prefix) notation Also called reverse Polish reversed form of notation devised by mathematician named Jan Łukasiewicz (so really lü-kä-sha-vech notation) Infix notation is: operand operator
More informationFormal Languages and Automata Theory, SS Project (due Week 14)
Formal Languages and Automata Theory, SS 2018. Project (due Week 14) 1 Preliminaries The objective is to implement an algorithm for the evaluation of an arithmetic expression. As input, we have a string
More informationStacks, Queues and Hierarchical Collections
Programming III Stacks, Queues and Hierarchical Collections 2501ICT Nathan Contents Linked Data Structures Revisited Stacks Queues Trees Binary Trees Generic Trees Implementations 2 Copyright 2002- by
More informationStacks, Queues and Hierarchical Collections. 2501ICT Logan
Stacks, Queues and Hierarchical Collections 2501ICT Logan Contents Linked Data Structures Revisited Stacks Queues Trees Binary Trees Generic Trees Implementations 2 Queues and Stacks Queues and Stacks
More informationCSI33 Data Structures
Outline Department of Mathematics and Computer Science Bronx Community College November 13, 2017 Outline Outline 1 C++ Supplement.1: Trees Outline C++ Supplement.1: Trees 1 C++ Supplement.1: Trees Uses
More information12 Abstract Data Types
12 Abstract Data Types 12.1 Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: Define the concept of an abstract data type (ADT). Define
More informationLinear Data Structure
Linear Data Structure Definition A data structure is said to be linear if its elements form a sequence or a linear list. Examples: Array Linked List Stacks Queues Operations on linear Data Structures Traversal
More informationStack Applications. Lecture 27 Sections Robb T. Koether. Hampden-Sydney College. Wed, Mar 29, 2017
Stack Applications Lecture 27 Sections 18.7-18.8 Robb T. Koether Hampden-Sydney College Wed, Mar 29, 2017 Robb T. Koether Hampden-Sydney College) Stack Applications Wed, Mar 29, 2017 1 / 27 1 Function
More informationTREES. Trees - Introduction
TREES Chapter 6 Trees - Introduction All previous data organizations we've studied are linear each element can have only one predecessor and successor Accessing all elements in a linear sequence is O(n)
More informationStacks. stacks of dishes or trays in a cafeteria. Last In First Out discipline (LIFO)
Outline stacks stack ADT method signatures array stack implementation linked stack implementation stack applications infix, prefix, and postfix expressions 1 Stacks stacks of dishes or trays in a cafeteria
More informationData Structures and Algorithms
Data Structures and Algorithms Alice E. Fischer Lecture 6: Stacks 2018 Alice E. Fischer Data Structures L5, Stacks... 1/29 Lecture 6: Stacks 2018 1 / 29 Outline 1 Stacks C++ Template Class Functions 2
More informationRecursive Data Structures and Grammars
Recursive Data Structures and Grammars Themes Recursive Description of Data Structures Grammars and Parsing Recursive Definitions of Properties of Data Structures Recursive Algorithms for Manipulating
More informationMarch 20/2003 Jayakanth Srinivasan,
Definition : A simple graph G = (V, E) consists of V, a nonempty set of vertices, and E, a set of unordered pairs of distinct elements of V called edges. Definition : In a multigraph G = (V, E) two or
More informationBinary Trees and Binary Search Trees
Binary Trees and Binary Search Trees Learning Goals After this unit, you should be able to... Determine if a given tree is an instance of a particular type (e.g. binary, and later heap, etc.) Describe
More informationStacks. Chapter 5. Copyright 2012 by Pearson Education, Inc. All rights reserved
Stacks Chapter 5 Contents Specifications of the ADT Stack Using a Stack to Process Algebraic Expressions A Problem Solved: Checking for Balanced Delimiters in an Infix Algebraic Expression A Problem Solved:
More informationMULTIMEDIA COLLEGE JALAN GURNEY KIRI KUALA LUMPUR
STUDENT IDENTIFICATION NO MULTIMEDIA COLLEGE JALAN GURNEY KIRI 54100 KUALA LUMPUR FIFTH SEMESTER FINAL EXAMINATION, 2014/2015 SESSION PSD2023 ALGORITHM & DATA STRUCTURE DSEW-E-F-2/13 25 MAY 2015 9.00 AM
More informationFORTH SEMESTER DIPLOMA EXAMINATION IN ENGINEERING/ TECHNOLIGY- OCTOBER, 2012 DATA STRUCTURE
TED (10)-3071 Reg. No.. (REVISION-2010) Signature. FORTH SEMESTER DIPLOMA EXAMINATION IN ENGINEERING/ TECHNOLIGY- OCTOBER, 2012 DATA STRUCTURE (Common to CT and IF) [Time: 3 hours (Maximum marks: 100)
More informationMarch 13/2003 Jayakanth Srinivasan,
Statement Effort MergeSort(A, lower_bound, upper_bound) begin T(n) if (lower_bound < upper_bound) Θ(1) mid = (lower_bound + upper_bound)/ 2 Θ(1) MergeSort(A, lower_bound, mid) T(n/2) MergeSort(A, mid+1,
More informationMID TERM MEGA FILE SOLVED BY VU HELPER Which one of the following statement is NOT correct.
MID TERM MEGA FILE SOLVED BY VU HELPER Which one of the following statement is NOT correct. In linked list the elements are necessarily to be contiguous In linked list the elements may locate at far positions
More informationEC8393FUNDAMENTALS OF DATA STRUCTURES IN C Unit 3
UNIT 3 LINEAR DATA STRUCTURES 1. Define Data Structures Data Structures is defined as the way of organizing all data items that consider not only the elements stored but also stores the relationship between
More informationTree: non-recursive definition. Trees, Binary Search Trees, and Heaps. Tree: recursive definition. Tree: example.
Trees, Binary Search Trees, and Heaps CS 5301 Fall 2013 Jill Seaman Tree: non-recursive definition Tree: set of nodes and directed edges - root: one node is distinguished as the root - Every node (except
More informationTree traversals and binary trees
Tree traversals and binary trees Comp Sci 1575 Data Structures Valgrind Execute valgrind followed by any flags you might want, and then your typical way to launch at the command line in Linux. Assuming
More informationMIDTERM EXAMINATION Spring 2010 CS301- Data Structures
MIDTERM EXAMINATION Spring 2010 CS301- Data Structures Question No: 1 Which one of the following statement is NOT correct. In linked list the elements are necessarily to be contiguous In linked list the
More informationCS301 - Data Structures Glossary By
CS301 - Data Structures Glossary By Abstract Data Type : A set of data values and associated operations that are precisely specified independent of any particular implementation. Also known as ADT Algorithm
More informationLecture Notes 16 - Trees CSS 501 Data Structures and Object-Oriented Programming Professor Clark F. Olson
Lecture Notes 16 - Trees CSS 501 Data Structures and Object-Oriented Programming Professor Clark F. Olson Reading: Carrano, Chapter 15 Introduction to trees The data structures we have seen so far to implement
More informationR10 SET - 1. Code No: R II B. Tech I Semester, Supplementary Examinations, May
www.jwjobs.net R10 SET - 1 II B. Tech I Semester, Supplementary Examinations, May - 2012 (Com. to CSE, IT, ECC ) Time: 3 hours Max Marks: 75 *******-****** 1. a) Which of the given options provides the
More informationTrees! Ellen Walker! CPSC 201 Data Structures! Hiram College!
Trees! Ellen Walker! CPSC 201 Data Structures! Hiram College! ADTʼs Weʼve Studied! Position-oriented ADT! List! Stack! Queue! Value-oriented ADT! Sorted list! All of these are linear! One previous item;
More informationDelhi Noida Bhopal Hyderabad Jaipur Lucknow Indore Pune Bhubaneswar Kolkata Patna Web: Ph:
Serial : 1PT_CS_A+C_Programming & Data Structure_230918 Delhi Noida Bhopal Hyderabad Jaipur Lucknow Indore Pune Bhubaneswar Kolkata Patna Web: E-mail: info@madeeasy.in Ph: 011-45124612 CLASS TEST 2018-19
More informationLecture 4 Stack and Queue
Lecture 4 Stack and Queue Bo Tang @ SUSTech, Spring 2018 Our Roadmap Stack Queue Stack vs. Queue 2 Stack A stack is a sequence in which: Items can be added and removed only at one end (the top) You can
More information09 STACK APPLICATION DATA STRUCTURES AND ALGORITHMS REVERSE POLISH NOTATION
DATA STRUCTURES AND ALGORITHMS 09 STACK APPLICATION REVERSE POLISH NOTATION IMRAN IHSAN ASSISTANT PROFESSOR, AIR UNIVERSITY, ISLAMABAD WWW.IMRANIHSAN.COM LECTURES ADAPTED FROM: DANIEL KANE, NEIL RHODES
More informationCS W3134: Data Structures in Java
CS W3134: Data Structures in Java Lecture #10: Stacks, queues, linked lists 10/7/04 Janak J Parekh HW#2 questions? Administrivia Finish queues Stack/queue example Agenda 1 Circular queue: miscellany Having
More informationTopic Binary Trees (Non-Linear Data Structures)
Topic Binary Trees (Non-Linear Data Structures) CIS210 1 Linear Data Structures Arrays Linked lists Skip lists Self-organizing lists CIS210 2 Non-Linear Data Structures Hierarchical representation? Trees
More informationFORTH SEMESTER DIPLOMA EXAMINATION IN ENGINEERING/ TECHNOLIGY- MARCH, 2012 DATA STRUCTURE (Common to CT and IF) [Time: 3 hours
TED (10)-3071 Reg. No.. (REVISION-2010) (Maximum marks: 100) Signature. FORTH SEMESTER DIPLOMA EXAMINATION IN ENGINEERING/ TECHNOLIGY- MARCH, 2012 DATA STRUCTURE (Common to CT and IF) [Time: 3 hours PART
More informationCSE 214 Computer Science II Stack
CSE 214 Computer Science II Stack Spring 2018 Stony Brook University Instructor: Shebuti Rayana shebuti.rayana@stonybrook.edu http://www3.cs.stonybrook.edu/~cse214/sec02/ Random and Sequential Access Random
More information8. Write an example for expression tree. [A/M 10] (A+B)*((C-D)/(E^F))
DHANALAKSHMI COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING EC6301 OBJECT ORIENTED PROGRAMMING AND DATA STRUCTURES UNIT IV NONLINEAR DATA STRUCTURES Part A 1. Define Tree [N/D 08]
More informationMLR Institute of Technology
MLR Institute of Technology Laxma Reddy Avenue, Dundigal, Quthbullapur (M), Hyderabad 500 043 Phone Nos: 08418 204066 / 204088, Fax : 08418 204088 TUTORIAL QUESTION BANK Course Name : DATA STRUCTURES Course
More informationData Structures. Trees. By Dr. Mohammad Ali H. Eljinini. M.A. Eljinini, PhD
Data Structures Trees By Dr. Mohammad Ali H. Eljinini Trees Are collections of items arranged in a tree like data structure (none linear). Items are stored inside units called nodes. However: We can use
More informationINSTITUTE OF AERONAUTICAL ENGINEERING
INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad - 500 043 COMPUTER SCIENCE AND ENGINEERING TUTORIAL QUESTION BANK Course Name Course Code Class Branch DATA STRUCTURES ACS002 B. Tech
More informationStack ADT. ! push(x) puts the element x on top of the stack! pop removes the topmost element from the stack.
STACK Stack ADT 2 A stack is an abstract data type based on the list data model All operations are performed at one end of the list called the top of the stack (TOS) LIFO (for last-in first-out) list is
More informationCSI33 Data Structures
Outline Department of Mathematics and Computer Science Bronx Community College October 19, 2016 Outline Outline 1 Chapter 7: Trees Outline Chapter 7: Trees 1 Chapter 7: Trees Uses Of Trees Chapter 7: Trees
More informationAdvanced Java Concepts Unit 5: Trees. Notes and Exercises
Advanced Java Concepts Unit 5: Trees. Notes and Exercises A Tree is a data structure like the figure shown below. We don t usually care about unordered trees but that s where we ll start. Later we will
More informationCS 171: Introduction to Computer Science II. Binary Search Trees
CS 171: Introduction to Computer Science II Binary Search Trees Binary Search Trees Symbol table applications BST definitions and terminologies Search and insert Traversal Ordered operations Delete Symbol
More informationinfix expressions (review)
Outline infix, prefix, and postfix expressions queues queue interface queue applications queue implementation: array queue queue implementation: linked queue application of queues and stacks: data structure
More informationObjective Questions for Online Practical Exams under CBCS Scheme Subject: Data Structure-I (CS-113)
Objective Questions for Online Practical Exams under CBCS Scheme Subject: Data Structure-I (CS-113) 1. The number of interchanges required to sort 5, 1, 6, 2 4 in ascending order using Bubble Sort (A)
More informationStack Applications. Lecture 25 Sections Robb T. Koether. Hampden-Sydney College. Mon, Mar 30, 2015
Stack Applications Lecture 25 Sections 18.7-18.8 Robb T. Koether Hampden-Sydney College Mon, Mar 30, 2015 Robb T. Koether Hampden-Sydney College) Stack Applications Mon, Mar 30, 2015 1 / 34 1 The Triangle
More informationComputer Science 210 Data Structures Siena College Fall Topic Notes: Trees
Computer Science 0 Data Structures Siena College Fall 08 Topic Notes: Trees We ve spent a lot of time looking at a variety of structures where there is a natural linear ordering of the elements in arrays,
More informationBasic Data Structures (Version 7) Name:
Prerequisite Concepts for Analysis of Algorithms Basic Data Structures (Version 7) Name: Email: Concept: mathematics notation 1. log 2 n is: Code: 21481 (A) o(log 10 n) (B) ω(log 10 n) (C) Θ(log 10 n)
More informationData Structures. Outline. Introduction Linked Lists Stacks Queues Trees Deitel & Associates, Inc. All rights reserved.
Data Structures Outline Introduction Linked Lists Stacks Queues Trees Introduction dynamic data structures - grow and shrink during execution Linked lists - insertions and removals made anywhere Stacks
More informationSTACKS. A stack is defined in terms of its behavior. The common operations associated with a stack are as follows:
STACKS A stack is a linear data structure for collection of items, with the restriction that items can be added one at a time and can only be removed in the reverse order in which they were added. The
More informationCSE 230 Intermediate Programming in C and C++
CSE 230 Intermediate Programming in C and C++ Structures and List Processing Fall 2017 Stony Brook University Instructor: Shebuti Rayana http://www3.cs.stonybrook.edu/~cse230/ Self-referential Structure
More informationA6-R3: DATA STRUCTURE THROUGH C LANGUAGE
A6-R3: DATA STRUCTURE THROUGH C LANGUAGE NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE is to be answered in the TEAR-OFF
More informationTree. A path is a connected sequence of edges. A tree topology is acyclic there is no loop.
Tree A tree consists of a set of nodes and a set of edges connecting pairs of nodes. A tree has the property that there is exactly one path (no more, no less) between any pair of nodes. A path is a connected
More informationSample Question Paper
Scheme - I Sample Question Paper Marks : 70 Time: 3 Hrs. Q.1) Attempt any FIVE of the following. 10 Marks a. Write any four applications of data structure. b. Sketch the diagram of circular queue. c. State
More informationTable of Contents. Chapter 1: Introduction to Data Structures... 1
Table of Contents Chapter 1: Introduction to Data Structures... 1 1.1 Data Types in C++... 2 Integer Types... 2 Character Types... 3 Floating-point Types... 3 Variables Names... 4 1.2 Arrays... 4 Extraction
More informationIntroduction p. 1 Pseudocode p. 2 Algorithm Header p. 2 Purpose, Conditions, and Return p. 3 Statement Numbers p. 4 Variables p. 4 Algorithm Analysis
Introduction p. 1 Pseudocode p. 2 Algorithm Header p. 2 Purpose, Conditions, and Return p. 3 Statement Numbers p. 4 Variables p. 4 Algorithm Analysis p. 5 Statement Constructs p. 5 Pseudocode Example p.
More informationSome Applications of Stack. Spring Semester 2007 Programming and Data Structure 1
Some Applications of Stack Spring Semester 2007 Programming and Data Structure 1 Arithmetic Expressions Polish Notation Spring Semester 2007 Programming and Data Structure 2 What is Polish Notation? Conventionally,
More informationChapter 10: Trees. A tree is a connected simple undirected graph with no simple circuits.
Chapter 10: Trees A tree is a connected simple undirected graph with no simple circuits. Properties: o There is a unique simple path between any 2 of its vertices. o No loops. o No multiple edges. Example
More informationCOMP-421 Compiler Design. Presented by Dr Ioanna Dionysiou
COMP-421 Compiler Design Presented by Dr Ioanna Dionysiou Administrative! Any questions about the syllabus?! Course Material available at www.cs.unic.ac.cy/ioanna! Next time reading assignment [ALSU07]
More informationTree Applications. Processing sentences (computer programs or natural languages) Searchable data structures
Tree Applications Processing sentences (computer programs or natural languages) Searchable data structures Heaps (implement heap sort, priority queues) A Parse (Expression) Tree Source language program
More informationDraw a diagram of an empty circular queue and describe it to the reader.
1020_1030_testquestions.text Wed Sep 10 10:40:46 2014 1 1983/84 COSC1020/30 Tests >>> The following was given to students. >>> Students can have a good idea of test questions by examining and trying the
More informationAlgorithms and Data Structures
Algorithms and Data Structures PD Dr. rer. nat. habil. Ralf Peter Mundani Computation in Engineering / BGU Scientific Computing in Computer Science / INF Summer Term 2018 Part 2: Data Structures PD Dr.
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 informationInfix to Postfix Conversion
Infix to Postfix Conversion Infix to Postfix Conversion Stacks are widely used in the design and implementation of compilers. For example, they are used to convert arithmetic expressions from infix notation
More informationData Structure - Binary Tree 1 -
Data Structure - Binary Tree 1 - Hanyang University Jong-Il Park Basic Tree Concepts Logical structures Chap. 2~4 Chap. 5 Chap. 6 Linear list Tree Graph Linear structures Non-linear structures Linear Lists
More information3137 Data Structures and Algorithms in C++
3137 Data Structures and Algorithms in C++ Lecture 4 July 17 2006 Shlomo Hershkop 1 Announcements please make sure to keep up with the course, it is sometimes fast paced for extra office hours, please
More informationStack. 4. In Stack all Operations such as Insertion and Deletion are permitted at only one end. Size of the Stack 6. Maximum Value of Stack Top 5
What is Stack? Stack 1. Stack is LIFO Structure [ Last in First Out ] 2. Stack is Ordered List of Elements of Same Type. 3. Stack is Linear List 4. In Stack all Operations such as Insertion and Deletion
More informationData Structures Question Bank Multiple Choice
Section 1. Fundamentals: Complexity, Algorthm Analysis 1. An algorithm solves A single problem or function Multiple problems or functions Has a single programming language implementation 2. A solution
More informationAnnouncements. Midterm exam 2, Thursday, May 18. Today s topic: Binary trees (Ch. 8) Next topic: Priority queues and heaps. Break around 11:45am
Announcements Midterm exam 2, Thursday, May 18 Closed book/notes but one sheet of paper allowed Covers up to stacks and queues Today s topic: Binary trees (Ch. 8) Next topic: Priority queues and heaps
More information6-TREE. Tree: Directed Tree: A directed tree is an acyclic digraph which has one node called the root node
6-TREE Data Structure Management (330701) Tree: A tree is defined as a finite set of one or more nodes such that There is a special node called the root node R. The remaining nodes are divided into n 0
More informationFINALTERM EXAMINATION Fall 2009 CS301- Data Structures Question No: 1 ( Marks: 1 ) - Please choose one The data of the problem is of 2GB and the hard
FINALTERM EXAMINATION Fall 2009 CS301- Data Structures Question No: 1 The data of the problem is of 2GB and the hard disk is of 1GB capacity, to solve this problem we should Use better data structures
More informationThe Stack and Queue Types
The Stack and Queue Types Hartmut Kaiser hkaiser@cct.lsu.edu http://www.cct.lsu.edu/ hkaiser/fall_2012/csc1254.html 2 Programming Principle of the Day Do the simplest thing that could possibly work A good
More informationRevision Statement while return growth rate asymptotic notation complexity Compare algorithms Linear search Binary search Preconditions: sorted,
[1] Big-O Analysis AVERAGE(n) 1. sum 0 2. i 0. while i < n 4. number input_number(). sum sum + number 6. i i + 1 7. mean sum / n 8. return mean Revision Statement no. of times executed 1 1 2 1 n+1 4 n
More informationContainers: Stack. Jordi Cortadella and Jordi Petit Department of Computer Science
Containers: Stack Jordi Cortadella and Jordi Petit Department of Computer Science The Stack ADT A stack is a list of objects in which insertions and deletions can only be performed at the top of the list.
More informationLec 17 April 8. Topics: binary Trees expression trees. (Chapter 5 of text)
Lec 17 April 8 Topics: binary Trees expression trees Binary Search Trees (Chapter 5 of text) Trees Linear access time of linked lists is prohibitive Heap can t support search in O(log N) time. (takes O(N)
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Binary search tree (part I) Version of March 24, 2013 Abstract These lecture notes are meant
More informationCS24 Week 8 Lecture 1
CS24 Week 8 Lecture 1 Kyle Dewey Overview Tree terminology Tree traversals Implementation (if time) Terminology Node The most basic component of a tree - the squares Edge The connections between nodes
More informationSection 5.5. Left subtree The left subtree of a vertex V on a binary tree is the graph formed by the left child L of V, the descendents
Section 5.5 Binary Tree A binary tree is a rooted tree in which each vertex has at most two children and each child is designated as being a left child or a right child. Thus, in a binary tree, each vertex
More informationHierarchical data structures. Announcements. Motivation for trees. Tree overview
Announcements Midterm exam 2, Thursday, May 18 Closed book/notes but one sheet of paper allowed Covers up to stacks and queues Today s topic: Binary trees (Ch. 8) Next topic: Priority queues and heaps
More informationR10 SET - 1. Code No: R II B. Tech I Semester, Supplementary Examinations, May
Code No: R21051 R10 SET - 1 II B. Tech I Semester, Supplementary Examinations, May - 2012 DATA STRUCTURES (Com. to CSE, IT, ECC ) Time: 3 hours Max Marks: 75 Answer any FIVE Questions All Questions carry
More informationAbstract Data Structures IB Computer Science. Content developed by Dartford Grammar School Computer Science Department
Abstract Data Structures IB Computer Science Content developed by Dartford Grammar School Computer Science Department HL Topics 1-7, D1-4 1: System design 2: Computer Organisation 3: Networks 4: Computational
More informationUpcoming ACM Events Linux Crash Course Date: Time: Location: Weekly Crack the Coding Interview Date:
Upcoming ACM Events Linux Crash Course Date: Oct. 2nd and 3rd Time: 1:15 pm - 3:15 pm Location: UW1-210 (10/02) and UW1-221 (10/03) Weekly Crack the Coding Interview Date: Weekly Fridays from Oct. 5th
More informationTrees. (Trees) Data Structures and Programming Spring / 28
Trees (Trees) Data Structures and Programming Spring 2018 1 / 28 Trees A tree is a collection of nodes, which can be empty (recursive definition) If not empty, a tree consists of a distinguished node r
More informationBinary Tree Application Expression Tree. Revised based on textbook author s notes.
Binary Tree Application Expression Tree Revised based on textbook author s notes. Expression Trees A binary tree in which the operators are stored in the interior nodes and the operands are sored in the
More information- 1 - Handout #22S May 24, 2013 Practice Second Midterm Exam Solutions. CS106B Spring 2013
CS106B Spring 2013 Handout #22S May 24, 2013 Practice Second Midterm Exam Solutions Based on handouts by Eric Roberts and Jerry Cain Problem One: Reversing a Queue One way to reverse the queue is to keep
More informationContext-Free Grammar. Concepts Introduced in Chapter 2. Parse Trees. Example Grammar and Derivation
Concepts Introduced in Chapter 2 A more detailed overview of the compilation process. Parsing Scanning Semantic Analysis Syntax-Directed Translation Intermediate Code Generation Context-Free Grammar A
More informationStacks and their Applications
Stacks and their Applications Lecture 23 Sections 18.1-18.2 Robb T. Koether Hampden-Sydney College Fri, Mar 16, 2018 Robb T. Koether Hampden-Sydney College) Stacks and their Applications Fri, Mar 16, 2018
More informationContainers: Stack. The Stack ADT. The Stack ADT. The Stack ADT
Containers: Stack The Stack ADT A stack is a list of objects in which insertions and deletions can only be performed at the top of the list. Also known as LIFO Last In, First Out) push insert an element
More informationComputer Science Foundation Exam. Dec. 19, 2003 COMPUTER SCIENCE I. Section I A. No Calculators! KEY
Computer Science Foundation Exam Dec. 19, 2003 COMPUTER SCIENCE I Section I A No Calculators! Name: KEY SSN: Score: 50 In this section of the exam, there are Three (3) problems You must do all of them.
More informationLECTURE 13 BINARY TREES
DATA STRUCTURES AND ALGORITHMS LECTURE 13 BINARY TREES IMRAN IHSAN ASSISTANT PROFESSOR AIR UNIVERSITY, ISLAMABAD DEFINITION The arbitrary number of children in general trees is often unnecessary many real-life
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Binary search tree (part I) Version of March 24, 2013 Abstract These lecture notes are meant
More informationGarbage Collection: recycling unused memory
Outline backtracking garbage collection trees binary search trees tree traversal binary search tree algorithms: add, remove, traverse binary node class 1 Backtracking finding a path through a maze is an
More informationAdvanced Java Concepts Unit 5: Trees. Notes and Exercises
dvanced Java Concepts Unit 5: Trees. Notes and Exercises Tree is a data structure like the figure shown below. We don t usually care about unordered trees but that s where we ll start. Later we will focus
More informationE.G.S. PILLAY ENGINEERING COLLEGE (An Autonomous Institution, Affiliated to Anna University, Chennai) Nagore Post, Nagapattinam , Tamilnadu.
17CA 104DATA STRUCTURES Academic Year : 018-019 Programme : MCA Year / Semester : I / I Question Bank Course Coordinator: Mrs. C.Mallika Course Objectives The student should be able to 1. To understand
More informationIntroduction to Binary Trees
Introduction to inary Trees 1 ackground ll data structures examined so far are linear data structures. Each element in a linear data structure has a clear predecessor and a clear successor. Precessors
More information( ) + n. ( ) = n "1) + n. ( ) = T n 2. ( ) = 2T n 2. ( ) = T( n 2 ) +1
CSE 0 Name Test Summer 00 Last Digits of Student ID # Multiple Choice. Write your answer to the LEFT of each problem. points each. Suppose you are sorting millions of keys that consist of three decimal
More informationCISC 235 Topic 3. General Trees, Binary Trees, Binary Search Trees
CISC 235 Topic 3 General Trees, Binary Trees, Binary Search Trees Outline General Trees Terminology, Representation, Properties Binary Trees Representations, Properties, Traversals Recursive Algorithms
More informationThere are many other applications like constructing the expression tree from the postorder expression. I leave you with an idea as how to do it.
Programming, Data Structures and Algorithms Prof. Hema Murthy Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 49 Module 09 Other applications: expression tree
More informationLecture 4: Stack Applications CS2504/CS4092 Algorithms and Linear Data Structures. Parentheses and Mathematical Expressions
Lecture 4: Applications CS2504/CS4092 Algorithms and Linear Data Structures Dr Kieran T. Herley Department of Computer Science University College Cork Summary. Postfix notation for arithmetic expressions.
More informationCS61B Lecture #20: Trees. Last modified: Mon Oct 8 21:21: CS61B: Lecture #20 1
CS61B Lecture #20: Trees Last modified: Mon Oct 8 21:21:22 2018 CS61B: Lecture #20 1 A Recursive Structure Trees naturally represent recursively defined, hierarchical objects with more than one recursive
More informationCSCI2100B Data Structures Trees
CSCI2100B Data Structures Trees Irwin King king@cse.cuhk.edu.hk http://www.cse.cuhk.edu.hk/~king Department of Computer Science & Engineering The Chinese University of Hong Kong Introduction General Tree
More information