0% found this document useful (0 votes)
31 views

Data Structure Assignment 1

The document contains code for two programs - Program 1 checks if brackets in a string are balanced by using a stack, and Program 2 implements a stack using a linked list. Program 1 defines a Stack class with push, pop and other methods, and also functions to check for open/close brackets. It then runs checkInput on different test strings. Program 2 defines a Node class and StackusingLinkList class with push, pop and top methods to implement a stack using linked list. It tests the stack on different inputs.

Uploaded by

Muhammad Asad
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views

Data Structure Assignment 1

The document contains code for two programs - Program 1 checks if brackets in a string are balanced by using a stack, and Program 2 implements a stack using a linked list. Program 1 defines a Stack class with push, pop and other methods, and also functions to check for open/close brackets. It then runs checkInput on different test strings. Program 2 defines a Node class and StackusingLinkList class with push, pop and top methods to implement a stack using linked list. It tests the stack on different inputs.

Uploaded by

Muhammad Asad
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Name: Fazeel Ahmed Khan

Class: BS Software (Part II)

Roll No: 2k19/SWE/35

Subject: Data Structure & Algorithms

Submitted to: Dr. Niaz Arijo

Date: 16-7-2020
Assignment 1

Program 1

public class A1{

class Stack{
char data[];
int totalItems;
int totalSize;
Stack(int size){
data = new char[size];
totalSize = size;
totalItems = 0;
}

void push(char item){


System.out.println("pushing "+item);
data[totalItems++] = item;
}
char pop(){
System.out.println("poping "+data[totalItems-1]+"index
"+totalItems);
return data[--totalItems];
}
boolean isFull(){
return totalSize == totalItems;
}
boolean isEmpty(){
return totalItems == 0;
}
int size(){
return totalSize;
}
}

boolean isOpenBracket(char ch){


return ch == '('|| ch == '{' || ch == '[';
}
boolean isCloseBracket(char ch){
return ch == ')' || ch == '}' || ch == ']';
}

boolean matchBrackets(char c1 , char c2){


System.out.println("matching "+c1+" "+c2);
if(c1 == '(' && c2 == ')')
return true;
else if(c1 == '{' && c2 == '}')
return true;
else if(c1 == '[' && c2 == ']')
return true;
else return false;
}

void checkInput(String input){


Stack stack = new Stack(input.length());

for(int i = 0; i<input.length(); i++){


if(stack.isEmpty()){
if(isOpenBracket(input.charAt(i))){
stack.push(input.charAt(i));
}else if(isCloseBracket(input.charAt(i))){
System.out.println("Error: The code
|"+input.charAt(i)+"| dosen't use brackets correctly it start with closing
bracket");
return;
}
}else{
if(isCloseBracket(input.charAt(i))){

if(matchBrackets(stack.pop(),input.charAt(i))){
System.out.println("Success: Pair
Matched");
}else{
System.out.println("Error:
|"+input.charAt(i)+"| Pair doesn't matched");
return;
}
}else if(isOpenBracket(input.charAt(i))){
stack.push(input.charAt(i));
}
}
}
}

public static void main(String args[]){


System.out.println("Testing Input 1");
new A1().checkInput("()");
System.out.println("Testing Input 2");
new A1().checkInput("({})");
System.out.println("Testing Input 3");
new A1().checkInput("{}[]");
System.out.println("Testing Input 4");
new A1().checkInput("(())");
System.out.println("Testing Input 5");
new A1().checkInput("{[]}()");
System.out.println("Testing Input 6");
new A1().checkInput("}");
System.out.println("Testing Input 7");
new A1().checkInput("foo(bar[i])");
}
}

Program 2

public class StackusingLinkList{

class Node{
Object data;
Node next;
Node(Object _data){
this.data = _data;
}

public void setData(Object _data){


this.data = _data;
}
public Object getData(){
return this.data;
}
}

private Node top;

StackusingLinkList(){
this.top = null;
}

public void push(Object value){


Node temp = new Node(value);

if(temp == null){
System.out.println("Why this!");
return;
}
temp.next = top;
top = temp;
}

public boolean isEmpty(){


return top == null;
}
public Object pop(){
if(top == null){
System.out.println("There is no Data!");
return null;
}
Object p = top.getData();
top = top.next;
return p;
}

public Object top(){


if(!isEmpty()){
return top.data;
}else{
return null;
}
}

public static void main(String args[]){


StackusingLinkList stack = new StackusingLinkList();

System.out.println("Input 1");
stack.push(2);
stack.push(1);
System.out.println(stack.top());
System.out.println(stack.pop());
System.out.println("Input 2");
StackusingLinkList input2 = new StackusingLinkList();
input2.push(1);
input2.push(2);
System.out.println(input2.top()+"\n"+input2.pop());
System.out.println("Input 3");
StackusingLinkList input3 = new StackusingLinkList();
input3.push(2);
input3.push(3);
input3.push(9);
input3.push(7);
input3.push(2);
System.out.println(input3.top()+"\n"+input3.pop()+"\n"+input3.top
());

}
}

You might also like