Upload files to "DS/C/endsem-omnibus"
This commit is contained in:
parent
c53746d826
commit
091ec8cd90
4 changed files with 653 additions and 0 deletions
79
DS/C/endsem-omnibus/stacks.c
Normal file
79
DS/C/endsem-omnibus/stacks.c
Normal file
|
@ -0,0 +1,79 @@
|
|||
#include <stdio.h>
|
||||
#define MAX_SIZE 100
|
||||
|
||||
int top = -1;
|
||||
int stack[MAX_SIZE];
|
||||
|
||||
void push(int c) {
|
||||
if (top < MAX_SIZE - 1) {
|
||||
stack[++top] = c;
|
||||
} else {
|
||||
printf("Stack overflow\n");
|
||||
}
|
||||
}
|
||||
|
||||
int pop() {
|
||||
if (top >= 0) {
|
||||
return stack[top--];
|
||||
} else {
|
||||
printf("Stack underflow\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
void display() {
|
||||
printf("The stack is: ");
|
||||
for (int i = top; i >= 0; i--) {
|
||||
printf("%d\t", stack[i]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
int isEmpty() {
|
||||
return top == -1;
|
||||
}
|
||||
|
||||
int peek() {
|
||||
if (!isEmpty()) {
|
||||
return stack[top];
|
||||
} else {
|
||||
printf("Stack is empty\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
int choice;
|
||||
while (1) {
|
||||
printf("1. Push\n2. Pop\n3. Display\n4. Peek\n5. Check if Empty\n6. Exit\n");
|
||||
scanf("%d", &choice);
|
||||
switch (choice) {
|
||||
case 1:
|
||||
printf("Enter an element: ");
|
||||
int element;
|
||||
scanf("%d", &element);
|
||||
push(element);
|
||||
break;
|
||||
case 2:
|
||||
printf("The top element is: %d\n", pop());
|
||||
break;
|
||||
case 3:
|
||||
display();
|
||||
break;
|
||||
case 4:
|
||||
printf("The top element is: %d\n", peek());
|
||||
break;
|
||||
case 5:
|
||||
if (isEmpty()) {
|
||||
printf("Stack is empty\n");
|
||||
} else {
|
||||
printf("Stack is not empty\n");
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
return 0;
|
||||
default:
|
||||
printf("Invalid choice.\n");
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue