In any language program mostly syntax error occurs due to unbalancing delimiter such as (),{},[]. Write C++ program using stack to check whether given expression is well parenthesized or not.

In any language program mostly syntax error occurs due to unbalancing delimiter such as
          (),{},[]. Write C++ program using stack to check whether given expression is well
          parenthesized or not.

OUTPUT FOR THE PROGRAM
#include<iostream>
#include<string.h>
using namespace std;

char stk[10];
int size = 8;
int top = -1;

int stk_Empty()
{
    if(top == -1)
       return 1;
    else
       return 0;
}


int stk_Full()
{
   if(top == size-1)
      return 1;
   else
      return 0; 
}


void push(char ch)
{
   top++;
   stk[top] = ch;
}


char pop()
{
   char x = stk[top];
   top--;
   return x;
}


void Display()
{

   for(int i=0; i<=top; i++)
   cout<<"  "<<stk[i];
}


//To check whether given expression is well parenthesized  or not?
void check_expr()
{
    char expr[10],ch;
    int i;
    cout<<"\nEnter the expression: ";
    cin>>expr;
    for(i=0; expr[i]!='\0'; i++)
    {
        if(expr[i]=='(' || expr[i]=='[' || expr[i]=='{')
        {
            if(!stk_Full())
              push(expr[i]);
            else
              cout<<"\n can't push as stack full___!!!";
        }
        else
        {
            ch = pop();
            if(expr[i]==')' && ch!='(')
            {
                cout<<"\n\t Expression is not well parenthesized";
                push(ch);
                break;
            }
         
            if(expr[i]==']' && ch!='[')
            {
                cout<<"\n\t Expression is not well parenthesized";
                push(ch);
                break;
            }
         
            if(expr[i]=='}' && ch!='{')
            {
                cout<<"\n\t Expression is not well parenthesized";
                push(ch);
                break;
            }
        }
    }
    if(!stk_Empty())
      cout<<"\n\tExpression is not well parenthesized";
    else
      cout<<"\n\tExpression is well parenthesized !!";
}

int main()
{
   cout<<"*** Checking whether expression is well parenthesized or not? ***";
   check_expr();
   cout<<"\n\n";
   return 0;
}


For more such posts click the link:-http://svencrai.com/G8W
   

Comments

Popular posts from this blog

A book shop maintains the inventory of books that are being sold at the shop. The list includes details such as author, title, price, publisher and stock position. Whenever a customer wants a book, the sales person inputs the title and author and the system searches the list and displays whether it is available or not. If it is not, an appropriate message is displayed. If it is, then the system displays the book details and requests for the number of copies required. If the requested copies book details and requests for the number of copies required. If the requested copies are available, the total cost of the requested copies is displayed; otherwise the message ?Required copies not in stock? is displayed. Design a system using a class called books with suitable member functions and Constructors. Use new operator in constructors to allocate memory space required. Implement C++ program for the system

Write C++ program for storing appointment schedule for day. Appointments are booked randomly using linked list. Set start and end time and min and max duration for visit slot. Write functions for- a)Display free slots b)Book appointment c)Cancel appointment ( check validity, time bounds, availability etc) d)Sort list based on time e)Sort list based on time using pointer manipulation

Imagine a publishing company which does marketing for book and audiocassette versions. Create a class publication that stores the title (a string) and price (type float) of a publication. From this class derive two classes: book, which adds a page count (type int), and tape, which adds a playing time in minutes (type float). Write a program that instantiates the book and tape classes, allows user to enter data and displays the data members.