Download presentation

Presentation is loading. Please wait.

Published byTamsyn Boyd Modified over 2 years ago

1
Data Structures Using C++ 2E1 Topic of this lecture: Topological Order OU CS prerequisite bubble chart http://www.ohio.edu/engineering/eecs/undergradtools/ upload/CS-BUBBLE-CHART-October-2012.pdf

2
Data Structures Using C++ 2E

4
topologicalOrder[n-1]

5
Data Structures Using C++ 2E5 Topological Order Algorithm topological order –Outputs directed graph vertices in topological order –Assume graph has no cycles There exists a vertex v in G such that v has no successor There exists a vertex u in G such that u has no predecessor

6
Data Structures Using C++ 2E6 Topological Order (cont’d.) Topological sort algorithm –Implemented with the depth first traversal or the breadth first traversal Depth-first (stack) vs. Breadth-first (queue) Depth-first: CS 2400 2401 3610 4040 … EE1024… Breadth-first: CS 2400 EE1024 Chem 1510 Math 2301 CS 2401 …

7
Data Structures Using C++ 2E7 Breadth First Topological Ordering General algorithm: 1.Use an array predCount to record the number of predecessors (prerequisites) for each node (course) 2.For a node (course) without any predecessor (prerequisite), it can be output (taken) 3.Use a queue for breadth-first traversal (maintain the prerequisite-cleared courses).

8
8 How to initialize preCount?

9
9 How to do breadth-first traversal?

10
Data Structures Using C++ 2E10 How to do Breadth First Topological Ordering? Similar to breadth-first traversal: using a queue, but only put prerequisite-cleared items ( predCount == 0) into the queue. When an item is removed from the queue, update the predCount values for the successors predCount[CS3610] = 2 After taking CS 2400, it should be reduced by 1. After taking CS 3000, it will be become 0.

11
Data Structures Using C++ 2E Breadth First Topological Ordering

12
Data Structures Using C++ 2E12 Breadth First Topological Ordering (cont’d.) Breadth First Topological order –0 9 1 7 2 5 4 6 3 8 10 FIGURE 12-18 Arrays predCount, topologicalOrder, and queue after Steps 1 and 2 execute

13
Data Structures Using C++ 2E13 Breadth First Topological Ordering (cont’d.) Breadth First Topological order –0 9 1 7 2 5 4 6 3 8 10 FIGURE 12-19 Arrays predCount, topologicalOrder, and queue after the first iteration of Step 3

14
Data Structures Using C++ 2E14 FIGURE 12-20 Arrays predCount, topologicalOrder, and queue after the second iteration of Step 3

15
Data Structures Using C++ 2E15 FIGURE 12-21 Arrays predCount, topologicalOrder, and queue after the third iteration of Step 3

16
Data Structures Using C++ 2E16 Breadth First Topological Ordering (cont’d.) See code on pages 718-719 –Function implementing breadth first topological ordering algorithm FIGURE 12-22 Arrays predCount, topologicalOrder, and queue after Step 3 executes

17
Data Structures Using C++ 2E17 How to do Depth First Topological Ordering? Project 5 question. Use depth-first traversal with recursive calls. Find a course without successor (e.g, CS 4561) through depth-first traversal and assign it into topologicalOrder[n- 1]. When you trace back, assign topologicalOrder[n-2], [n-3]…..

18
Data Structures Using C++ 2E18 How to do Depth First Topological Ordering? A course should NOT be output (taken) until the subtrees have been visited. Decrement topIndex each time when you output a course. Assign topologicalOrder[topIndex--] at the end of recursive calls. Pre-requisites are guaranteed to be taken first.

19
Data Structures Using C++ 2E19 Depth First Topological Ordering If start at 0, dft to 10, then 10 will be put as the last element in toplogicalOrder[]; 8 will be the second last. Output:

Similar presentations

OK

Graphs Chapter 28 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved. Data Structures and Abstractions with Java, 4e Frank Carrano.

Graphs Chapter 28 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved. Data Structures and Abstractions with Java, 4e Frank Carrano.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on panel discussion presentation Ppt on guru nanak dev ji Signal generator and display ppt on ipad Ppt on unstructured data analysis Ppt on low level language Musculoskeletal system anatomy and physiology ppt on cells Download ppt on political parties class 10 Ppt on airbag working principle of air Ppt on earned value management Ppt on face recognition technology