Prim';Java中的s和Kruskal算法
我必须用Java实现Prim和Kruskal的算法,以便在给定的无向加权图中找到最小生成树。我该怎么做?实现必须至少达到O(以下是我的实现:Prim';Java中的s和Kruskal算法,java,algorithm,Java,Algorithm,我必须用Java实现Prim和Kruskal的算法,以便在给定的无向加权图中找到最小生成树。我该怎么做?实现必须至少达到O(以下是我的实现: public class Library { // Add the missing implementation to this class java.util.ArrayList<Book> books; private static String openingHours = "The Library is open
public class Library {
// Add the missing implementation to this class
java.util.ArrayList<Book> books;
private static String openingHours = "The Library is open every day from 9AM to 5PM";
private String a ddress = "";
private String[] collection = new String[10];
private int collectionCount = 0;
public Library(String libraries) {
address = libraries;
books = new java.util.ArrayList<>();
}
public
String getAddress() {
return this.address;
}
void setaddress(String address) {
this.address = address;
}
public static void printOpeningHours() {
System.out.println("Library Hours: ");
System.out.println(openingHours);
}
public void printAddress() {
System.out.println(address);
}
public void addBook(Book book) {
books.add(book);
}
public void printAvailableBooks() {
boolean bookPresent = false;
for (Book book : books) {
if (!book.isBorrowed()) {
System.out.println(book.getTitle());
bookPresent = true;
}
}
if (!bookPresent) {
System.out.println("No such book in our catalog");
}
}
private void borrowBook(String title) {
int found = 0;
for (Book book : books) {
if (book.getTitle().equals(title)) {
if (found == 0) {
found = 1;
}
if (!book.isBorrowed()) {
book.borrowed();
found = 2;
break;
};
}
}
if (found == 0) {
System.out.println("Sorry, this book is not in our catalog.");
} else if (found == 1) {
System.out.println("Sorry, this book is already borrowed.");
} else if (found == 2) {
System.out.println("You successfully borrowed " + title);
}
}
public void returnBook(String title) {
boolean found = false;
for (Book book : books) {
if (book.getTitle().equals(title) && book.isBorrowed()) {
book.returned();
found = true;
break;
}
}
if (found) {
System.out.println("You successfully returned " + title);
}
}
public static void main(String[] args) {
Library firstLibrary = new Library("Moylish Park, Limerick");
Library secondLibrary = new Library("Clare Street, Limerick");
Library thirdLibrary = new Library("Nenagh Road, Thurles");
// Add four books to the first library
firstLibrary.addBook(new Book("Java How To Program"));
firstLibrary.addBook(new Book("What's new in Java 7?"));
firstLibrary.addBook(new Book("Java in a nutshell"));
firstLibrary.addBook(new Book("Pro Android 2"));
// Print Opening hours and the addresses
Library.printOpeningHours();
System.out.println();
System.out.println("Library Addresses: ");
firstLibrary.printAddress();
secondLibrary.printAddress();
thirdLibrary.printAddress();
System.out.println();
// Print the titles of all available books from both libraries
System.out.println("Books available in the first library:");
firstLibrary.printAvailableBooks();
System.out.println();
System.out.println("Books available in the second library:");
secondLibrary.printAvailableBooks();
System.out.println();
System.out.println("Books available in the third library:");
thirdLibrary.printAvailableBooks();
System.out.println();
// Return Java How To Program
System.out.println("Returning Java How To Program");
firstLibrary.returnBook("Java How To Program");
System.out.println();
// Print the titles of available from the first library
System.out.println("Books available in the first library:");
firstLibrary.printAvailableBooks();
}
}
公共类库{
//将缺少的实现添加到此类
java.util.ArrayList书籍;
private static String openingHours=“图书馆每天从上午9点到下午5点开放”;
私有字符串a ddress=“”;
私有字符串[]集合=新字符串[10];
私有int collectionCount=0;
公共图书馆(字符串库){
地址=图书馆;
books=newjava.util.ArrayList();
}
平民的
字符串getAddress(){
返回此地址;
}
无效设置地址(字符串地址){
this.address=地址;
}
公共静态void printOpeningHours(){
System.out.println(“库时:”);
System.out.println(openingHours);
}
公共地址(){
系统输出打印项次(地址);
}
公共无效地址簿(Book Book){
图书。添加(图书);
}
公共作废打印可用电子书(){
布尔bookPresent=false;
用于(书籍:书籍){
如果(!book.isfollowed()){
System.out.println(book.getTitle());
bookPresent=true;
}
}
如果(!bookPresent){
System.out.println(“我们的目录中没有这样的书”);
}
}
私人无效借阅簿(字符串标题){
int=0;
用于(书籍:书籍){
if(book.getTitle().equals(title)){
如果(找到==0){
发现=1;
}
如果(!book.isfollowed()){
借来的书;
发现=2;
打破
};
}
}
如果(找到==0){
对不起,这本书不在我们的目录中;
}else if(found==1){
System.out.println(“对不起,这本书已经借来了。”);
}else if(found==2){
System.out.println(“您成功借用”+标题);
}
}
公开作废归还书(字符串标题){
布尔值=false;
用于(书籍:书籍){
if(book.getTitle().equals(title)和&book.isfollowed()){
返回的书();
发现=真;
打破
}
}
如果(找到){
System.out.println(“您成功返回”+标题);
}
}
公共静态void main(字符串[]args){
图书馆firstLibrary=新图书馆(“利默里克莫伊利什公园”);
第二图书馆=新图书馆(“利默里克克莱尔街”);
图书馆第三图书馆=新图书馆(“瑟尔斯奈纳路”);
//向第一个库添加四本书
addBook(新书(“Java如何编程”);
addBook(新书(“Java7有什么新功能?”);
addBook(新书(“Java简而言之”);
addBook(新书(“Pro Android 2”);
//打印办公时间和地址
Library.printOpeningHours();
System.out.println();
System.out.println(“库地址:”);
firstLibrary.printAddress();
secondLibrary.printAddress();
第三个库。printAddress();
System.out.println();
//打印两个图书馆中所有可用图书的标题
System.out.println(“第一个图书馆提供的图书:”);
firstLibrary.printAvailableBooks();
System.out.println();
System.out.println(“第二个图书馆中提供的书籍:”);
secondLibrary.printAvailableBooks();
System.out.println();
System.out.println(“第三个图书馆提供的书籍:”);
第三图书馆。可打印电子书();
System.out.println();
//返回Java如何编程
println(“返回Java如何编程”);
returnBook(“Java如何编程”);
System.out.println();
//打印第一个库中可用的标题
System.out.println(“第一个图书馆提供的图书:”);
firstLibrary.printAvailableBooks();
}
}
那么您的具体问题是什么?