Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Programming C fix my code Here is the question: Redo the implementation of your stack. Thanks to it being an encapsulated abstract data type, where

Programming C fix my code

Here is the question:

Redo the implementation of your stack. Thanks to it being an encapsulated abstract data type, where the implementation is separate, you can change without breaking existing code that uses your stack implementation! What you need to do is create a new file double_stack_array.c which, like double_stack_list.c, includes double_stack .h , but implements those three functions like push, pop, using fields instead of a linked list. The rest of the code can be exactly the same! In this case, your struct double_stack_struct will need to contain a double field with "just enough" elements instead of a pointer to a list. In addition, the struct needs to contain a counter that shows which index in the field is the top of the stack at the moment. If you want, instead of using a static field in your struct (eg exdouble data[10] ), you can use a field that is dynamically allocated (using malloc ) instead. If you do it that way, you can also use the realloc function to make the field bigger if needed.

I have to implement a stack using array, by making C and H fil first and link them. if the input is 1 2 3 4 the output should be:

4.0000

3.0000

2.0000

1.0000

Here is my code and it does nothing, I don't get any output ,can you find the error and fix it.

#ifndef DOUBLE_STACK_H #define DOUBLE_STACK_H typedef struct double_stack_struct double_stack; double_stack* create_stack(); int empty(double_stack* stack); int push(double_stack* stack,double d); int pop(double_stack* stack,double*d); double get_value_at_head(double_stack* stack); #endif

------------------

#include  #include  #include "double_stack.h" typedef struct double_stack_struct{ double *Array; int size; int head; }double_stack; double_stack* create_stack(){ double_stack *stack = (double_stack*)malloc(sizeof(double_stack)); stack->head = -1; return stack; } int push(double_stack * stack, double d ){ if(stack->head == stack->size - 1){ printf("Array is full"); } stack->head++; stack->Array[stack->head] = d; return 0; } int empty(double_stack* stack) { return (stack->head == -1) ? 1 : 0; } double get_value_at_head(double_stack* stack) { if(!empty(stack)) { return stack->Array[stack->head]; } return -1; } int pop(double_stack* stack,double *d) { if(stack->head == -1){ printf("stack is empty "); return -1; } *d = stack->Array[stack->head--]; return 0; } 

--------------------------------------------

Here it shuold not be any changes because I'm using it for another task aslo:

#include  #include  #include "double_stack.h" int main(int argc, char*argv[]){ double_stack*stack; stack = create_stack(); for(int i = 1; i < argc; i++){ double data = atof(argv[i]); push(stack,data); } double d; while(pop(stack,&d)){ printf("%.6f ",d); } return 0; }

the only changes I want here that If I don't get any argument the it should return some error.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Harness The Power Of Big Data The IBM Big Data Platform

Authors: Paul Zikopoulos, David Corrigan James Giles Thomas Deutsch Krishnan Parasuraman Dirk DeRoos Paul Zikopoulos

1st Edition

0071808183, 9780071808187

Students also viewed these Databases questions

Question

Explain exothermic and endothermic reactions with examples

Answered: 1 week ago

Question

Write a short note on rancidity and corrosiveness.

Answered: 1 week ago

Question

c. How is trust demonstrated?

Answered: 1 week ago

Question

Have issues been prioritized?

Answered: 1 week ago

Question

d. How will lack of trust be handled?

Answered: 1 week ago