
(Revising Listing 19.1) Revise the GenericStack class in Listing 19.1 to implement it using an array rather than an ArrayList. You should check the array size before adding a new element to the stack. If the array is full, create a new array that doubles the current array size and copy the elements front the current array to the new array.

Revising Listing 19.1
Program Plan:
- Define the class named “GenericStack<E>”.
- Declare appropriate variables to program.
- Define constructors “GenericStack()” which assigns initial size of stack and “GenericStack(initialCapaciy)” which assigns size of the stack.
- Define a method “push()” which pass “E o” as parameter.
- Using “if” condition, check the value of “N” greater than “elements.length”.
- Assign size of new array.
- Copy old array into new array.
- Return array elements.
- Using “if” condition, check the value of “N” greater than “elements.length”.
- Define a method “pop()” which pop out stack elements.
- Return array elements.
- Define a method “peek()” which returns top of the stack.
- Define a method “isEmpty()” which returns “0”.
- Define a method “getSize()” which returns size of the stack.
- Define the main method.
- Declare the GenericStack object “obj”, using the object insert elements into stack.
- Using “while” loop, print the elements on screen.
The following JAVA code is to revise the “GenericStack” class which implements array rather than an “ArrayList”.
Explanation of Solution
Program:
//Class definition
class GenericStack<E>
{
/*Declaration of variables*/
public final static int INITIAL_SIZE = 16;
private E[] elements;
private int N;
/*Construct a stack with the default initial capacity */
public GenericStack()
{
//Assign initial size
this(INITIAL_SIZE);
}
/*Construct a stack with the specified initial capacity */
public GenericStack(int initialCapacity)
{
//Assign size
elements = (E[])new Object[initialCapacity];
}
/*Push a new element into the top of the stack */
public E push(E o)
{
//Condition
if (N >= elements.length)
{
//Assign array size into variable "t"
E[] t = (E[])new Object[elements.length * 2];
//Copy array elements
System.arraycopy(elements, 0, t, 0, elements.length);
//Assign "t" into "elements"
elements = t;
}
//Return statement
return elements[N++] = o;
}
/*Return and remove the top element from the stack*/
public E pop()
{
//Return statement
return elements[--N];
}
/*Return the top element from the stack */
public E peek()
{
//Return statement
return elements[N - 1];
}
/*Function definition to check empty*/
public boolean isEmpty()
{
//Return statement
return N == 0;
}
/*Return the number of elements in the stack */
public int getSize()
{
//Return statement
return N;
}
//Main method
public static void main(String[] args)
{
//Assign object to "GenericStack"
GenericStack<String> obj = new GenericStack<>();
//Push elements into stack
obj.push("London");
obj.push("Paris");
obj.push("Berlin");
//Print elements
System.out.print("Stack 1: ");
//Loop
while (!obj.isEmpty())
{
//Print statement
System.out.print(obj.pop() + " ");
}
//Print statement
System.out.println("\n");
}
}
Stack 1: Berlin Paris London
Want to see more full solutions like this?
Chapter 19 Solutions
Introduction to Java Programming and Data Structures Comprehensive Version (11th Edition)
Additional Engineering Textbook Solutions
INTERNATIONAL EDITION---Engineering Mechanics: Statics, 14th edition (SI unit)
Introduction To Programming Using Visual Basic (11th Edition)
Mechanics of Materials (10th Edition)
Java: An Introduction to Problem Solving and Programming (8th Edition)
Web Development and Design Foundations with HTML5 (8th Edition)
Starting Out with Python (4th Edition)
- From MATLAB Calculate the following scalars, matrices and vectors, using the matrices from problem 5. Outputs of the commands are required. (mean, sum, det, find, transpose (aka the apostrophe operator)arrow_forwardModify the car purchase algorithm presented in class (on Chapter 1's slide set) so that the gasprice is no longer a constant, but instead it is subjected to an inflation of 5% yearly. Run thealgorithm and tabulate the costs year by year. (No need to program in C++ for this problemunless you really want to. You can use a spreadsheet or hand calculations.) Which car is abetter deal and by how much? Explain your algorithm welll.arrow_forwardProblem 12. Consider the following grammar: <S> → a <S> c <B> | <A> | b <A> → c <A> | c <B> → d | <A> Which of the following sentences are in the language generated by this grammar? a. abcd b. acccbd c. acccbcc d. acd e. acccarrow_forward
- Problem 6. Using the grammar in Example 3.2, show a parse tree and a leftmost derivation for each of the following statements: a. A = A * (B + (C * A))arrow_forwardProblem 8. Prove that the following grammar is ambiguous: <S> → <A> <A> → <A> + <A> | <id> <id> → a | b | carrow_forward1 Mark for Review Consider the following class declaration. public class Sample { private int a; private double b; public Sample (int x, double y) { } a = x; b = yi } // No other constructors The following method appears in a class other than Sample. public static void test() { Sample object = new /* missing constructor call */ ; } APC Which of the following could be used to replace /* missing constructor call */ so that the method will compile without error? Highlights &arrow_forward
- Consider the following class definition public class Bird private String species; private String color; private boolean canFly; public Bird(String str, String col, boolean ef) ' species str; color col; cantly cf; Autosaved at: 20:39:18 Mark for Review Which of the following constructors, if added to the Bird class, will cause a compilation error? public Bird() ' species "unknown"; color "unknown"; canFly false; public Bird(String col, String str). species str; color col; cantly false; public Bird (boolean ef, String str, String col) { species str color col; canFlyef; public Bird(String col, String str, boolean ef) > species str; color col; cantly ef; (0)arrow_forwardProblem A Add the 8-bit 2's-complement integer 01111111 to the 6-bit 2's-complement integer 011111. Sign-extend the 6-bit number to 8 bits. Add in binary and write the 8-bit result. State whether overflow occurred and how you know. Give the equivalent base-10 problem and result. Problem B Add the 7-bit 2's-complement integer 1010010 to the 5-bit 2's-complement integer 01110. Sign-extend the 5-bit number to 7 bits. Add in binary and write the 7-bit result. State whether overflow occurred and how you know. Give the equivalent base-10 problem and result. Problem C Add the 7-bit 2's-complement integer 1001110 to the 6-bit 2's-complement integer 100100. Sign-extend the 6-bit number to 7 bits. Add in binary and write the 7-bit result. State whether overflow occurred and how you know. Give the equivalent base-10 problem and result.arrow_forwardNeed help with python! It wont output right. and any alterations break the code.So I have the code done below but I dont know how to have it output a certain way.Expected output:Enter your name: PhilIn text name is: P h i lIn ASCII decimal: 80 104 105 108 In ASCII binary: 01010000 01101000 01101001 01101100Enter your age: 71As a string "71": 7 1In ASCII decimal: 55 49In ASCII binary: 0110111 0110001As an int variable: 71In numeric binary: 1000111Code (need help here): print(f"\nName: {name}")# Loop through each letter:for letter in name: ascii_val = ord(letter) # decimal ASCII binary_val = format(ascii_val, '08b') # 8-bit binaryprint("Character")print(f"{letter:9}")print("ASCII Decimal")print(f"{ascii_val:13}")print("ASCII Binary")print(f"{binary_val}") # ageage_str = input("\nEnter your age: ")age_int = int(age_str)print(f"\nAge as string: {age_str}")print(f"Age as int: {age_int}")print(f"Age in ASCII (per digit):")for digit in age_str: ascii_val = ord(digit)…arrow_forward
- Need help with python code!Issue with having to enter name, then give me the text, ASCII decimal/binary of my name. And below same thing but with age (as string, decimal, binary, int variable, and number binary)Code: #Bob in ASCII binary is 6611198name = "Bob" # Assign a variable letter = "A"#print(f"{name} in ASCII binary is ",end="")for letter in name: print(f"{letter>7} ",end="") print()for letter in name: asciiLetter = ord(letter) #Use the ord function to get the decicmal ASCII of letter. print(f'{asciiLetter:b} ', end="")arrow_forwardHW #2. Data Representation - Part 2 - Complement, Addition, and Subtraction 1. Using five bits to represent each number, write the representations of 9 and -9 in 1's complement, signed magnitude, and 2's complement integers. 2. Write the six-bit 2's complement representation of -27. 3. Convert the following decimal numbers to 12 bit 2's complement: a. -145 b. 1025 c. -1536 d. 1729 e. -999 4. Convert the following 2's complement binary numbers to decimal. a. 1010 b. 0101 c. 10010110 d. 0111010010110011 5. Convert the following decimal numbers to binary 4-bit 2's complement representations or explain why the conversion is not possible. a. 5 b. -7 c. 8 d. -12 e. -1 f. 7f. 14 6. Answer the following questions: a. What is the largest positive number one can represent in a 12-bit 2's complement code? Write your result in binary and decimal. b. What is the greatest magnitude negative number one can represent in a 12-bit 2's complement code? Write your result in binary and decimal. c. What is…arrow_forward3. Examine the pseudocode below, then find and correct all the bugs. // A high school is holding a recycling competition, and this program // allows a user to enter a student's year in school (1 through 4) and // number of cans collected for recycling. Data is entered continuously // until the user enters a 9 for the year. After headings, output is four // lines -- one for each school year class. Find and fix all bugs. start Declarations num year num cans num SIZE = 0 num QUIT = “999” num collectedArray[SIZE] = 0, 0, 0 string HEAD1 = "Can Recycling Report" string HEAD2 = "Year Cans Collected” output "Enter year of student or ", QUIT, " to quit " output year while year not QUIT output "Enter number of cans collected " input cans collectedArray[year] = collectedArray[year] + cans output "Enter year of student or ", QUIT, " to quit " output year endwhile output HEAD1 and HEAD2 year = 1 while year <…arrow_forward
- C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage LearningProgramming Logic & Design ComprehensiveComputer ScienceISBN:9781337669405Author:FARRELLPublisher:CengageEBK JAVA PROGRAMMINGComputer ScienceISBN:9781337671385Author:FARRELLPublisher:CENGAGE LEARNING - CONSIGNMENT
- New Perspectives on HTML5, CSS3, and JavaScriptComputer ScienceISBN:9781305503922Author:Patrick M. CareyPublisher:Cengage LearningProgramming with Microsoft Visual Basic 2017Computer ScienceISBN:9781337102124Author:Diane ZakPublisher:Cengage LearningSystems ArchitectureComputer ScienceISBN:9781305080195Author:Stephen D. BurdPublisher:Cengage Learning




