Code in C 1. Implement a Stack using a linked-list.
Code in C
1. Implement a Stack using a linked-list.
2. Use the stack in making a program that will check whether a string contains
balance symbols [], {}, (). The
-- is pushed on the stack. When a closed symbol -- ], }, ) – is encountered, check
the top of the stack to see if the matching open symbol is there, if yes, pop the
stack, otherwise, mismatch. At the end of the string, the stack should be empty.
A Stack is a last-in-first-out (LIFO data Structure)
// data structure LIFO
Finish the code below:
main.c
#include <stdio.h>
#include <stdlib.h>
#include "stack.h"
int main(int argc, char *argv[]) {
//missing code here
}
stack.c
#include <stdio.h>
#include <stdlib.h>
#include "stack.h"
Stack newStack(){
Stack s=(Stack)malloc(sizeof(STACK_HEAD));
s->count=0;
s->top=NULL;
return s;
}
void freeStack(Stack s){
//code here
}
void push(Stack s,stackItem item){
// insert at the top - push
}
void pop(Stack s){
//deleting the top element - pop
}
stackItem stackTop(Stack s){
// returns the top item
}
int isEmpty(Stack s){
return s->count==0;
}
void display(Stack s){
Nodeptr ptr=s->top;
while(ptr!=NULL){
printf("%d ",ptr->data);
ptr=ptr->next;
}
printf("\n");
}
stack.h
#include <stdio.h>
#include <stdlib.h>
typedef struct node* Nodeptr;
typedef char stackItem;
typedef struct node{
stackItem data;
Nodeptr next;
}STACK_NODE;
typedef struct{
int count;
Nodeptr top;
}STACK_HEAD;
typedef STACK_HEAD* Stack;
Stack newStack();
void freeStack(Stack s);
void push(Stack s,stackItem item); // insert at the top - push
void pop(Stack s); // deleting the top element - pop
stackItem stackTop(Stack s); // returns the top item
int isEmpty(Stack s);
void display(Stack s)

Step by step
Solved in 2 steps









