inserting a new book into each list using the respective LinkedListLibrary and Arr

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter18: Stacks And Queues
Section: Chapter Questions
Problem 16PE: The implementation of a queue in an array, as given in this chapter, uses the variable count to...
icon
Related questions
Question
100%

Two sorted lists have been created, one implemented using a linked list (LinkedListLibrary linkedListLibrary) and the other implemented using the built-in ArrayList class (ArrayListLibrary arrayListLibrary). Each list contains 100 books (title, ISBN number, author), sorted in ascending order by ISBN number.

Complete main() by inserting a new book into each list using the respective LinkedListLibrary and ArrayListLibrary insertSorted() methods and outputting the number of operations the computer must perform to insert the new book. Each insertSorted() returns the number of operations the computer performs.

Ex: If the input is:

The Catcher in the Rye 9787543321724 J.D. Salinger

the output is:

Number of linked list operations: 1 Number of ArrayList operations: 1

Errors: Library.java:87: error: class Book is public, should be declared in a file named Book.java public class Book{ ^ Book.java:1: error: duplicate class: Book public class Book{

import java.util.Scanner;
import java.io.FileInputStream;
import java.io.IOException;
public class Library {
public static void fillLibraries(LinkedListLibrary linkedListLibrary, ArrayListLibrary arrayListLibrary) throws IOException {
   FileInputStream fileByteStream = null; // File input stream
   Scanner inFS = null; // Scanner object
   int linkedListOperations = 0;
   int arrayListOperations = 0;    
  
   BookNode currNode;
   Book tempBook;

   String bookTitle;
   String bookAuthor;
   long bookISBN;
  
   // Try to open file
   fileByteStream = new FileInputStream("Books.txt");
   inFS = new Scanner(fileByteStream);

   while (inFS.hasNextLine()) {
       bookTitle = inFS.nextLine();
       bookISBN = inFS.nextLong();
       inFS.nextLine();
       bookAuthor = inFS.nextLine();

       // Insert into linked list
       currNode = new BookNode(bookTitle, bookAuthor, bookISBN);
       linkedListOperations = linkedListLibrary.insertSorted(currNode, linkedListOperations);
       linkedListLibrary.lastNode = currNode;

       // Insert into ArrayList
       tempBook = new Book(bookTitle, bookAuthor, bookISBN);
       arrayListOperations = arrayListLibrary.insertSorted(tempBook, arrayListOperations);
   }
  
   fileByteStream.close(); // close() may throw IOException if fails
   }

   public static void main (String[] args) throws IOException {
       Scanner scnr = new Scanner(System.in);
       int linkedListOperations = 0;
       int arrayListOperations = 0;
  
       // Create libraries
       LinkedListLibrary linkedListLibrary = new LinkedListLibrary();
       ArrayListLibrary arrayListLibrary = new ArrayListLibrary();
  
       // Fill libraries with 100 books
       fillLibraries(linkedListLibrary, arrayListLibrary);
  
       // Create new book to insert into libraries
       BookNode currNode;
       Book tempBook;
  
       String bookTitle;
       String bookAuthor;
       long bookISBN;
  
       bookTitle = scnr.nextLine();
       bookISBN = scnr.nextLong();
       scnr.nextLine();
       bookAuthor = scnr.nextLine();

       // Insert into linked list
       currNode = new BookNode(bookTitle, bookAuthor, bookISBN);
       // TODO
       int i = linkedListLibrary.insertSorted(currNode,0);
  
       linkedListLibrary.lastNode = currNode;
  
       // Insert into ArrayList
       tempBook = new Book(bookTitle, bookAuthor, bookISBN);
       // TODO
       int j = arrayListLibrary.insertSorted(tempBook,0);
  
       // TODO: Print number of operations for linked list
       System.out.println("Number of operations for linked list : "+i);
       // TODO: Print number of operations for ArrayList
       System.out.println("Number of operations for ArrayList : "+j);
   }
}

// Book.java

public class Book{

   private String bookTitle;
   private String bookAuthor;
   private long bookISBN;

   public Book() {
       bookTitle = "";
       bookAuthor = "";
       bookISBN = 0;
   }

   public Book(String userBookTitle, String userBookAuthor, long userBookISBN) {
       bookTitle = userBookTitle;
       bookAuthor = userBookAuthor;
       bookISBN = userBookISBN;
   }
  
   public long getBookISBN() {
       return bookISBN;
   }
  
   public void printInfo(){
       System.out.println("Title: " + bookTitle);
       System.out.println("Author: " + bookAuthor);
       System.out.println("ISBN: " + bookISBN);
   }
}

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps with 8 images

Blurred answer
Knowledge Booster
Threads in linked list
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning
EBK JAVA PROGRAMMING
EBK JAVA PROGRAMMING
Computer Science
ISBN:
9781337671385
Author:
FARRELL
Publisher:
CENGAGE LEARNING - CONSIGNMENT