
(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, Student Value Edition (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)
- Blossom currently carries the following intangible assets" on its balance sheet: Trade name Patent $121.300 net of accumulated amortization of $72.780 $129.500 net of accumulated amortization of $52.300 Other intangibles $344,000 no amortization recorded Trademark $113.000 net of accumulated amortization of $28.250 $707,800 "Current year amortization has already been recorded. The following additional information is available: After recent negative press releases relating to the technology that underlies the patent, the company has carried out a recoverability test that indicates that the patent's carrying value is higher than its undiscounted future net cash flows. The patent's fair value has now been estimated at $87,300. The item classified as "Other intangibles" relates to research costs that the company incurred in the current year. According to a statement from the company's President. "The costs were incurred with the intention to gain new knowledge. At the moment we don't know…arrow_forwardInstructions This is an individual assessment - not a group assessment. AND NOT FOR GRADING PURPOSES. NOTE: The marks allocation on each bullet point below is only there to give an idea of how much the questions/instructions in bullet points would be in a real assessment. But regardless provide accurate report that will not have high plagiarism. Write a report which addresses the following: Discuss Software Quality in the context of Software Engineering and how it can be achieved. Discuss any one aspect/attribute/characteristic of Software Quality and why it is desirable to have it in modern applications/systems/apps and how it can be implemented. Find one real world software project/system/app or case study and discuss how Software Quality (or a part thereof or aspect thereof) was managed/implemented in the project/system/app or a phase in the project. Search and find a report(s) or a case study with sufficient details which gives information about software quality within the…arrow_forwardThis is an individual assessment - not a group assessment. AND NOT FOR GRADING PURPOSES. NOTE: The marks allocation on each bullet point below is only there to give an idea of how much the questions/instructions in bullet points would be in a real assessment. But regardless provide accurate report that will not have high plagiarism. Write a report which addresses the following: Discuss Software Quality in the context of Software Engineering and how it can be achieved. Discuss any one aspect/attribute/characteristic of Software Quality and why it is desirable to have it in modern applications/systems/apps and how it can be implemented. Find one real world software project/system/app or case study and discuss how Software Quality (or a part thereof or aspect thereof) was managed/implemented in the project/system/app or a phase in the project. Search and find a report(s) or a case study with sufficient details which gives information about software quality within the software project…arrow_forward
- Please do not answer otherwise i will unhelpful. computer science.arrow_forwardDo this by hand: (1) Draw the circuit, (2) list all input rows, (3) compute intermediate columns left→rig (4) give the final output. (5) Submit a screenshot of your results. Y = (A · B + C) · (B+D)arrow_forwardRead Chapters 5-6 of Ralph Stair's "Fundamentals of Information Systems" textbook, 9th edition. 4. Give a brief explanation of the distinctions between credit, charge, debit, and smart care in Chapter 5: Discussion Questions. 1. List and briefly explain the elements that must be present for a business to truly benefit from its BI and analytics initiatives in Chapter 6: Discussion topics.arrow_forward
- Task: How would the decimal number -19.375 be represented as a 32-bit IEEE-754 single-precision floating-point value? instructions: Do all conversions by hand. Show all intermediate steps. Submit a screenshot of your handwritten work.arrow_forwardShow your manual work, submit a screenshot of your result Multiply 1. 00110112 × 001102 2. 01010102 x 001012 Divide 3) 11110002001112 4) 10001112001002arrow_forwardPerform the 8-bit 2's complement binary addition manually. Indicate the result and whether there is overflow or not. SHOW ALL WORK FOR FULL CREDIT. Submit your screenshot. Add: 1011 0000 + 1001 1111arrow_forward
- Watch the "Cloud Computing Fundamentals" video, learn more about cloud computing, and study Ralph Stair's "Fundamentals of Information Systems" textbook, 9th edition. Research cloud computing and respond to the following discussion question: How would you describe the features, advantages, and drawbacks of cloud computing if you were a company's chief information officer?arrow_forwardPlease code the following in R: You will only need use of one package: dplyr Be sure to install that package and activate it while you use your project using library or attach statement. After this step, read in the 2 data sets (Quant.csv and Cat.csv) and combine them into one. When combined, the data frame should have 522 observations and 11 variables. Once combine, add the correct labels for the indicator values to each of the categorical variables. Some of the Cat data:arrow_forwardPlease provide the R code for the following question and discuss the results: The built in dataset iris has data on four floral measurements for three different species of iris. Make a pairs plot of the data. What relationships (correlations) look strongest? The grouping evident with the Species variable in the last plot should make you curious. Add the argument col=iris$Species to the last plot you made. Does this change your conclusions about correlations between any of the relationships? Can you make a lattice plot (xyplot()) showing Sepal.Length as a function of Sepal.Width for the different species?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




