e programme below, apply a linked list to store the node. *use this programme, do not change. just apply and add it inside this programme   The code:

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

C++

Task: Using the programme below, apply a linked list to store the node.

*use this programme, do not change. just apply and add it inside this programme

 

The code:

#include
#include
#include

using namespace std;

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

int words = 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;
words++;
return tp;
  
}

//redo function
void redo(struct node* stack)
{
if(stack == NULL)
return;
words++;

}

//undo function
void undo(struct node* stack)
{
if(stack == NULL)
return;
words--;

}

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

}

//function for save in file
int save_words(FILE* filePointer, struct node* stack,int idx)
{
if(stack == NULL)
{
return 0;
}
  
idx = save_words(filePointer, stack->next,idx);
if(idx 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)
{
cout<<"\n\nYour words > ";
cin.getline(input,100);
if(strcmp("undo",input)==0)
{
//if input is undo
undo(stack1);
cout<<"\nUNDO RESULT: ";
print(stack1,words);
}
  
else if(strcmp("redo",input)==0)
{
//if input is redo
redo(stack1);
cout<<"\nREDO RESULT: ";
print(stack1,words);
}
  
else if(strcmp("print",input)==0)
{
//if input is print
cout<<"\nPRINT RESULT: ";
print(stack1,words);
}
  
else if(strcmp("save", input)==0)
{
//if input is save
cout<<"\nYour words have been saved! ";
FILE* filePointer;
filePointer=fopen("output.txt","w");
save_words(filePointer,stack1,words);
fclose(filePointer);
}
  
else if(strcmp("quit",input)==0) //if input is quit
{
FILE* filePointer;
filePointer=fopen("output.txt","w");
save_words(filePointer,stack1,words);
fclose(filePointer);
cout<<"\nThank you, see you again!";
exit(0);
}
  
else //if input is any other string add to stack
stack1 = add(stack1,input);
}
return 0;

}

Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Operations of Linked List
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