c program
Here we see a Stack ADT implemented using array. We would like the stack to be usable for different max sizes though, so we need to use dynamic memory allocation for our array as well.
|
#include <stdio.h> #include <stdlib.h> typedef struct { int *data; // stack data, we assume integer for simplicity int top; // top of the stack int maxSize; // max size of the stack } Stack; void StackInit(Stack* stack, int size) { // this function initializes a stack for first use printf("Initializing stack to hold %d integers...\n",size); stack->maxSize = size; stack->top = -1; stack->data = (int*) malloc(sizeof(int) * size); } void StackPush(Stack* stack, int data) { if (stack->top >= stack->maxSize - 1) { printf("Stack already full, returning\n"); return; } printf("Pushing %d\n",data);
stack->top++; stack->data[stack->top] = data; } int StackPeek(Stack* stack) {
// return what's on the top without removing
// TODO: implement } int StackPop(Stack* stack) {
// return what's on the top and remove it
// TODO: implement } int StackDestroy(Stack* stack) { // free up memory used up by data
// TODO: implement } int main() { Stack myStack;
StackInit(&myStack,8); StackPush(&myStack,3); StackPush(&myStack,4); StackPush(&myStack,6); StackPush(&myStack,1); printf("Peek: %d\n",StackPeek(&myStack)); StackPush(&myStack,2); StackPush(&myStack,5); StackPush(&myStack,8); StackPush(&myStack,9); StackPush(&myStack,7); printf("Peek: %d\n",StackPeek(&myStack)); printf("Pop: %d\n",StackPop(&myStack)); printf("Pop: %d\n",StackPop(&myStack)); printf("Pop: %d\n",StackPop(&myStack)); printf("Pop: %d\n",StackPop(&myStack)); StackPush(&myStack,11); StackPush(&myStack,10); printf("Peek: %d\n",StackPop(&myStack)); StackDestroy(&myStack);
return 0; } |
Problem 1: [Finishing the Stack]
Please complete the above implementation so that the three functions, StackPeek, StackPop and StackDestory can work properly. The correct output, if you do not modify the main, should look like this:
|
Initializing stack to
hold 8 integers... |
Notice that:
Please paste your finished program here:
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int *data; // stack data, we assume integer for simplicity
int top; // top of the stack
int maxSize; // max size of the stack
} Stack;
void StackInit(Stack *stack, int size) {
// this function initializes a stack for first use
printf("Initializing stack to hold %d integers...
", size);
stack->maxSize = size;
stack->top = -1;
stack->data = (int *) malloc(sizeof(int) * size);
}
void StackPush(Stack *stack, int data) {
if (stack->top >= stack->maxSize - 1) {
printf("Stack already full, returning
");
return;
}
printf("Pushing %d
", data);
stack->top++;
stack->data[stack->top] = data;
}
int StackPeek(Stack *stack) {
return stack->data[stack->top];
}
int StackPop(Stack *stack) {
int data = StackPeek(stack);
stack->top--;
return data;
}
int StackDestroy(Stack *stack) {
free(stack->data);
return 0;
}
int main() {
Stack myStack;
StackInit(&myStack, 8);
StackPush(&myStack, 3);
StackPush(&myStack, 4);
StackPush(&myStack, 6);
StackPush(&myStack, 1);
printf("Peek: %d
", StackPeek(&myStack));
StackPush(&myStack, 2);
StackPush(&myStack, 5);
StackPush(&myStack, 8);
StackPush(&myStack, 9);
StackPush(&myStack, 7);
printf("Peek: %d
", StackPeek(&myStack));
printf("Pop: %d
", StackPop(&myStack));
printf("Pop: %d
", StackPop(&myStack));
printf("Pop: %d
", StackPop(&myStack));
printf("Pop: %d
", StackPop(&myStack));
StackPush(&myStack, 11);
StackPush(&myStack, 10);
printf("Peek: %d
", StackPop(&myStack));
StackDestroy(&myStack);
return 0;
}

c program Here we see a Stack ADT implemented using array. We would like the stack...
- implement the Stack ADT using array – based approach. Use C++ program language #include "StackArray.h" template <typename DataType> StackArray<DataType>::StackArray(int maxNumber) { } template <typename DataType> StackArray<DataType>::StackArray(const StackArray& other) { } template <typename DataType> StackArray<DataType>& StackArray<DataType>::operator=(const StackArray& other) { } template <typename DataType> StackArray<DataType>::~StackArray() { } template <typename DataType> void StackArray<DataType>::push(const DataType& newDataItem) throw (logic_error) { } template <typename DataType> DataType StackArray<DataType>::pop() throw (logic_error) { } template <typename DataType> void StackArray<DataType>::clear() { } template <typename DataType> bool StackArray<DataType>::isEmpty() const {...
Suppose we decide to add a new operation to our Stack ADT called sizeIs, which returns a value of primitive type int equal to the number of items on the stack. The method signature for sizeIS is public int sizeIs() a.) Write the code for sizeIs for the ArrayStack class b.) Write the code for sizeIs for the LinkedStack class (do not add any instance variables to the class; each time sizeIs is called you must "walk" through the stack...
QUESTION: ADT stack: resizable array-based implementation for Ch4 programming problem 4 "maintain the stacks's top entry at the end of the array" at array index N-1 where the array is currently allocated to hold up to N entries. MAKE SURE YOU IMPLEMENT the functions: bool isEmpty() const; bool push(const ItemType& newEntry); bool pop(); in ArrayStackP4.cpp //FILE StackInterface.h #ifndef STACK_INTERFACE_ #define STACK_INTERFACE_ template<class ItemType> class StackInterface { public: /** Sees whether this stack is empty. @return True if the...
I need to implement a stack array but the top of the stack has to be Initialize as the index of the last location in the array. //Array implementation of stacks. import java.util.Arrays; public class ArrayStack implements Stack { //Declare a class constant called DEFAULT_STACK_SIZE with the value 10. private static final int DEFAULT_STACK_SIZE = 10; /* Declare two instance variables: 1. An integer called...
Java - data structures Suppose that in the array-based stack, the array doubles in size after multiple push operations. But later on, fewer than half of the array’s locations might actually be used by the stack due to pop operations. Revise the implementation so that its array also can shrink in size as objects are removed from the stack. Accomplishing this task will require two new private methods, as follows: The first new method checks whether we should reduce the...
I have added a little Code but I need help with the rest. /** A class of stacks whose entries are stored in a chain of nodes. Implement all methods in MyStack class Main Reference : text book or class notes Do not change or add data fields */ package PJ2; public class MyStack<T> implements StackInterface<T> { // Data fields private Node<T> topNode; // references the first node in the chain private int numberOfEntries; public...
Need help. write a C program stack-ptr.c that implements a stack using a link list. Below is a skeleton code to start with.Jjust edit to make thread friendly. examplpe: push(5, &top); push(10, &top); push(15, &top); int value = pop(&top); value = pop(&top); value = pop(&top); this program currently has a race condition. use Pthread mutex locks to fix the race conditions. test you now thread safe stack by creating 200 concurrent threads in main() that push and pop values. -use...
I was told I need three seperate files for these classes is there anyway to tie all these programs together into one program after doing that. I'm using netbeans btw. import java.util.ArrayList; import java.util.Scanner; /** * * */ public class MySorts { public static void main(String[] args) { Scanner input = new Scanner(System.in); String sentence; String again; do { System.out .println("Enter a sentence, I will tell you if it is a palindrome: ");...
Purpose This assignment is an exercise in implementing the Stack ADT using a dynamically-allocated array, as well as techniques for managing dynamically-allocated storage in C++. Assignment In this assignment, you will write a class called Stack that will encapsulate a dynamically-allocated array of elements of a generic data type. A driver program is provided for this assignment to test your implementation. You don't have to write the tests. Program You will need to write a single template class for this...
Can I get a C++ code and output for this program using classes instead of using struct. The following program implements a Last In First Out (LIFO) stack. ( I want to use class for function definitions too and if main need.) #include <iostream> using namespace std; const int MAX = 100; struct stack { int s[MAX]; // an array of integers int top; // the index of the last number }; void push(stack &, int); void pop(stack&,...