Add an undo function using pop implementation of stack in C LANGUAGE. NOTE: modify the following code, I don't want a new code.

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

Add an undo function using pop implementation of stack in C LANGUAGE.

NOTE: modify the following code, I don't want a new code.

 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct node{
char data[100];
struct node* next;
};

int elements = 0;
// function for add values to stack
struct node* add(struct node* stack, char *str){
struct node* tp = (struct node*)malloc(sizeof(struct node)) ;
strcpy(tp->data,str);
tp->next = stack;
elements++;
return tp;
}

//print function
int print(struct node* stack,int idx){
if(stack == NULL)
return 0;
idx = print(stack->next,idx);
if(idx<elements)
printf("%s\n",stack->data);
return idx+1;
}


//function for save in file
int save_command(FILE* filePointer, struct node* stack,int idx)
{

if(stack == NULL){

return 0;
}
idx = save_command(filePointer, stack->next,idx);
if(idx<elements)
fprintf(filePointer,"%s\n",stack->data);

return idx+1;
}


//main function
int main(){
//stacks for undo and redo
struct node *stack1 = NULL;
char input[100];
while(1==1){
printf("MyCommand > ");
gets(input);


 if(strcmp("print",input)==0){ //if input is print
printf("result >\n");
print(stack1,elements);
}
else if(strcmp("save", input)==0){ //if input is save
FILE* filePointer;
filePointer=fopen("output.txt","w");

save_command(filePointer,stack1,elements);
fclose(filePointer);
}
else if(strcmp("quit",input)==0) //if input is quit
{
FILE* filePointer;
filePointer=fopen("output.txt","w");
save_command(filePointer,stack1,elements);
fclose(filePointer);
printf("result > Good Bye!\n");
exit(0);

}
else //if input is any other string add to stack
stack1 = add(stack1,input);
}
return 0;
}

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps with 1 images

Blurred answer
Similar questions
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY