Question

In: Computer Science

Make following changes. step(A) step 1 Implementation a Generic Linked List using the program developed in...

Make following changes. step(A)
step 1 Implementation a Generic Linked List using the program developed in the class.
step 2  Implement StackImpl class using the generic linked list.
step 3 Test the program with different type and number of matching and un-matching brackets.
This is how it works!
When you run the class MatchBrackets a popup dialog appears asking you to select a file. You are provided two input files in the project. input1.txt contains matching brackets and input2.txt does not match the brackets.
You can select any of these files to verify.

Then do steb(B)

step 1 Externalize the inner classes Node and ListIterator.
step 2 Make the appropriate changes to turn in the LinkedList class into a generic class.
step3 Use the one exception classes EmptyList where applicable.
step4 . Implement StackImpl class using the generic linked list.
step 5 Add test cases in the main method to demonstrate the working of your code.
. step 6 Run match bracket to check whether the brackets were matched or not.

Solutions

Expert Solution

//=======linkedList.java==================
public class linkedList<T> {
   private class node{
       public T data;
       public node next;
       public node(T data) {
           this.data=data;
           next=null;
       }
   }
   private node head;
   //__________________________
   public linkedList() {
       head=null;
   }
   //__________________________
   public boolean isEmpty() {
       return head==null;
   }
   //__________________________
   public void insertAtFront(T data) {
       node temp=new node(data);
       temp.next=head;
       head=temp;
   }
   //__________________________
   public T peek() {
       if(isEmpty())
           return null;
       return head.data;
   }
   //__________________________
   public void removeFront() {
       if(isEmpty())
           return;
       head=head.next;
   }
   //__________________________
   public String toString() {
       String result="";
       node temp=head;
       while(temp!=null) {
           result=result+temp.data+" ";
           temp=temp.next;
       }
       return result;
   }
   //__________________________
}
//=======end of linkedList.java=========
//=========StackImpl.java=============
public class StackImpl {
   private linkedList<Character> list;
   //_________________________
   public StackImpl() {
       list=new linkedList<Character>();
   }
   //________________________
   public void push(Character ch) {
       list.insertAtFront(ch);
   }
   //________________________
   public boolean isEmpty() {
       return list.isEmpty();
   }
   //________________________
   public Character top() {
       if(isEmpty())
           return null;
       return list.peek();      
   }
   //__________________________
   public void pop() {
       if(!isEmpty())
           list.removeFront();
   }
   //__________________________
   public String toString() {
       return list.toString();
   }
}
//=====end of StackImpl.java

//==========MatchBrackets.java=================
import java.util.Scanner;
import java.io.*;

public class MatchBrackets {
   //_____________________________
   public static boolean match(String expression) {
       StackImpl S=new StackImpl();
       for(int i=0;i<expression.length();i++) {
           if(expression.charAt(i)=='[')
               S.push('[');
           else if(expression.charAt(i)==']') {
               if(S.isEmpty())
                   return false;
               else if(S.top()=='[')
                   S.pop();
               else
                   return false;
           }
           else {
               return false;
           }
       }
       if(S.isEmpty()==true)
           return true;
      
       return false;
   }
   //_________main()__________________
   public static void main(String[] args) {
       try {
       String expression="";
       Scanner in=new Scanner(System.in);
       File fp;
       Scanner scr;
      
      
       System.out.println("1. input1.txt");
       System.out.println("2. input2.txt");
       System.out.print("Enter choice(1,2): ");
       int choice=in.nextInt();
      
           if(choice==1) {
               fp=new File("input1.txt");
               scr=new Scanner(fp);
               while (scr.hasNextLine()) {
                   expression=scr.nextLine();
                   System.out.println(expression+" Bracket match: "+match(expression));
               }
           }
           else if(choice==2) {
               fp=new File("input2.txt");
               scr=new Scanner(fp);
               while (scr.hasNextLine()) {
                   expression=scr.nextLine();
                   System.out.println(expression+" Bracket match: "+match(expression));
               }
              
           }else {
               System.out.println("Invalid choice!");
           }
           in.close();
       }catch(Exception e) {
           System.out.println(e);
       }
      
   }
}
//=======end of MatchBrackets.java===============
//output


Related Solutions

Create a generic Linked List that does NOT use the Java library linked list. Make sure...
Create a generic Linked List that does NOT use the Java library linked list. Make sure it contains or access a subclass named Node (also Generic). And has the methods: addFirst(), addLast(), add(), removeFirst(), removeLast() and getHead(). In a separate Java class provide a main that creates an instance of your LinkedList class that creates an instance of your LinkedList that contains String types. Add the five names (you pick them) to the list and then iterate through the list...
Using Linked List, create a Java program that does the following without using LinkedList from the...
Using Linked List, create a Java program that does the following without using LinkedList from the Java Library. and please include methods for each function. Create a menu that contains the following options : 1. Add new node at the end of LL. ( as a METHOD ) 2. Add new node at the beginning of LL. ( as a METHOD ) 3. Delete a node from the end of LL. ( as a METHOD ) 4. Delete a node...
Write a program in C++ that will make changes in the list of strings by modifying...
Write a program in C++ that will make changes in the list of strings by modifying its last element. Your program should have two functions: 1. To change the last element in the list in place. That means, without taking the last element from the list and inserting a new element with the new value. 2. To compare, you need also to write a second function that will change the last element in the list by removing it first, and...
TITLE Updating Accounts Using Doubly Linked List TOPICS Doubly Linked List DESCRIPTION General Write a program...
TITLE Updating Accounts Using Doubly Linked List TOPICS Doubly Linked List DESCRIPTION General Write a program that will update bank accounts stored in a master file using updates from a transaction file. The program will maintain accounts using a doubly linked list. The input data will consist of two text files: a master file and a transaction file. See data in Test section below.  The master file will contain only the current account data. For each account, it will contain account...
1. Adapt the custom array list implementation code with the following changes: (a) Add code to...
1. Adapt the custom array list implementation code with the following changes: (a) Add code to the ensureCapacity() method to print out a message including how many elements are copied to the new array on resizing Array List Implementation: public class MyArrayList<E> implements MyList<E> { public static final int INITIAL_CAPACITY = 16; private E[] data = (E[])new Object[INITIAL_CAPACITY]; private int size = 0; // Number of elements in the list public MyArrayList() { }    public MyArrayList(E[] objects) { for...
so the assigment is is a data strucutre using c++ to make a doubly linked list...
so the assigment is is a data strucutre using c++ to make a doubly linked list that will be able to do math mostly addition and multiplication, subratction and division is extra and would be nice. so the program is going to to open files and read them via a argumentmanager.h in a linux server try not to worry to much about this part just getting the program to work. i was able to complete part of the given code...
Java The List ADT has an interface and a linked list implementation whose source code is...
Java The List ADT has an interface and a linked list implementation whose source code is given at the bottom of this programming lab description. You are to modify the List ADT's source code by adding the method corresponding to the following UML: +hasRepeats() : boolean hasRepeats() returns true if the list has a value that occurs more than once in the list hasRepeats() returns false if no value in the list occurs more than once in the list For...
Java The List ADT has an interface and a linked list implementation whose source code is...
Java The List ADT has an interface and a linked list implementation whose source code is given at the bottom of this programming lab description. You are to modify the List ADT's source code by adding the method corresponding to the following UML: +hasRepeats() : boolean hasRepeats() returns true if the list has a value that occurs more than once in the list hasRepeats() returns false if no value in the list occurs more than once in the list For...
Create a Linked List and conduct the following operations. Portion of the program is given. The...
Create a Linked List and conduct the following operations. Portion of the program is given. The operations are: Add an “H” to the list Add an “I” to the list Add 100 to the list Print the content of the list and its size Add a “H” to the first place of the list Add a “R” to the last place of the list Get the element of position 3 and print it Get the last element and print it...
write a java program to Implement a Priority Queue using a linked list. Include a main...
write a java program to Implement a Priority Queue using a linked list. Include a main method demonstrating enqueuing and dequeuing several numbers, printing the list contents for each.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT