讲解:Algorithms、C++、C++、graph algorithmsC/C++|Matlab

Assignment 2 - Algorithms on DirectedGraphsOverviewYou task is to code a small collection of graph algorithms: Shortest paths. DAG testing. DAG Hamiltonian path testing. Connected component search. Strongly connected component search. Topological Sort.These will use the directed graph from assignment 1 (or rather, a modified,definitely working version of it).The CodeYou are provided with a number of C++ files, the one you will be assessed on isdirected_graph_algorithms.cpp. The six methods present in the skeleton arethe entry point for the tests. To support this there is a directed_graph.hpp file,which includes a fully working implementation of a directed graph. Note that it issomewhat different from the assignment 1 specification, so make sure youfamiliarise yourself with it. You are also provided with a main.cpp to do anytesting you like. The run button will compile and execute main.cpp, the submitbutton will run graph_algorithms.cpp against the tests.You may modify any of these files as you see fit, as long as the tests still execute,apart from adding additional libraries, though you have an extended collection oflibraries compared to assignment 1.As with the first assignment, you should be able to complete the assignmentwithin the graph_algorithms.cpp file (though you are not restricted to this), butyou will likely need to add extra functions, perhaps extra classes, so on and soforth.In a folder you can also view the testing code. This is not the copy that isexecuted, its just there for your edification. If any bugs or mistakes in the tests are discovered, the actual tests may be altered, so the code here should only betaken as a guide (hopefully a good guide, but nonetheless).The AlgorithmsAs mentioned in the overview, you are to implement six graph based algorithms.In rough order of difficulty, they are:1. Shortest paths.2. DAG testing.3. DAG Hamiltonian path testing.4. Topological Sort.5. Connected component search.6. Strongly connected component search.This ordering may vary quite a bit, depending on how you approach the problemshowever, so take some time to think carefully how you will solve each one. Asthese are described in the lectures, I will not add additional clutter here abouttheir function or details (but you can of course as questions).Functionality will be marked exclusively by the tests, and constitutes 70% of thetotal mark (note that the marks for the tests add up to 70 - so they give you thepercentage you will get as well).Design will be marked in your Week 12 tutorial by your tutor and constitutes 20%of the total mark. It does not depend on the functionality of your code. You mayAlgorithms留学生作业代做、C++程序设计作业调试、代写C++实验作业、代做graph algorithms作业be asked questions by your tutor to help them test your understanding of yourcode. It will be marked qualitatively against the following rubric: Pass The code shows basic understanding of how to employ datastructures to achieve a goal. The design should avoid unnecessarydata structures and should make reasonable use ofiteration and recursion when appropriate. Credit The design shows a solid understanding of data structures anddemonstrate effective use of control structures to achieve theprogram’s goals. Distinction The design shows a high degree of understanding of how touse data structures to achieve a goal efficiently, and demonstratesome evidence that the design does not use unnecessaryresources. The design should be clean and efficient. High Distinction The design demonstrates a high degree of understandingofdata structures and how to efficiently employ them to buildalgorithms that not only meet technical goals, but supportmaintenance and future development.Style will also be marked in your Week 12 tutorial by your tutor and constitutes10% of the total mark. It will be marked qualitatively against the following rubric: Pass The code mostly uses some formatting standard and is somewhatreadable. Credit The code adheres well to a formatting standard and variablesare well named. Distinction At least as well formatted as for Credit standards, along withsufficient inline commenting to explain the code. High Distinction Excellent formatting and variable naming. Excellent,judiciouslyemployed comments that explain the code without justrepeating the code.Marking ScheduleAll being well, assuming you submit before the deadline and attend your Week 12tutorial (in the class you are actually enrolled in - exceptions will only be made forcases where attendance at your enrolled tutorial is impossible), we aim to returnthe marks for the assignment within a week of the tutorial. However, we reservethe right to delay this schedule should technical problems arise.SubmissionYou will submit your work with the submit button on Ed. No other submissionswill be accepted. You are welcome to develop your code elsewhere, if that suitsyour workflow, but remember it must compile and run on Ed. We are using theg++ compiler set to C++17 standard for this assessment. However code thatcompiles with clang++ should also work with g++ (unless youre doing somethingweird - so check first!).Due DateThe assignment is due before midnight (11:59PM) on the Sunday of Week 11,which should be the 31st of May.Plagiarism CheckingAll code will be checked for student misconduct and plagiarism using specialisedcode similarity detection software.转自:http://www.3daixie.com/contents/11/3444.html

你可能感兴趣的:(讲解:Algorithms、C++、C++、graph algorithmsC/C++|Matlab)