Make the Undo and Redo Functions void functions but keep them as they are.

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
icon
Related questions
Question

Make the Undo and Redo Functions void functions but keep them as they are. 

Note: Please modify the given code only, I already posted this question and you gave me a new code!

 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct node{
char data[100];
struct node* next;
};
struct node* undo_stack = NULL;
struct node* push(struct node* stack, char* data){
struct node* tp = (struct node*)malloc(sizeof(struct node)) ;
strcpy(tp->data,data);
tp->next = stack;
return tp;
}
struct node* pop(struct node* stack){
struct node* tp = stack;
stack = stack->next;
tp->next = NULL;
free(tp);
return stack;
}
// function for add values to stack
struct node* add(struct node* stack, char *str){
struct node* tp = push(stack,str);
return tp;
}
//redo function
struct node* redo(struct node* stack){
if (undo_stack==NULL)
{
return stack;
}
stack = push(stack,undo_stack->data);
undo_stack = pop(undo_stack);
return stack;
}
//undo function
struct node* undo(struct node* stack){
if (stack==NULL)
{
return NULL;
}
undo_stack = push(undo_stack,stack->data);
return pop(stack);
}
//print function
void print(struct node* stack){
if(stack == NULL)
return ;
print(stack->next);
printf("%s\n",stack->data);
}
//function for save in file
void save_command(FILE* filePointer, struct node* stack)
{
if(stack == NULL)
return;
save_command(filePointer, stack->next);
fprintf(filePointer,"%s\n",stack->data);
}
//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("undo",input)==0){ //if input is undo
stack1 = undo(stack1);
printf("result >\n"); print(stack1);
}
else if(strcmp("redo",input)==0){ //if input is redo
stack1 = redo(stack1);
printf("result >\n"); print(stack1);
}
else if(strcmp("print",input)==0){ //if input is print
printf("result >\n");
print(stack1);
}
else if(strcmp("save", input)==0){ //if input is save
FILE* filePointer;
filePointer=fopen("output.txt","w");
save_command(filePointer,stack1);
fclose(filePointer);
}
else if(strcmp("quit",input)==0) //if input is quit
{
FILE* filePointer;
filePointer=fopen("output.txt","w");
save_command(filePointer,stack1);
fclose(filePointer);
printf("result > Good Bye!\n");
exit(0);
}
else{ //if input is any other string add to stack
stack1 = add(stack1,input);
undo_stack = NULL;
}
}
return 0;
}

Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Concept of pointer parameter
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.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
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)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education