stack.h is in picture this is stack.c #include #include #include #include #include "stack.h" void push(Stack **q, char *word) { // IMPLEMENT } char *pop(Stack *q) { // IMPLEMENT } void print(Stack *q) { // IMPLEMENT } int isEmpty(Stack *q) { // IMPLEMENT } void delete(Stack *q) { // IMPLEMENT } /***** Expected output: ***** No items a b c a b c d e f No items s = World t = Hello *****************************/ int main(int argc, char **argv) { Stack *q = NULL; // print the stack print(q); // push items push(&q, "a"); push(&q, "b"); push(&q, "c"); print(q); // pop items while (!isEmpty(q)) { char *item = pop(q); printf("%s\n", item); free(item); } char *item = pop(q); assert(item == NULL); // push again push(&q, "d"); push(&q, "e"); push(&q, "f"); print(q); // destroy the stack delete(q); // print again print(q); // check copy char *s = (char *)malloc(10); strcpy(s, "Hello"); push(&q, s); strcpy(s, "World"); char *t = pop(q); printf("s = %s\n", s); printf("t = %s\n", t); free(t); free(s); // free the stack free(q); }
stack.h is in picture this is stack.c #include #include #include #include #include "stack.h" void push(Stack **q, char *word) { // IMPLEMENT } char *pop(Stack *q) { // IMPLEMENT } void print(Stack *q) { // IMPLEMENT } int isEmpty(Stack *q) { // IMPLEMENT } void delete(Stack *q) { // IMPLEMENT } /***** Expected output: ***** No items a b c a b c d e f No items s = World t = Hello *****************************/ int main(int argc, char **argv) { Stack *q = NULL; // print the stack print(q); // push items push(&q, "a"); push(&q, "b"); push(&q, "c"); print(q); // pop items while (!isEmpty(q)) { char *item = pop(q); printf("%s\n", item); free(item); } char *item = pop(q); assert(item == NULL); // push again push(&q, "d"); push(&q, "e"); push(&q, "f"); print(q); // destroy the stack delete(q); // print again print(q); // check copy char *s = (char *)malloc(10); strcpy(s, "Hello"); push(&q, s); strcpy(s, "World"); char *t = pop(q); printf("s = %s\n", s); printf("t = %s\n", t); free(t); free(s); // free the stack free(q); }
Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
Related questions
Question
stack.h is in picture
this is stack.c
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include "stack.h"
void push(Stack **q, char *word) {
// IMPLEMENT
}
char *pop(Stack *q) {
// IMPLEMENT
}
void print(Stack *q) {
// IMPLEMENT
}
int isEmpty(Stack *q) {
// IMPLEMENT
}
void delete(Stack *q) {
// IMPLEMENT
}
/***** Expected output: *****
No items
a
b
c
a
b
c
d
e
f
No items
s = World
t = Hello
*****************************/
int main(int argc, char **argv)
{
Stack *q = NULL;
// print the stack
print(q);
// push items
push(&q, "a");
push(&q, "b");
push(&q, "c");
print(q);
// pop items
while (!isEmpty(q)) {
char *item = pop(q);
printf("%s\n", item);
free(item);
}
char *item = pop(q);
assert(item == NULL);
// push again
push(&q, "d");
push(&q, "e");
push(&q, "f");
print(q);
// destroy the stack
delete(q);
// print again
print(q);
// check copy
char *s = (char *)malloc(10);
strcpy(s, "Hello");
push(&q, s);
strcpy(s, "World");
char *t = pop(q);
printf("s = %s\n", s);
printf("t = %s\n", t);
free(t);
free(s);
// free the stack
free(q);
}
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include "stack.h"
void push(Stack **q, char *word) {
// IMPLEMENT
}
char *pop(Stack *q) {
// IMPLEMENT
}
void print(Stack *q) {
// IMPLEMENT
}
int isEmpty(Stack *q) {
// IMPLEMENT
}
void delete(Stack *q) {
// IMPLEMENT
}
/***** Expected output: *****
No items
a
b
c
a
b
c
d
e
f
No items
s = World
t = Hello
*****************************/
int main(int argc, char **argv)
{
Stack *q = NULL;
// print the stack
print(q);
// push items
push(&q, "a");
push(&q, "b");
push(&q, "c");
print(q);
// pop items
while (!isEmpty(q)) {
char *item = pop(q);
printf("%s\n", item);
free(item);
}
char *item = pop(q);
assert(item == NULL);
// push again
push(&q, "d");
push(&q, "e");
push(&q, "f");
print(q);
// destroy the stack
delete(q);
// print again
print(q);
// check copy
char *s = (char *)malloc(10);
strcpy(s, "Hello");
push(&q, s);
strcpy(s, "World");
char *t = pop(q);
printf("s = %s\n", s);
printf("t = %s\n", t);
free(t);
free(s);
// free the stack
free(q);
}
Expert Solution
This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
This is a popular solution!
Trending now
This is a popular solution!
Step by step
Solved in 4 steps with 2 images
Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Recommended textbooks for you
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education