Program With Comments[1]
Program With Comments[1]
#include<stdio.h>
#define size 10
char stack[size];
int top = -1;,nknkl.m
void puch(int);
int pop();
int eva_Post(char*);
int main()
{
char postExp[size];
printf("Name: Harsh Singh\n Roll No.:11500323031");
printf("\nEnter the postfix expression: ");
scanf("%s",postExp);
printf("\nPostfix Evaluation Result: %d\n",eva_Post(postExp));
return 0;
}
void push(int value)
{
if(top != size - 1)
{
top++;
stack[top] = value;
}
else
printf("\n OVERFLOW!");
}
int pop()
{size
if(top != -1)
{
int value = stack[top];
top--;
return value;
}
else
{
printf("\n UNDERFLOW!");
return -1;
}
}
int eva_Post(char* exp)
{
int i, oper2, oper1, val;
for(i=0;exp[i]!='\0';i++)
{
if(exp[i]>='0' && exp[i]<='9')
push(exp[i] - '0');
else
{
oper2 = pop();
oper1 = pop();
switch(exp[i])
{
case '+':val = oper1 + oper2;
push(val);
break;
case '-':val = oper1 - oper2;
push(val);
break;
case '*':val = oper1 * oper2;
push(val);
break;
case '/':val = oper1 / oper2;
push(val);
break;
default:printf("\nINVALID OPERATOR: %c\n!!!",exp[i]);
break;
}
}
}return pop();
}
#define MAX 5
int queue[MAX];
int front = -1, rear = -1;
void delete() {
if (front == -1 || front > rear) {
printf("Queue Underflow\n");
return;
}
printf("Deleted: %d\n", queue[front]);
front++;
if (front > rear) front = rear = -1;
}
void display() {
if (front == -1) {
printf("Queue is empty\n");
return;
}
printf("Queue elements: ");
for (int i = front; i <= rear; i++) {
printf("%d ", queue[i]);
}
printf("\n");
}
int main() {
printf("Name: HARSH SINGH\n");
printf("Roll No: 11500323031\n\n");
while (1) {
printf("\nQueue Operations:\n");
printf("1. Insert\n");
printf("2. Delete\n");
printf("3. Display\n");
printf("4. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Enter data to insert: ");
scanf("%d", &data);
insert(data);
break;
case 2:
delete();
break;
case 3:
display();
break;
case 4:
printf("Exiting...\n");
return 0;
default:
printf("Invalid choice! Please try again.\n");
}
}
}
OUTPUT OF THE PROGRAM:
PROGRAM WITH COMMENTS:
#include <stdio.h>
#define MAX 5
int queue[MAX];
int front = -1, rear = -1;
void dequeue() {
if (front == -1) {
printf("Queue Underflow\n");
} else {
printf("Deleted element: %d\n", queue[front]);
if (front == rear) { // Queue becomes empty after deletion
front = rear = -1;
} else if (front == MAX - 1) { // Wrap around
front = 0;
} else {
front++;
}
}
}
void display() {
if (front == -1) {
printf("Queue is empty\n");
} else {
printf("Front index: %d\n", front);
printf("Queue elements: ");
int i = front;
while (1) {
printf("%d ", queue[i]);
if (i == rear) break;
i = (i + 1) % MAX;
}
printf("\nRear index: %d\n", rear);
}
}
int main() {
// Display user details
printf("Name: HARSH SINGH\n");
printf("Roll No: 11500323031\n");
int choice, value;
while (1) {
printf("\n1. Insert\n2. Delete\n3. Display\n4. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Enter the value to be inserted: ");
scanf("%d", &value);
enqueue(value);
break;
case 2:
dequeue();
break;
case 3:
display();
break;
case 4:
printf("Exiting...\n");
return 0;
default:
printf("Invalid choice. Please try again.\n");
}
}
}
OUTPUT OF THE PROGRAM:
PROGRAM WITH COMMENTS:
#include <stdio.h>
#include <string.h>
// Stack structure
char stack[MAX];
int top = -1;
int main() {
char infix[MAX], postfix[MAX];
printf("Name: HARSH SINGH\n");
printf("Roll No: 11500323031\n\n");
printf("Enter infix expression: ");
scanf("%s", infix);
infixToPostfix(infix, postfix);
printf("Postfix expression: %s\n", postfix);
return 0;
}