Change in Schedule. I'm changing the schedule around a bit...

Size: px
Start display at page:

Download "Change in Schedule. I'm changing the schedule around a bit..."

Transcription

1 Graphs

2 Announcements() {

3 Change in Schedule I'm changing the schedule around a bit... Today: Graphs Tuesday: Shortest Path Algorithms Wednesday: Minimum Spanning Trees Tursday: Review Session for Midterm II

4 Final Final: Monday, August 12th, 7-10pm Location: Cubberly Auditorium Cumulative (but weighted towards post midterm material) Covers material up through Tuesday SCPD students and students who require special arrangements should me in the next couple days We do the final early so we have time to grade it, get it back to you and resolve any grading issues.

5 } //Announcements

6 Data Structures Cheat Sheet Vector, Stack: dynamic array Queue: linked list or dynamic array Set, Map: Binary Search Tree HashSet, HashMap: Hash Table Lexicon: Trie

7 Graphs

8 A Social Network

9

10

11 A graph is a mathematical structure for representing relationships.

12 A graph is a mathematical structure for representing relationships. A graph consists of a set of nodes connected by edges.

13 A graph is a mathematical structure for representing relationships. A graph consists of a set of nodes connected by edges.

14 A graph is a mathematical structure for representing relationships. A graph consists of a set of nodes connected by edges.

15 A graph is a mathematical structure for representing relationships. Nodes A graph consists of a set of nodes connected by edges.

16 A graph is a mathematical structure for representing relationships. Edges A graph consists of a set of nodes connected by edges.

17 Some graphs are directed.

18 Some graphs are undirected. CAN MAN RAN MAT CAT SAT RAT

19 Some graphs are undirected. CAN MAN RAN MAT CAT SAT RAT You can think of them as directed graphs with edges both ways.

20 Graphs Yo Teach, why are we studying graphs? We study graphs because a lot of problems can be modeled in terms of graphs Also, there are many off-the-shelf graph algorithms that we apply if we're able to formulate a problem as a graph problem.

21 Pathfinding Each intersection is a node Each street connecting intersections is an edge Find paths between intersections that minimize distance or travel time

22 Content-Aware Resizing

23 Content-Aware Resizing Each pixel is a node in a graph Each pixel is connected to adjacent pixels Find paths from the top of the image to the bottom that minimize the energy function

24 The Wikipedia Graph Wikipedia (and the web in general) is a graph! Each page is a node. There is an edge from one page to another if the first page links to the second.

25 Social Networks and Epidemics %2Finfo2040%2F2011%2F09%2F17%2Fhow-network-structure-can-provide-advanced-warning-about-epidemics %2F&ei=rrP9Ufa8G6n0iwK9q4CoBQ&bvm=bv ,d.cGE&psig=AFQjCNHljXC1ZggH6hQDrKxPM1CV7ocVXQ&ust=

26 How can we represent graphs in C++?

27 Representing Graphs We Wecan canrepresent representaagraph graphas as aamap mapfrom fromnodes nodesto tothe thelist list of ofnodes nodeseach eachnode nodeisis connected connectedto. to. Map<Node*, Vector<Node*>> Node* Vector<Node*> Node Connected To

28 What interesting things can we do with graphs?

29 Connected Components A connected component is a subset of the nodes in a graph such that: For every pair of nodes in the subset there exists a path between them No node in the subset is not connected any node not in the subset

30 Connected Components 1 Connected Component

31 Connected Components 2 Connected Components

32 Connected Components 3 Connected Components

33 Connected Components 6 Connected Components

34 Connected Components Detecting connected components in a graph is important because it can provide useful insights into the structure of graph e.g. How do people in a community separate themselves into separate groups. In order to detect connected components we first need to be able to iterate over nodes in a graph. We'll come back to connected components later.

35 Iterating over a Graph Given a linked list, there was just one way to traverse the list. Keep going forward. In a binary search tree, there are many traversal strategies: An inorder traversal that produces all the elements in sorted order. A postorder traversal used to delete all the nodes in the BST. There are many ways to iterate over a graph.

36 Iterating over a Graph All methods of iterating over a graph involve keeping track of 3 sets of nodes: Set of Nodes already visited Set of Nodes to look at next Everything else

37 Iterating over a Graph

38 Iterating over a Graph

39 Iterating over a Graph

40 Iterating over a Graph

41 Iterating over a Graph

42 Iterating over a Graph

43 Iterating over a Graph

44 Iterating over a Graph

45 Iterating over a Graph

46 Iterating over a Graph

47 Iterating over a Graph

48 Iterating over a Graph

49 Iterating over a Graph

50 Iterating over a Graph

51 Iterating over a Graph

52 Iterating over a Graph

53 Iterating over a Graph

54 Iterating over a Graph

55 Iterating over a Graph

56 Iterating over a Graph

57 Iterating over a Graph

58 Iterating over a Graph

59 Iterating over a Graph

60 Iterating over a Graph

61 Iterating over a Graph

62 Iterating over a Graph

63 Iterating over a Graph

64 Iterating over a Graph

65 Iterating over a Graph

66 Iterating over a Graph

67 Iterating over a Graph

68 Iterating over a Graph

69 Iterating over a Graph

70 Iterating over a Graph

71 Iterating over a Graph All methods of iterating over a graph involve keeping track of 3 sets of nodes: Set of Nodes already visited Set of Nodes to look at next Everything else Methods of iterating over nodes differ in how they choose which node to look at next

72 Recursive Depth First Search To detect connected components we just want to see whether or not some path exists between them (we don't care about finding the shortest path). One way to detect connectivity would be to just pick an arbitrary direction and keep following it. When you run out of room to go in one direction, just go back and look in a different direction

73 Recursive Depth-First Search

74 Recursive Depth-First Search

75 Recursive Depth-First Search

76 Recursive Depth-First Search

77 Recursive Depth-First Search

78 Recursive Depth-First Search

79 Recursive Depth-First Search

80 Recursive Depth-First Search

81 Recursive Depth-First Search

82 Recursive Depth-First Search

83 Recursive Depth-First Search

84 Recursive Depth-First Search

85 Recursive Depth-First Search

86 Recursive Depth-First Search

87 Recursive Depth-First Search

88 Recursive Depth-First Search

89 Recursive Depth-First Search

90 Recursive Depth-First Search

91 Recursive Depth-First Search

92 Recursive Depth-First Search

93 Recursive Depth-First Search

94 Recursive Depth-First Search

95 Recursive Depth-First Search

96 Recursive Depth-First Search

97 Recursive Depth-First Search

98 Recursive Depth-First Search

99 Recursive Depth-First Search

100 Recursive Depth-First Search

101 Recursive Depth-First Search

102 Recursive Depth-First Search

103 Recursive Depth-First Search

104 Recursive Depth-First Search

105 Recursive Depth-First Search

106 Recursive Depth-First Search

107 Recursive Depth-First Search

108 Recursive Depth-First Search

109 Recursive Depth-First Search

110 Recursive Depth-First Search

111 Recursive Depth-First Search

112 Recursive Depth-First Search

113 Recursive Depth-First Search

114 Recursive Depth-First Search

115 Recursive Depth-First Search

116 Recursive Depth-First Search To do a depth-first search (DFS) from a node u, do the following: If u is already marked, stop. Mark u. For each neighbor v of u: Recursively run DFS from v. The backtracking here is similar to the backtracking done in standard recursion.

117 Iterative Depth-First Search DFS is most commonly implemented iteratively using a Stack

118 Depth-first search A B C D E F

119 Depth-first search A B C D E F Set Stack

120 Depth-first search A B C D E F A Set Stack

121 Depth-first search A B C D E F Set Stack

122 Depth-first search A B C D E F Set A Stack

123 Depth-first search A B C D E F E B Set A Stack

124 Depth-first search A B C D E F E B Set A Stack

125 Depth-first search A B C D E F B Set A Stack

126 Depth-first search A B C D E F E Set A B Stack

127 Depth-first search A B C D E F C F E Set A D B Stack

128 Depth-first search A B C D E F C F E Set A D B Stack

129 Depth-first search A B C D E F F E Set A D B Stack

130 Depth-first search A B C D E F F D E B Set A Stack C

131 Depth-first search A B C D E F B F D E B Set A Stack C

132 Depth-first search A B C D E F B F D E B Set A Stack C

133 Depth-first search A B C D E F B F D E B Set A Stack C

134 Depth-first search A B C D E F F D E B Set A Stack C

135 Depth-first search A B C D E F F D E B Set A B Stack C

136 Depth-first search A B C D E F F D E B Set A B Stack C

137 Depth-first search A B C D E F D E B Set A B Stack C

138 Depth-first search A B C D E F E D F Set A B B Stack C

139 Depth-first search A B C D E F E D F Set A B B Stack C

140 Depth-first search A B C D E F E F Set A B B Stack C

141 Depth-first search A B C D E F D E F Set A B B Stack C

142 Depth-first search A B C D E F D E F Set A B B Stack C

143 Depth-first search A B C D E F D E F Set A B Stack C

144 Coding Depth-First Search

145 DFS and Connected Components Detecting connected components becomes relatively straightforward once we have Depth First Search. Not going to code it up, but I encourage you to!

146 Problems with DFS Useful when trying to explore everything. Not good at finding shortest paths.

147 Problems with DFS Useful when trying to explore everything. Not good at finding shortest paths. Stack

148 Problems with DFS Useful when trying to explore everything. Not good at finding shortest paths. A B Stack

149 Problems with DFS Useful when trying to explore everything. Not good at finding shortest paths. A B A B Stack

150 Breadth-First Search

151

152

153

154

155

156

157

158

159 Breadth-First Search Specialization of the general search algorithm where nodes to visit are put into a queue. Explores nodes one hop away, then two hops away, etc. Finds path with fewest edges from start node to all other nodes.

160 Note: The following animation has been simplified for pedagogic purposes. In reality there would be a Set keeping track of visited nodes and redundant adds to the Queue

161 Breadth-first search A B C D E F

162 Breadth-first search Queue A B C D E F

163 Breadth-first search Queue A A B C D E F

164 Breadth-first search Queue A B C D E F

165 Breadth-first search Queue B A B C D E F E

166 Breadth-first search Queue B A B C D E F E

167 Breadth-first search Queue E A B C D E F

168 Breadth-first search Queue E A B C D E F C

169 Breadth-first search Queue E A B C D E F C

170 Breadth-first search Queue A B C D E F C

171 Breadth-first search Queue A B C D E F C D F

172 Breadth-first search Queue A B C D E F C D F

173 Breadth-first search Queue D A B C D E F F

174 Breadth-first search Queue D A B C D E F F

175 Breadth-first search Queue F A B C D E F

176 Breadth-first search Queue F A B C D E F

177 Breadth-first search Queue A B C D E F

178 Breadth-first search Queue A B C D E F

179 Coding Breadth-First Search

180 CAN MAN RAN MAT CAT SAT RAT

181 CAN MAN RAN MAT CAT SAT RAT

182 CAN MAN RAN MAT CAT SAT RAT

183 CAN MAN RAN MAT CAT SAT RAT

184 CAN MAN RAN MAT CAT SAT RAT

185 CAN CAT RAN

186 Next Time Shortest Paths Dijkstra's Algorithm. A* Search.

Introduction to Graphs. CS2110, Spring 2011 Cornell University

Introduction to Graphs. CS2110, Spring 2011 Cornell University Introduction to Graphs CS2110, Spring 2011 Cornell University A graph is a data structure for representing relationships. Each graph is a set of nodes connected by edges. Synonym Graph Hostile Slick Icy

More information

Synonyms. Hostile. Chilly. Direct. Sharp

Synonyms. Hostile. Chilly. Direct. Sharp Graphs and Networks A Social Network Synonyms Hostile Slick Icy Direct Nifty Cool Abrupt Sharp Composed Chilly Chemical Bonds http://4.bp.blogspot.com/-xctbj8lkhqa/tjm0bonwbri/aaaaaaaaak4/-mhrbauohhg/s600/ethanol.gif

More information

CSE373: Data Structures & Algorithms Lecture 28: Final review and class wrap-up. Nicki Dell Spring 2014

CSE373: Data Structures & Algorithms Lecture 28: Final review and class wrap-up. Nicki Dell Spring 2014 CSE373: Data Structures & Algorithms Lecture 28: Final review and class wrap-up Nicki Dell Spring 2014 Final Exam As also indicated on the web page: Next Tuesday, 2:30-4:20 in this room Cumulative but

More information

Friday Four Square! 4:15PM, Outside Gates

Friday Four Square! 4:15PM, Outside Gates Binary Search Trees Friday Four Square! 4:15PM, Outside Gates Implementing Set On Monday and Wednesday, we saw how to implement the Map and Lexicon, respectively. Let's now turn our attention to the Set.

More information

Chapter 14. Graphs Pearson Addison-Wesley. All rights reserved 14 A-1

Chapter 14. Graphs Pearson Addison-Wesley. All rights reserved 14 A-1 Chapter 14 Graphs 2011 Pearson Addison-Wesley. All rights reserved 14 A-1 Terminology G = {V, E} A graph G consists of two sets A set V of vertices, or nodes A set E of edges A subgraph Consists of a subset

More information

Problem Score Maximum MC 34 (25/17) = 50 Total 100

Problem Score Maximum MC 34 (25/17) = 50 Total 100 Stony Brook University Midterm 2 CSE 373 Analysis of Algorithms November 22, 2016 Midterm Exam Name: ID #: Signature: Circle one: GRAD / UNDERGRAD INSTRUCTIONS: This is a closed book, closed mouth exam.

More information

R13. II B. Tech I Semester Supplementary Examinations, May/June DATA STRUCTURES (Com. to ECE, CSE, EIE, IT, ECC)

R13. II B. Tech I Semester Supplementary Examinations, May/June DATA STRUCTURES (Com. to ECE, CSE, EIE, IT, ECC) SET - 1 II B. Tech I Semester Supplementary Examinations, May/June - 2016 PART A 1. a) Write a procedure for the Tower of Hanoi problem? b) What you mean by enqueue and dequeue operations in a queue? c)

More information

CS106X Final Review. Rachel Gardner and Jared Bitz. slides adapted from Ashley Taylor, Anton Apostolatos, Nolan Handali, and Zachary Birnholz

CS106X Final Review. Rachel Gardner and Jared Bitz. slides adapted from Ashley Taylor, Anton Apostolatos, Nolan Handali, and Zachary Birnholz CS106X Final Review Rachel Gardner and Jared Bitz slides adapted from Ashley Taylor, Anton Apostolatos, Nolan Handali, and Zachary Birnholz Final Review Session Overview Logistics Pointers and Dynamic

More information

CSE 373 NOVEMBER 20 TH TOPOLOGICAL SORT

CSE 373 NOVEMBER 20 TH TOPOLOGICAL SORT CSE 373 NOVEMBER 20 TH TOPOLOGICAL SORT PROJECT 3 500 Internal Error problems Hopefully all resolved (or close to) P3P1 grades are up (but muted) Leave canvas comment Emails tomorrow End of quarter GRAPHS

More information

csci 210: Data Structures Graph Traversals

csci 210: Data Structures Graph Traversals csci 210: Data Structures Graph Traversals 1 Depth-first search (DFS) G can be directed or undirected DFS(v) mark v visited for all adjacent edges (v,w) of v do if w is not visited parent(w) = v (v,w)

More information

CISC 3130 Data Structures Spring 2018

CISC 3130 Data Structures Spring 2018 CISC 3130 Data Structures Spring 2018 Instructor: Ari Mermelstein Email address for questions: mermelstein AT sci DOT brooklyn DOT cuny DOT edu Email address for homework submissions: mermelstein DOT homework

More information

CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims. Lecture 25: Review and Open Problems

CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims. Lecture 25: Review and Open Problems CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims Lecture 25: Review and Open Problems Course Overview Programming Concepts Object-Oriented Programming Interfaces

More information

Graphs & Digraphs Tuesday, November 06, 2007

Graphs & Digraphs Tuesday, November 06, 2007 Graphs & Digraphs Tuesday, November 06, 2007 10:34 PM 16.1 Directed Graphs (digraphs) like a tree but w/ no root node & no guarantee of paths between nodes consists of: nodes/vertices - a set of elements

More information

CSE 373: Data Structures and Algorithms

CSE 373: Data Structures and Algorithms CSE 373: Data Structures and Algorithms Lecture 6: Dijkstra s Algorithm (Graphs) Instructor: Lilian de Greef Quarter: Summer 207 Today Announcements Graph Traversals Continued Remarks on DFS & BFS Shortest

More information

(Refer Slide Time: 05:25)

(Refer Slide Time: 05:25) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering IIT Delhi Lecture 30 Applications of DFS in Directed Graphs Today we are going to look at more applications

More information

CSE 100: GRAPH SEARCH

CSE 100: GRAPH SEARCH CSE 100: GRAPH SEARCH Announcements PA3 released Checkpoint due Tuesday, May 5 @10:00pm Final submission due Thursday, May 14 @10:00PM Start early! Start early! Start early! Start early! Start early! I

More information

MA/CSSE 473 Day 12. Questions? Insertion sort analysis Depth first Search Breadth first Search. (Introduce permutation and subset generation)

MA/CSSE 473 Day 12. Questions? Insertion sort analysis Depth first Search Breadth first Search. (Introduce permutation and subset generation) MA/CSSE 473 Day 12 Interpolation Search Insertion Sort quick review DFS, BFS Topological Sort MA/CSSE 473 Day 12 Questions? Interpolation Search Insertion sort analysis Depth first Search Breadth first

More information

LECTURE 17 GRAPH TRAVERSALS

LECTURE 17 GRAPH TRAVERSALS DATA STRUCTURES AND ALGORITHMS LECTURE 17 GRAPH TRAVERSALS IMRAN IHSAN ASSISTANT PROFESSOR AIR UNIVERSITY, ISLAMABAD STRATEGIES Traversals of graphs are also called searches We can use either breadth-first

More information

CSE 373 APRIL 17 TH TREE BALANCE AND AVL

CSE 373 APRIL 17 TH TREE BALANCE AND AVL CSE 373 APRIL 17 TH TREE BALANCE AND AVL ASSORTED MINUTIAE HW3 due Wednesday Double check submissions Use binary search for SADict Midterm text Friday Review in Class on Wednesday Testing Advice Empty

More information

CSC2100-Data Structures

CSC2100-Data Structures CSC2100-Data Structures Final Remarks Department of Computer Science and Engineering The Chinese University of Hong Kong, Shatin, New Territories Interesting Topics More Graph Algorithms Finding cycles,

More information

CSE 100: GRAPH ALGORITHMS

CSE 100: GRAPH ALGORITHMS CSE 100: GRAPH ALGORITHMS 2 Graphs: Example A directed graph V5 V = { V = E = { E Path: 3 Graphs: Definitions A directed graph V5 V6 A graph G = (V,E) consists of a set of vertices V and a set of edges

More information

Spanning Trees 4/19/17. Prelim 2, assignments. Undirected trees

Spanning Trees 4/19/17. Prelim 2, assignments. Undirected trees /9/7 Prelim, assignments Prelim is Tuesday. See the course webpage for details. Scope: up to but not including today s lecture. See the review guide for details. Deadline for submitting conflicts has passed.

More information

Spanning Trees. Lecture 22 CS2110 Spring 2017

Spanning Trees. Lecture 22 CS2110 Spring 2017 1 Spanning Trees Lecture 22 CS2110 Spring 2017 1 Prelim 2, assignments Prelim 2 is Tuesday. See the course webpage for details. Scope: up to but not including today s lecture. See the review guide for

More information

2. True or false: even though BFS and DFS have the same space complexity, they do not always have the same worst case asymptotic time complexity.

2. True or false: even though BFS and DFS have the same space complexity, they do not always have the same worst case asymptotic time complexity. 1. T F: Consider a directed graph G = (V, E) and a vertex s V. Suppose that for all v V, there exists a directed path in G from s to v. Suppose that a DFS is run on G, starting from s. Then, true or false:

More information

17 February Given an algorithm, compute its running time in terms of O, Ω, and Θ (if any). Usually the big-oh running time is enough.

17 February Given an algorithm, compute its running time in terms of O, Ω, and Θ (if any). Usually the big-oh running time is enough. Midterm Review CSE 2011 Winter 2011 17 February 2011 1 Algorithm Analysis Given an algorithm, compute its running time in terms of O, Ω, and Θ (if any). Usually the big-oh running time is enough. Given

More information

CS2013 Course Syllabus Spring 2017 Lecture: Friday 8:00 A.M. 9:40 A.M. Lab: Friday 9:40 A.M. 12:00 Noon

CS2013 Course Syllabus Spring 2017 Lecture: Friday 8:00 A.M. 9:40 A.M. Lab: Friday 9:40 A.M. 12:00 Noon CS2013 Course Syllabus Spring 2017 Lecture: Friday 8:00 A.M. 9:40 A.M. Lab: Friday 9:40 A.M. 12:00 Noon Instructor Course name Credits Contact hours Text book Course Information Course Goals Jungsoo (Sue)

More information

CS6301 Programming and Data Structures II Unit -5 REPRESENTATION OF GRAPHS Graph and its representations Graph is a data structure that consists of following two components: 1. A finite set of vertices

More information

Binary Trees

Binary Trees Binary Trees 4-7-2005 Opening Discussion What did we talk about last class? Do you have any code to show? Do you have any questions about the assignment? What is a Tree? You are all familiar with what

More information

Prelim 2. CS 2110, November 20, 2014, 7:30 PM Extra Total Question True/False Short Answer

Prelim 2. CS 2110, November 20, 2014, 7:30 PM Extra Total Question True/False Short Answer Prelim 2 CS 2110, November 20, 2014, 7:30 PM 1 2 3 4 5 Extra Total Question True/False Short Answer Complexity Induction Trees Graphs Extra Credit Max 20 10 15 25 30 5 100 Score Grader The exam is closed

More information

Teach A level Compu/ng: Algorithms and Data Structures

Teach A level Compu/ng: Algorithms and Data Structures Teach A level Compu/ng: Algorithms and Data Structures Eliot Williams @MrEliotWilliams Course Outline 1 Representaons of data structures: Arrays, tuples, Stacks, Queues,Lists 2 Recursive Algorithms 3 Searching

More information

Outline. Graphs. Divide and Conquer.

Outline. Graphs. Divide and Conquer. GRAPHS COMP 321 McGill University These slides are mainly compiled from the following resources. - Professor Jaehyun Park slides CS 97SI - Top-coder tutorials. - Programming Challenges books. Outline Graphs.

More information

Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we

Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we have to talk about the way in which we represent the

More information

COMPSCI 311: Introduction to Algorithms First Midterm Exam, October 3, 2018

COMPSCI 311: Introduction to Algorithms First Midterm Exam, October 3, 2018 COMPSCI 311: Introduction to Algorithms First Midterm Exam, October 3, 2018 Name: ID: Answer the questions directly on the exam pages. Show all your work for each question. More detail including comments

More information

Synonyms. Hostile. Chilly. Direct. Sharp

Synonyms. Hostile. Chilly. Direct. Sharp Graphs and Networks A Social Network Synonyms Hostile Slick Icy Direct Nifty Cool Abrupt Sharp Composed Chilly Chemical Bonds http://4.bp.blogspot.com/-xctbj8lkhqa/tjm0bonwbri/aaaaaaaaak4/-mhrbauohhg/s600/ethanol.gif

More information

Lecture 3: Graphs and flows

Lecture 3: Graphs and flows Chapter 3 Lecture 3: Graphs and flows Graphs: a useful combinatorial structure. Definitions: graph, directed and undirected graph, edge as ordered pair, path, cycle, connected graph, strongly connected

More information

CS210 (161) with Dr. Basit Qureshi Final Exam Weight 40%

CS210 (161) with Dr. Basit Qureshi Final Exam Weight 40% CS210 (161) with Dr. Basit Qureshi Final Exam Weight 40% Name ID Directions: There are 9 questions in this exam. To earn a possible full score, you must solve all questions. Time allowed: 180 minutes Closed

More information

Lecture 27: Learning from relational data

Lecture 27: Learning from relational data Lecture 27: Learning from relational data STATS 202: Data mining and analysis December 2, 2017 1 / 12 Announcements Kaggle deadline is this Thursday (Dec 7) at 4pm. If you haven t already, make a submission

More information

Graphs Introduction and Depth first algorithm

Graphs Introduction and Depth first algorithm Graphs Introduction and Depth first algorithm Carol Zander Introduction to graphs Graphs are extremely common in computer science applications because graphs are common in the physical world. Everywhere

More information

Minimum Spanning Trees

Minimum Spanning Trees Minimum Spanning Trees 5 7 1 6 7 6 8 2 3 4 12 1 9 5 7 1 6 7 6 8 2 3 4 12 This This graph graph is is not not connected. connected. 1 9 5 7 1 6 7 6 8 2 3 4 12 There There is is a a cycle cycle in in this

More information

CS302 Data Structures using C++

CS302 Data Structures using C++ CS302 Data Structures using C++ Study Guide for the Final Exam Fall 2018 Revision 1.1 This document serves to help you prepare towards the final exam for the Fall 2018 semester. 1. What topics are to be

More information

Spanning Trees, greedy algorithms. Lecture 22 CS2110 Fall 2017

Spanning Trees, greedy algorithms. Lecture 22 CS2110 Fall 2017 1 Spanning Trees, greedy algorithms Lecture 22 CS2110 Fall 2017 1 We demo A8 Your space ship is on earth, and you hear a distress signal from a distance Planet X. Your job: 1. Rescue stage: Fly your ship

More information

9/17/2015 7:56 AM. CSCE 625 Programing Assignment #1 due: Tues, Sep 22 (by start of class) Objective

9/17/2015 7:56 AM. CSCE 625 Programing Assignment #1 due: Tues, Sep 22 (by start of class) Objective CSCE 625 Programing Assignment #1 due: Tues, Sep 22 (by start of class) Objective The goal of this assignment is to implement and compare the performance of Breadth-first search (BFS), Depth-First Search

More information

CS503 Advanced Programming I CS305 Computer Algorithms I

CS503 Advanced Programming I CS305 Computer Algorithms I Syllabus: CS503 Advanced Programming I CS305 Computer Algorithms I Course Number: CS503-50/CS305-50 Course Title: Advanced Programming I/Computer Algorithms I Instructor: Richard Scherl Office: Howard

More information

CS 310 Advanced Data Structures and Algorithms

CS 310 Advanced Data Structures and Algorithms CS 31 Advanced Data Structures and Algorithms Graphs July 18, 17 Tong Wang UMass Boston CS 31 July 18, 17 1 / 4 Graph Definitions Graph a mathematical construction that describes objects and relations

More information

12 Abstract Data Types

12 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 information

CSCE 321/3201 Analysis and Design of Algorithms. Prof. Amr Goneid. Fall 2016

CSCE 321/3201 Analysis and Design of Algorithms. Prof. Amr Goneid. Fall 2016 CSCE 321/3201 Analysis and Design of Algorithms Prof. Amr Goneid Fall 2016 CSCE 321/3201 Analysis and Design of Algorithms Prof. Amr Goneid Course Resources Instructor: Prof. Amr Goneid E-mail: goneid@aucegypt.edu

More information

GRAPHS Lecture 19 CS2110 Spring 2013

GRAPHS Lecture 19 CS2110 Spring 2013 GRAPHS Lecture 19 CS2110 Spring 2013 Announcements 2 Prelim 2: Two and a half weeks from now Tuesday, April16, 7:30-9pm, Statler Exam conflicts? We need to hear about them and can arrange a makeup It would

More information

Course goals. exposure to another language. knowledge of specific data structures. impact of DS design & implementation on program performance

Course goals. exposure to another language. knowledge of specific data structures. impact of DS design & implementation on program performance Course goals exposure to another language C++ Object-oriented principles knowledge of specific data structures lists, stacks & queues, priority queues, dynamic dictionaries, graphs impact of DS design

More information

CISC 3130 Data Structures Fall 2018

CISC 3130 Data Structures Fall 2018 CISC 3130 Data Structures Fall 2018 Instructor: Ari Mermelstein Email address for questions: mermelstein AT sci DOT brooklyn DOT cuny DOT edu Email address for homework submissions: mermelstein DOT homework

More information

CSC Design and Analysis of Algorithms. Lecture 4 Brute Force, Exhaustive Search, Graph Traversal Algorithms. Brute-Force Approach

CSC Design and Analysis of Algorithms. Lecture 4 Brute Force, Exhaustive Search, Graph Traversal Algorithms. Brute-Force Approach CSC 8301- Design and Analysis of Algorithms Lecture 4 Brute Force, Exhaustive Search, Graph Traversal Algorithms Brute-Force Approach Brute force is a straightforward approach to solving a problem, usually

More information

Search Slide 1/28. Search. Fall Semester. Artificial Intelligence

Search Slide 1/28. Search. Fall Semester. Artificial Intelligence Search Slide 1/28 Search Fall Semester Search Slide 2/28 Topic Outline Statement of the Problem Input Output Examples Graph Traversals Depth-first Recursion Breadth-first FIFO queue Tracing Step-by-Step

More information

Trees Algorhyme by Radia Perlman

Trees Algorhyme by Radia Perlman Algorhyme by Radia Perlman I think that I shall never see A graph more lovely than a tree. A tree whose crucial property Is loop-free connectivity. A tree which must be sure to span. So packets can reach

More information

8. Write an example for expression tree. [A/M 10] (A+B)*((C-D)/(E^F))

8. 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 information

Course Review for Finals. Cpt S 223 Fall 2008

Course Review for Finals. Cpt S 223 Fall 2008 Course Review for Finals Cpt S 223 Fall 2008 1 Course Overview Introduction to advanced data structures Algorithmic asymptotic analysis Programming data structures Program design based on performance i.e.,

More information

AP Computer Science 4325

AP Computer Science 4325 4325 Instructional Unit Algorithm Design Techniques -divide-and-conquer The students will be -Decide whether an algorithm -classroom discussion -backtracking able to classify uses divide-and-conquer, -worksheets

More information

COMP251: Algorithms and Data Structures. Jérôme Waldispühl School of Computer Science McGill University

COMP251: Algorithms and Data Structures. Jérôme Waldispühl School of Computer Science McGill University COMP251: Algorithms and Data Structures Jérôme Waldispühl School of Computer Science McGill University About Me Jérôme Waldispühl Associate Professor of Computer Science I am conducting research in Bioinformatics

More information

COSC 2007 Data Structures II Final Exam. Part 1: multiple choice (1 mark each, total 30 marks, circle the correct answer)

COSC 2007 Data Structures II Final Exam. Part 1: multiple choice (1 mark each, total 30 marks, circle the correct answer) COSC 2007 Data Structures II Final Exam Thursday, April 13 th, 2006 This is a closed book and closed notes exam. There are total 3 parts. Please answer the questions in the provided space and use back

More information

Graphs - II CS 2110, Spring 2016

Graphs - II CS 2110, Spring 2016 Graphs - II CS, Spring Where did David leave that book? http://www.geahvet.com Where did David leave that book? Where did David leave that book? http://www.geahvet.com Go as far down a path as possible

More information

DYNAMIC MEMORY ALLOCATION AND DEALLOCATION

DYNAMIC MEMORY ALLOCATION AND DEALLOCATION COURSE TITLE DATA STRUCTURE DETAILED SYLLABUS SR.NO NAME OF CHAPTERS & DETAILS HOURS ALLOTTED 1 USER DEFINED DATATYPE /STRUCTURE About structure Defining structure Accessing structure element Array of

More information

For a printable form of this assignment: assignment3.pdf. Assignment 3: Binary trees

For a printable form of this assignment: assignment3.pdf. Assignment 3: Binary trees COP 4530/CGS5425: Data Structures, Algorithms, and Generic Programming Florida State University, Dept. of Comp. Sci., Fall 2006 Instructor: Breno de Medeiros TA: Ling Toh For a printable form of this assignment:

More information

CS 206 Introduction to Computer Science II

CS 206 Introduction to Computer Science II CS 206 Introduction to Computer Science II 04 / 06 / 2018 Instructor: Michael Eckmann Today s Topics Questions? Comments? Graphs Definition Terminology two ways to represent edges in implementation traversals

More information

Graphs - II. Announcements. Where did I leave that book? Where did I leave that book? Where did I leave that book? CS 2110, Fall 2016

Graphs - II. Announcements. Where did I leave that book? Where did I leave that book? Where did I leave that book? CS 2110, Fall 2016 Graphs - II CS, Fall Announcements A will be available tonight or tomorrow. Gries lunch canceled today Gries office hours today from to only Q. Why do programmers confuse Halloween and Christmas? Answer.

More information

Homework Assignment #3 Graph

Homework Assignment #3 Graph CISC 4080 Computer Algorithms Spring, 2019 Homework Assignment #3 Graph Some of the problems are adapted from problems in the book Introduction to Algorithms by Cormen, Leiserson and Rivest, and some are

More information

Graphs. Tessema M. Mengistu Department of Computer Science Southern Illinois University Carbondale Room - Faner 3131

Graphs. Tessema M. Mengistu Department of Computer Science Southern Illinois University Carbondale Room - Faner 3131 Graphs Tessema M. Mengistu Department of Computer Science Southern Illinois University Carbondale tessema.mengistu@siu.edu Room - Faner 3131 1 Outline Introduction to Graphs Graph Traversals Finding a

More information

Introduction to Data Structures

Introduction to Data Structures 15-121 Introduction to Data Structures Lecture #1 Introduction 28 August 2019 Margaret Reid-Miller Today Course Administration Overview of Course A (very basic) Java introduction Course website: www.cs.cmu.edu/~mrmiller/15-121

More information

* Due 11:59pm on Sunday 10/4 for Monday lab and Tuesday 10/6 Wednesday Lab

* Due 11:59pm on Sunday 10/4 for Monday lab and Tuesday 10/6 Wednesday Lab ===Lab Info=== *100 points * Due 11:59pm on Sunday 10/4 for Monday lab and Tuesday 10/6 Wednesday Lab ==Assignment== In this assignment you will work on designing a class for a binary search tree. You

More information

PROGRAMMING IN C++ (Regulation 2008) Answer ALL questions PART A (10 2 = 20 Marks) PART B (5 16 = 80 Marks) function? (8)

PROGRAMMING IN C++ (Regulation 2008) Answer ALL questions PART A (10 2 = 20 Marks) PART B (5 16 = 80 Marks) function? (8) B.E./B.Tech. DEGREE EXAMINATION, NOVEMBER/DECEMBER 2009 EC 2202 DATA STRUCTURES AND OBJECT ORIENTED Time: Three hours PROGRAMMING IN C++ Answer ALL questions Maximum: 100 Marks 1. When do we declare a

More information

CS 206 Introduction to Computer Science II

CS 206 Introduction to Computer Science II CS 206 Introduction to Computer Science II 01 / 21 / 2015 Instructor: Michael Eckmann Today s Topics Introduction of myself Review the syllabus List of Topics we'll cover Start Java review Who is your

More information

University of Illinois at Urbana-Champaign Department of Computer Science. Final Examination

University of Illinois at Urbana-Champaign Department of Computer Science. Final Examination University of Illinois at Urbana-Champaign Department of Computer Science Final Examination CS 225 Data Structures and Software Principles Spring 2010 7-10p, Wednesday, May 12 Name: NetID: Lab Section

More information

Announcements. Assignment 6 due right now. Assignment 7 (FacePamphlet) out, due next Friday, March 16 at 3:15PM

Announcements. Assignment 6 due right now. Assignment 7 (FacePamphlet) out, due next Friday, March 16 at 3:15PM Graphs and Networks Announcements Assignment 6 due right now. Assignment 7 (FacePamphlet) out, due next Friday, March 6 at 3:5PM Build your own social network! No late days may be used. YEAH hours tonight

More information

Friday, March 30. Last time we were talking about traversal of a rooted ordered tree, having defined preorder traversal. We will continue from there.

Friday, March 30. Last time we were talking about traversal of a rooted ordered tree, having defined preorder traversal. We will continue from there. Friday, March 30 Last time we were talking about traversal of a rooted ordered tree, having defined preorder traversal. We will continue from there. Postorder traversal (recursive definition) If T consists

More information

Course Review. Cpt S 223 Fall 2009

Course Review. Cpt S 223 Fall 2009 Course Review Cpt S 223 Fall 2009 1 Final Exam When: Tuesday (12/15) 8-10am Where: in class Closed book, closed notes Comprehensive Material for preparation: Lecture slides & class notes Homeworks & program

More information

Algorithms: Lecture 10. Chalmers University of Technology

Algorithms: Lecture 10. Chalmers University of Technology Algorithms: Lecture 10 Chalmers University of Technology Today s Topics Basic Definitions Path, Cycle, Tree, Connectivity, etc. Graph Traversal Depth First Search Breadth First Search Testing Bipartatiness

More information

7.1 Introduction. A (free) tree T is A simple graph such that for every pair of vertices v and w there is a unique path from v to w

7.1 Introduction. A (free) tree T is A simple graph such that for every pair of vertices v and w there is a unique path from v to w Chapter 7 Trees 7.1 Introduction A (free) tree T is A simple graph such that for every pair of vertices v and w there is a unique path from v to w Tree Terminology Parent Ancestor Child Descendant Siblings

More information

(Refer Slide Time: 02.06)

(Refer Slide Time: 02.06) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 27 Depth First Search (DFS) Today we are going to be talking

More information

Course Name: B.Tech. 3 th Sem. No of hours allotted to complete the syllabi: 44 Hours No of hours allotted per week: 3 Hours. Planned.

Course Name: B.Tech. 3 th Sem. No of hours allotted to complete the syllabi: 44 Hours No of hours allotted per week: 3 Hours. Planned. Course Name: B.Tech. 3 th Sem. Subject: Data Structures No of hours allotted to complete the syllabi: 44 Hours No of hours allotted per week: 3 Hours Paper Code: ETCS-209 Topic Details No of Hours Planned

More information

Computer Science 1 Study Union Practice Problems. What are the arguments to malloc? calloc? realloc? What do they do?

Computer Science 1 Study Union Practice Problems. What are the arguments to malloc? calloc? realloc? What do they do? Study Union Review Jacob Cornett 1 Computer Science 1 Study Union Practice Problems!This may not be a comprehensive review of everything that will be on your exam and we may go over more during the session.

More information

Announcements. Homework 1: Search. Project 1: Search. Midterm date and time has been set:

Announcements. Homework 1: Search. Project 1: Search. Midterm date and time has been set: Announcements Homework 1: Search Has been released! Due Monday, 2/1, at 11:59pm. On edx online, instant grading, submit as often as you like. Project 1: Search Has been released! Due Friday 2/5 at 5pm.

More information

The ADT priority queue Orders its items by a priority value The first item removed is the one having the highest priority value

The ADT priority queue Orders its items by a priority value The first item removed is the one having the highest priority value The ADT priority queue Orders its items by a priority value The first item removed is the one having the highest priority value 1 Possible implementations Sorted linear implementations o Appropriate if

More information

CMSC132, Practice Questions

CMSC132, Practice Questions CMSC132, Practice Questions Notice the final exam can include material not covered by the practice questions. You should practice beyond what is covered in this document. Although solutions will not be

More information

Lecture 26: Graphs: Traversal (Part 1)

Lecture 26: Graphs: Traversal (Part 1) CS8 Integrated Introduction to Computer Science Fisler, Nelson Lecture 6: Graphs: Traversal (Part ) 0:00 AM, Apr, 08 Contents Introduction. Definitions........................................... Representations.......................................

More information

Homework 2. Sample Solution. Due Date: Thursday, May 31, 11:59 pm

Homework 2. Sample Solution. Due Date: Thursday, May 31, 11:59 pm Homework Sample Solution Due Date: Thursday, May 31, 11:59 pm Directions: Your solutions should be typed and submitted as a single pdf on Gradescope by the due date. L A TEX is preferred but not required.

More information

Lecture 9 Graph Traversal

Lecture 9 Graph Traversal Lecture 9 Graph Traversal Euiseong Seo (euiseong@skku.edu) SWE00: Principles in Programming Spring 0 Euiseong Seo (euiseong@skku.edu) Need for Graphs One of unifying themes of computer science Closely

More information

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus 1. Course Objectives Welcome to MET CS342 Data Structures with Java. The intent of this

More information

The goal of this assignment is to implement and test Breadth-first search (BFS) on a simple navigation problem (path-finding).

The goal of this assignment is to implement and test Breadth-first search (BFS) on a simple navigation problem (path-finding). CSCE 420 Programing Assignment #1 due: Thurs, Sept 18 (by start of class) Objective The goal of this assignment is to implement and test Breadth-first search (BFS) on a simple navigation problem (path-finding).

More information

Trees : Part 1. Section 4.1. Theory and Terminology. A Tree? A Tree? Theory and Terminology. Theory and Terminology

Trees : Part 1. Section 4.1. Theory and Terminology. A Tree? A Tree? Theory and Terminology. Theory and Terminology Trees : Part Section. () (2) Preorder, Postorder and Levelorder Traversals Definition: A tree is a connected graph with no cycles Consequences: Between any two vertices, there is exactly one unique path

More information

A6-R3: DATA STRUCTURE THROUGH C LANGUAGE

A6-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 information

This is a set of practice questions for the final for CS16. The actual exam will consist of problems that are quite similar to those you have

This is a set of practice questions for the final for CS16. The actual exam will consist of problems that are quite similar to those you have This is a set of practice questions for the final for CS16. The actual exam will consist of problems that are quite similar to those you have encountered on homeworks, the midterm, and on this practice

More information

Data Structure Advanced

Data Structure Advanced Data Structure Advanced 1. Is it possible to find a loop in a Linked list? a. Possilbe at O(n) b. Not possible c. Possible at O(n^2) only d. Depends on the position of loop Solution: a. Possible at O(n)

More information

York University AK/ITEC INTRODUCTION TO DATA STRUCTURES. Final Sample II. Examiner: S. Chen Duration: Three hours

York University AK/ITEC INTRODUCTION TO DATA STRUCTURES. Final Sample II. Examiner: S. Chen Duration: Three hours York University AK/ITEC 262 3. INTRODUCTION TO DATA STRUCTURES Final Sample II Examiner: S. Chen Duration: Three hours This exam is closed textbook(s) and closed notes. Use of any electronic device (e.g.

More information

Computer Science E-22 Practice Final Exam

Computer Science E-22 Practice Final Exam name Computer Science E-22 This exam consists of three parts. Part I has 10 multiple-choice questions that you must complete. Part II consists of 4 multi-part problems, of which you must complete 3, and

More information

Prelim 2 Solution. CS 2110, November 19, 2015, 5:30 PM Total. Sorting Invariants Max Score Grader

Prelim 2 Solution. CS 2110, November 19, 2015, 5:30 PM Total. Sorting Invariants Max Score Grader Prelim 2 CS 2110, November 19, 2015, 5:30 PM 1 2 3 4 5 6 Total Question True Short Complexity Searching Trees Graphs False Answer Sorting Invariants Max 20 15 13 14 17 21 100 Score Grader The exam is closed

More information

CSE 373 OCTOBER 11 TH TRAVERSALS AND AVL

CSE 373 OCTOBER 11 TH TRAVERSALS AND AVL CSE 373 OCTOBER 11 TH TRAVERSALS AND AVL MINUTIAE Feedback for P1p1 should have gone out before class Grades on canvas tonight Emails went to the student who submitted the assignment If you did not receive

More information

Prelim 2. CS 2110, 16 November 2017, 7:30 PM Total Question Name Short Heaps Tree Collections Sorting Graph

Prelim 2. CS 2110, 16 November 2017, 7:30 PM Total Question Name Short Heaps Tree Collections Sorting Graph Prelim 2 CS 2110, 16 November 2017, 7:30 PM 1 2 3 4 5 6 7 Total Question Name Short Heaps Tree Collections Sorting Graph answer Max 1 18 10 25 10 16 20 100 Score Grader The exam is closed book and closed

More information

CS2013 Course Syllabus Spring 2018 Lecture: Mon/Wed 2:00 P.M. 2:50 P.M. SH C259 Lab: Mon/Wed 2:50 P.M. 4:00 P.M. SH C259

CS2013 Course Syllabus Spring 2018 Lecture: Mon/Wed 2:00 P.M. 2:50 P.M. SH C259 Lab: Mon/Wed 2:50 P.M. 4:00 P.M. SH C259 CS2013 Course Syllabus Spring 2018 Lecture: Mon/Wed 2:00 P.M. 2:50 P.M. SH C259 Lab: Mon/Wed 2:50 P.M. 4:00 P.M. SH C259 Instructor Course name Credits Contact hours Text book Course Information Course

More information

CSE 373 Final Exam 3/14/06 Sample Solution

CSE 373 Final Exam 3/14/06 Sample Solution Question 1. (6 points) A priority queue is a data structure that supports storing a set of values, each of which has an associated key. Each key-value pair is an entry in the priority queue. The basic

More information

D. Θ nlogn ( ) D. Ο. ). Which of the following is not necessarily true? . Which of the following cannot be shown as an improvement? D.

D. Θ nlogn ( ) D. Ο. ). Which of the following is not necessarily true? . Which of the following cannot be shown as an improvement? D. CSE 0 Name Test Fall 00 Last Digits of Mav ID # Multiple Choice. Write your answer to the LEFT of each problem. points each. The time to convert an array, with priorities stored at subscripts through n,

More information

End-Term Examination Second Semester [MCA] MAY-JUNE 2006

End-Term Examination Second Semester [MCA] MAY-JUNE 2006 (Please write your Roll No. immediately) Roll No. Paper Code: MCA-102 End-Term Examination Second Semester [MCA] MAY-JUNE 2006 Subject: Data Structure Time: 3 Hours Maximum Marks: 60 Note: Question 1.

More information

(Re)Introduction to Graphs and Some Algorithms

(Re)Introduction to Graphs and Some Algorithms (Re)Introduction to Graphs and Some Algorithms Graph Terminology (I) A graph is defined by a set of vertices V and a set of edges E. The edge set must work over the defined vertices in the vertex set.

More information

Breadth First Search. cse2011 section 13.3 of textbook

Breadth First Search. cse2011 section 13.3 of textbook Breadth irst Search cse section. of textbook Graph raversal (.) Application example Given a graph representation and a vertex s in the graph, find all paths from s to the other vertices. wo common graph

More information