How can I get my output that is this
Symbol 1 / does match Symbol 2 *
Symbol 1 * does match Symbol 2 /
Symbol 1 ( does match Symbol 2 )
Symbol 1 [ does match Symbol 2 ]
Symbol 1 ( does match Symbol 2 )
End of program reached when unmatched symbol
Symbol 1 ( does match Symbol 2 ]
)
(
]
[
)
(
/
*
*
/
All Symbols correctly balanced
to look like this
Symbol 1 / *does match Symbol 2 */
Symbol 1 ( does match Symbol 2 )
Symbol 1 [ does match Symbol 2 ]
Symbol 1 ( does match Symbol 2 )
End of program reached when unmatched symbol
Symbol 1 ( does match Symbol 2 ]
)
(
]
[
)
(
/
*
*
/
All Symbols correctly balanced
code:--------------------------------------------------------------------------------
Code:
#include<iostream>
#include<fstream>
#include<iomanip>
#include<cstdlib>
#include<string>
#include"stackLL.h"
#include"StackLLImple.cpp"
using namespace std;
int main()
{
char answer;
char InputChar1, InputChar2;
int Number=0;
char num;
int success=0;
//string InputChar1;
//string InputChar2;
character link;
int i=0;
ifstream InFile;
ofstream OutFile;
InFile.open("input1.txt");
OutFile.open("output2.txt");
OutFile << "This is the the linked list function" << endl;
OutFile<< "\n \n";
InFile>>InputChar1;
i++;
InFile>>InputChar2;
i++;
while(InFile != NULL)
{
if((InputChar1 == '[') && (InputChar2 == ']') || (InputChar1 == ']') && (InputChar2 == '['))
{
link.push(InputChar1);
link.push(InputChar2);
Number = 1;
}
else if((InputChar1 == '(') && (InputChar2 == ')') || (InputChar1 == ')') && (InputChar2 == '('))
{
link.push(InputChar1);
link.push(InputChar2);
Number = 1;
}
else if((InputChar1 == '/') && (InputChar2 == '*') || (InputChar1 == '*') && (InputChar2 == '/'))
{
link.push(InputChar1);
link.push(InputChar2);
Number = 1;
}
else
Number = 2;
switch (Number)
{
case 1: OutFile<<"Symbol 1 "<<InputChar1<<" does match Symbol 2 "<<InputChar2<<endl;
Number =0;
break;
case 2 :OutFile<<" End of program reached when unmatched symbol"<<endl;
OutFile<<"Symbol 1 "<<InputChar1<<" does match Symbol 2 "<<InputChar2<<endl;
while(i >2)
{
OutFile<<link.pop(InputChar1)<<endl;
i--;
OutFile<<link.pop(InputChar2)<<endl;
i--;
}
Number = 3;
case 3 :OutFile<<"All Symbols correctly balanced"<<endl;
default: ;
}
InFile>>InputChar1;
i++;
InFile>>InputChar2;
i++;
}
return 0;
}
#include<iostream>
//#include"stackLL.h"
using namespace std;
//constructor
character::character()
{
head=NULL;
cur=NULL;
pre=NULL;
}
//destructor
character::~character()
{
node *ptr;
while(head!=NULL) //delete all the numbers
{
ptr=head->next;
delete head;
head=ptr;
}
}
char character:ush(char num)
{
node *temp = new node;
temp->num = num;
temp->next = head; // if head was NULL, next will now be NULL (end of list)
head = temp;
return num;
}
//****remove at the head, this is stack, push at the head remove at the head.
char character:op(char num)
{
//int num;
node *temp = head;
if (temp == NULL) return -1;
num = temp->num;
head = temp->next;
delete temp;
return num;
//return success;
}
//this function will print from the beginning of the list to the end of the list
void character:rint()
{
//if the list was empty print out an error message
if(head==NULL)
{
cout << "There isn't any number" << endl;
return;
}
//else while not the end of the list, print out the number and go to the next one
else
{
cur=head;
while(cur!=NULL)
{
cout << "number: " << cur->num << endl;
cur=cur->next;
}
}
}
//the search function was search from the beginning of the head to the end of the
//head.
bool character::Isempty() const
{
return (head == NULL);
}
int character::search(int num)
{
if(head==NULL) //if there isn't any data return 0
{
return 0;
}
if(head->num == num) //if delete the first node
{
cout << num << " was found" << endl;
return 1;
}
else //else delete any node other than the first node
{
cur=head;
cur=cur->next;
while(cur!=NULL) //search all the to the end of the list
{
if(cur->num ==num)
{
cout << num << " was found" << endl;
return 1;
}
pre=cur;
cur=cur->next;
}// while
} //else
return 0;
}
#include<iostream>
struct node
{
char num;
node *next;
};
class character
{
public:
character();
~character();
char push(char num);
char pop(char num);
void print();
int search(int num);
bool Isempty() const;
private:
node *head;
node *cur;
node *pre;
};