Skip to content

Instantly share code, notes, and snippets.

@ahmedasif11
Created June 10, 2024 07:37
Show Gist options
  • Save ahmedasif11/ed4d9124924b646d26db7d3a2df5454c to your computer and use it in GitHub Desktop.
Save ahmedasif11/ed4d9124924b646d26db7d3a2df5454c to your computer and use it in GitHub Desktop.
cpp code for stack data structure
#include <iostream>
using namespace std;
class Stack
{
char* arr;
int top;
public:
Stack(int size)
{
arr = new char[size];
top = -1;
}
bool empty()
{
return (top == -1);
}
void push(char c)
{
top++;
arr[top] = c;
}
char pop()
{
if (empty())
{
cout << "No element to pop" << endl;
return ' ';
}
top--;
return arr[top + 1];
}
char peek()
{
if (empty())
{
cout << "No element to return" << endl;
return ' ';
}
return arr[top];
}
int length()
{
return top;
}
};
int main()
{
string str = "{{[]()}[()]}";
int size = str.length() / 2;
Stack stack(size);
int count = 0;
for (char bracket : str)
{
if (bracket == '(' || bracket == '[' || bracket == '{')
{
stack.push(bracket);
}
if (bracket == ')' || bracket == ']' || bracket == '}')
{
count++;
if (stack.peek() == '(' && bracket == ')')
{
stack.pop();
count--;
}
else if (stack.peek() == '[' && bracket == ']')
{
stack.pop();
count--;
}
else if (stack.peek() == '{' && bracket == '}')
{
stack.pop();
count--;
}
}
}
if (stack.empty() == true && count == 0)
{
cout << "Balanced" << endl;
}
else
{
cout << "UnBalanced" << endl;
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment