Question
/************************************************************************* * Compilation: javac ArrayST.java * Execution: java ArrayST < input.txt * Dependencies: StdIn.java StdOut.java * Data files: http://algs4.cs.princeton.edu/31elementary/tinyST.txt * * * Symbol table implementation
/*************************************************************************
* Compilation: javac ArrayST.java
* Execution: java ArrayST < input.txt
* Dependencies: StdIn.java StdOut.java
* Data files: http://algs4.cs.princeton.edu/31elementary/tinyST.txt
*
*
* Symbol table implementation with unordered array.
*
* % java ArrayST < tiny.txt
* S 0
* H 5
* X 7
* R 3
* C 4
* L 11
* A 8
* M 9
* P 10
* E 12
*
*************************************************************************/
import java.util.*;
public class ArrayST
private static final int INIT_SIZE = 8;
private Value[] vals; // symbol table values
private Key[] keys; // symbol table keys
private int N = 0; // number of elements in symbol table
public ArrayST() {
keys = (Key[]) new Object[INIT_SIZE];
vals = (Value[]) new Object[INIT_SIZE];
}
// return the number of key-value pairs in the symbol table
public int size() {
return N;
}
// is the symbol table empty?
public boolean isEmpty() {
return size() == 0;
}
// resize the parallel arrays to the given capacity
private void resize(int capacity) {
Key[] tempk = (Key[]) new Object[capacity];
Value[] tempv = (Value[]) new Object[capacity];
for (int i = 0; i < N; i++)
tempk[i] = keys[i];
for (int i = 0; i < N; i++)
tempv[i] = vals[i];
keys = tempk;
vals = tempv;
}
// insert the key-value pair into the symbol table
public void put(Key key, Value val) {
// to deal with duplicates
delete(key);
//resizing array
if(N>=vals.length)
resize(2*N);
// add new key and value at the end of array
vals[N] = val;
keys[N] = key;
N++;
}
public Value get(Key key) {
for (int i = 0; i < N; i++)
if (keys[i].equals(key))
return vals[i];
return null;
}
public Iterable
Queue
for (int i = 0; i < N; i++)
queue.enqueue(keys[i]);
return queue;
}
// remove given key (and associated value)
public void delete(Key key) {
for (int i = 0; i < N; i++) {
if (key.equals(keys[i])) {
keys[i] = keys[N - 1];
vals[i] = vals[N - 1];
keys[N - 1] = null;
vals[N - 1] = null;
N--;
return;
}
}
}
/***********************************************************************
*
* Test routine.
*
**********************************************************************/
public static void main(String[] args) {
ArrayST
for (int i = 0; !StdIn.isEmpty(); i++) {
String key = StdIn.readString();
st.put(key, i);
}
for (String s : st.keys())
StdOut.println(s + " " + st.get(s));
}
}
My question is- from this code how do you enter the input? I have all the dependency files there but I am still getting errors & its not out putting anything. Please help.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started