First Part Stack

$24.99 $18.99

Learning objectives Recognize the situation where a stack would be necessary for the conception of an algorithm Describe the implementation of a stack using an array Implement a stack using a dynamic array Implement a predefined interface type Apply the concept of generic types for the implementation of classes and interfaces Stack Introduction Stacks are part of the common data structure…

5/5 – (2 votes)

You’ll get a: zip file solution

 

Categorys:

Description

5/5 – (2 votes)

Learning objectives

  • Recognize the situation where a stack would be necessary for the conception of an algorithm

  • Describe the implementation of a stack using an array

  • Implement a stack using a dynamic array

  • Implement a predefined interface type

  • Apply the concept of generic types for the implementation of classes and interfaces

Stack

Introduction

Stacks are part of the common data structure types used by programmers. There are however many ways to implement them. To do so, you must understand their behaviors. First, stacks follow the principle of last-in first-out (LIFO). In other words, the elements are stacked one on top of the other, and you can only access the element on top of the stack. To access an element below the top element, you can only access this element by removing every element on top of it, i.e. entered after.

You are constantly surrounded by stacks in the real world. Determine if these are indeed an example of a stack (true) or not (false).

Application

This part of the lab will focus on two of the three implementations of the interface Stack. You will be evaluated on these two implementations in the midterm evaluation.

1.1 Modify the interface Stack: add a method clear()

Modify the interface Stack bellow to add a method abstract public void clear().

public interface Stack<E> {     boolean isEmpty();     E peek();     E pop();     void push(E element); }
File:

1.2 Implement the method clear() of the class ArrayStack

The class ArrayStack uses an array of fixed size and implements the interface Stack. Since the interface Stack has been modified to have the method clear(), the implementation of the class ArrayStack is faulty. (Try to compile it now without changing anything, what error do you see?).

Since the class ArrayStack implements the interface Stack, it needs to have an implementation for all methods of the interface. Therefore, you will need to write a method void clear(). This method will remove all the elements from this stack (ArrayStack). The stack will be empty after this call. Use the class L6Q1 to test the implementation of the method clear().

Files:

1.3 Create a new class DynamicArrayStack

Modify the class ArrayStack using the technique known as dynamic array. This new class DynamicArrayStack has a constant DEFAULT_INC, with the value 25. The constructor takes an argument capacity which is the initial size of the array. However, the minimum size of the array is never less that DEFAULT_INC (25). It has a getter, getCapacity(), that returns an integer, which is the length of the array (physical size of the stack). When the array becomes full, a new array is created with DEFAULT_INC more cells than the previous array, and filled with the elements from the previous array. Similarly, when the stack has DEFAULT_INC elements less than the length of the array (physical size of the stack), it needs to be automatically reduced in size. Make the necessary changes, particularly in poppush and clear, and in the constructor (recall, the minimal size of an array is DEFAULT_INC).

File:

 

First Part Stack
$24.99 $18.99