Thread: Looking for a few examples..

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Super Moderater.
    Join Date
    Jan 2005
    Posts
    374
    Question, do you understand templates?

    This is a good one for queues...
    http://www.cprogramming.com/tutorial...ory/queue.html

  2. #2
    Super Moderater.
    Join Date
    Jan 2005
    Posts
    374
    Code:
    //valid : ([(a+b)+c]) + x
    //invalid : ([(a+b+c]) + x
    
    #include <iostream>
    #include <stack>
    #include <string>
    
    using namespace std;
    
    //function declarations
    bool Is_Bracket_Open(char);
    bool Is_Bracket_Closed(char);
    bool Check_Match(char,char);
    bool Is_Valid(string);
    
    int main()
    {
        string A ="([(a+b)+c])+x";
        string B ="([(a+b+c)+x";
        
        if(Is_Valid(A)==true)
        {
            cout<<"Valid";
        }
        else
         cout<<"***ERR";
        
        
        cin.get();
        cin.get();
    }
    /*=============================================
      Given: my_string   a string 
      Task:  To determine if the brackets are valid 
      return: Nada
      ============================================*/ 
    bool Is_Valid(string my_string)
    {
        stack<char> my_stack;//create a stack of chars
        for(int i=0; i<my_string.length(); i++)//iterate through string
        {
           
            char Symbol;
            Symbol = my_string[i];
            
            if(Is_Bracket_Open(Symbol)==true)
            {
                //push open bracket onto stack
                my_stack.push(Symbol);
            }
            if(Is_Bracket_Closed(Symbol)==true)
            {
                char top;
                if (!my_stack.empty())
                {
                  top = my_stack.top(); 
                    
                  if(Check_Match(top,Symbol)==true)
                  {
                     //discard opening bracket
                   
                      my_stack.pop(); 
                    
                  }
                  else
                  {
                    
              
                    return false;
                    break;
                  }
                }  
                else
                { 
                    return false;
                    break;
                }      
            }
            
        }
        if(!my_stack.empty())
        {
          return false;
        } 
        else 
        {
          return true; 
        }      
        
    }       
      
    
    bool Is_Bracket_Open(char ch)
    {
        if ((ch == '(')||
            (ch == '[')||
            (ch == '{'))
            return true;
        else
            return false;
    } 
    
    bool Is_Bracket_Closed(char ch)
    {
        if ((ch == ')')||
            (ch == ']')||
            (ch == '}'))
            return true;
        else
            return false;
    } 
    
    bool Check_Match(char A,char B) 
    {
        if ((A=='(')&&(B==')') )
        {
            return true;
        } 
         else if ((A=='{')&&(B=='}') )
        {
            return true;
        } 
          else if ((A=='[')&&(B==']') )
        {
            return true;
        } 
    }
    That's an example using the stack... it may or maynot be helpful
    Last edited by treenef; 12-28-2005 at 08:24 AM.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Windows - how to get started... examples don't help
    By nonoob in forum Windows Programming
    Replies: 6
    Last Post: 09-26-2008, 05:45 AM
  2. Thread Pool libraries or examples
    By Mastadex in forum Windows Programming
    Replies: 6
    Last Post: 08-24-2008, 08:58 PM
  3. C/C++ examples
    By msp in forum C++ Programming
    Replies: 19
    Last Post: 10-04-2007, 06:22 AM
  4. Resource ICONs
    By gbaker in forum Windows Programming
    Replies: 4
    Last Post: 12-15-2003, 07:18 AM
  5. Treeview examples.
    By Sebastiani in forum Windows Programming
    Replies: 0
    Last Post: 09-21-2003, 12:16 PM