Skip to main content

Krusal's Algorithm Implementation in Java with full source code

Krusal's Algorithm Introduction:

In this project you will need to implement Kruskal's algorithm. Watch the videos that I posted for a description of the algorithm. Your code should start by reading a text file that contains the edges and weights of a graph. For example, this graph:


will be described in a text file that looks like:
A,1,B,2,D,2,F
B,1,A,1,C,2,D
C,1,B,1,D,3,E
E,3,C,2,D,1,G
G,1,E,3,D,3,F
F,1,D,3,G,2,A
D,2,A,2,B,1,C,2,E,3,G,1,F

Krusal's Algorithm Implementation:

The second line for example (B,1,A,1,C,2,D) means that the B is connected to A with weight 1; B is connected to C with weight 1, and B is connected to D with weight 2.
Start by creating an Edge class that will have node1 (String), node2 (String), and weight (int) 
Then, read the text file line by line; for each line, loop through the edges and create an Edge object for each edge. Add that edge to an array of Edges
Sort that array according to their weights; you can use Arrays.sort()

Sorting used in Krusal's Algorithm:

After sorting all the edges, you need loop through them (starting at smallest weight) and for each edge check the root of node1 and node2 (using function "findRoot" that you will have to implement); if the two roots are the same, do not print that edge and go to next edge; if the two roots are different, print the edge (C,1,B for example), make changes to the parent array, and add the weight of that edge (1) to a variable that will contain the weight of the entire minimum spanning tree, and go to next edge.

findRoot function in Krusal's Algorithm:

"findRoot" will check the dictionary (or HashMap) of the nodes and their parents (description in the video)
One thing that you would want to keep in mind is that in your array that contains all edges, you don't want to have the same edge twice; you can use an additional HashMap to check whether that edge already exists of not.

CONTACT DETAILS

For any other questions or other tasks please feel free to contact me
via email: mhassnainjamil@gmail.com
via WhatsApp: +92-324-7042178
via skype: hassnainjamil1

Comments

Popular posts from this blog

The Zoo Management System - entity relationship diagram & MS Access Database

Zoo Management System - Project Details: You are the employee of a big, worldwide working Zoo Management Company. Your company is responsible for the Zoo management. Your boss thinks it would be a great idea to store all data for each Zoo in a brand new self-developed ZOO Management System. Up to now, the ZOO management company has maps of each ZOO available. Your boss knows that you took a course in introduction on an ERP system, so he asks you if you could help designing such a system. Each ZOO must have the same organizational structure, which should look like this: Each Zoo has a Zoo-Address. Each Zoo has many visitors (Visitor Ticket Process (VTP). Many Zoo-Attractions belong to a Zoo. Module 1: Entity Relationship Diagram Design a ER (entity-relationship) diagram for your ZOO Management System. Use the information provided below with the entities and its attributes. Put the entities in the correct relationship to each other (organizational structure). Module 2: DB Implem...

Human Physiology by Stuart Ira Fox [PDF] (12th edition) free download

Sudoku Game Project in Java with full source code including GUI task

Introduction The purpose of the project is to try in practice the use of recursion and object-oriented program design. Please make sure to read this entire note before starting your work. Pay close attention to the sections on deadlines, deliverables, and exam rules. The problem Your task in this part of the project is to write a solver for Sudoku puzzles. Sudoku puzzles are a kind of crossword puzzles with numbers where the following two conditions have to be met: In each row or column, the nine numbers have to be from the set [1,2,3,4,5,6,7,8,9] and they must all be different.  For each of the nine non-overlapping 3x3 blocks, the nine numbers have to be from the set [1,2,3,4,5,6,7,8,9] and they ust all be different. The following two figures show a Sudoku puzzle and its solution. The input The input of your program, the Sudoku puzzles, is given in text files. More specifically, they are represented as nine lines of nine characters separated by spaces. The characters can be of two...