Ds
Ds
#include <stdio.h>
#include <stdlib.h>
int stack[MAX];
int top = -1;
int main() {
int choice, value;
while (1) {
printf("\nStack Operations Menu:\n");
printf("1. Push\n");
printf("2. Pop\n");
printf("3. Display\n");
printf("4. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Enter the value to push: ");
scanf("%d", &value);
push(value);
break;
case 2:
pop();
break;
case 3:
display();
break;
case 4:
printf("Exiting...\n");
exit(0);
default:
printf("Invalid choice! Please try again.\n");
}
}
return 0;
}
-----------------------------------------------------------------------------------
-----------------------------------------------
2.
#include <stdio.h>
#include <ctype.h> // For isdigit()
#include <stdlib.h> // For exit()
int stack[MAX];
int top = -1;
switch (exp[i]) {
case '+':
result = op1 + op2;
break;
case '-':
result = op1 - op2;
break;
case '*':
result = op1 * op2;
break;
case '/':
if (op2 == 0) {
printf("Division by zero error!\n");
exit(1);
}
result = op1 / op2;
break;
default:
printf("Invalid operator encountered: %c\n", exp[i]);
exit(1);
}
push(result); // Push the result back onto the stack
}
i++;
}
int main() {
char postfix[MAX];
return 0;
}
-----------------------------------------------------------------------------------
-------------------------------------------
3.
#include <stdio.h>
#include <ctype.h> // For isdigit() and isalpha()
#include <string.h> // For string functions
#define MAX 100
char stack[MAX];
int top = -1;
int main() {
char infix[MAX], postfix[MAX];
infixToPostfix(infix, postfix);
printf("Postfix expression: %s\n", postfix);
return 0;
}
-----------------------------------------------------------------------------------
---------------------------------
4.
#include <stdio.h>
#include <stdlib.h>
int queue[MAX];
int front = -1, rear = -1;
int main() {
int choice, value;
while (1) {
printf("\nQueue Operations:\n");
printf("1. Enqueue\n");
printf("2. Dequeue\n");
printf("3. Peek\n");
printf("4. Display Queue\n");
printf("5. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Enter value to enqueue: ");
scanf("%d", &value);
enqueue(value);
break;
case 2:
dequeue();
break;
case 3:
value = peek();
if (value != -1) {
printf("Front element is: %d\n", value);
}
break;
case 4:
displayQueue();
break;
case 5:
exit(0);
default:
printf("Invalid choice! Please try again.\n");
}
}
return 0;
}
-----------------------------------------------------------------------------------
------------------------------------------
5.
#include <stdio.h>
#include <stdlib.h>
// Search for the node to be deleted, keep track of the previous node
while (temp != NULL && temp->data != value) {
prev = temp;
temp = temp->next;
}
int main() {
int choice, value;
while (1) {
printf("\nSingly Linked List Operations:\n");
printf("1. Insert at Beginning\n");
printf("2. Insert at End\n");
printf("3. Delete Node\n");
printf("4. Search\n");
printf("5. Display List\n");
printf("6. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Enter value to insert at beginning: ");
scanf("%d", &value);
insertAtBeginning(value);
break;
case 2:
printf("Enter value to insert at end: ");
scanf("%d", &value);
insertAtEnd(value);
break;
case 3:
printf("Enter value to delete: ");
scanf("%d", &value);
deleteNode(value);
break;
case 4:
printf("Enter value to search: ");
scanf("%d", &value);
search(value);
break;
case 5:
displayList();
break;
case 6:
exit(0);
default:
printf("Invalid choice! Please try again.\n");
}
}
return 0;
}
-----------------------------------------------------------------------------------
-------------------------------------
6.
#include <stdio.h>
#include <stdlib.h>
nextNode->prev = prevNode;
prevNode->next = nextNode;
if (temp == head) {
head = nextNode;
}
}
free(temp);
printf("%d deleted from the list.\n", value);
return;
}
temp = temp->next;
} while (temp != head);
while (1) {
printf("\nCircular Doubly Linked List Operations:\n");
printf("1. Insert at Beginning\n");
printf("2. Insert at End\n");
printf("3. Delete Node\n");
printf("4. Display List\n");
printf("5. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Enter value to insert at beginning: ");
scanf("%d", &value);
insertAtBeginning(value);
break;
case 2:
printf("Enter value to insert at end: ");
scanf("%d", &value);
insertAtEnd(value);
break;
case 3:
printf("Enter value to delete: ");
scanf("%d", &value);
deleteNode(value);
break;
case 4:
displayList();
break;
case 5:
exit(0);
default:
printf("Invalid choice! Please try again.\n");
}
}
return 0;
}
-----------------------------------------------------------------------------------
-------------------------------------
7.
#include <stdio.h>
#include <stdlib.h>
if (i == size) {
printf("Element %d not found in the tree.\n", value);
return;
}
while (1) {
printf("\nBinary Tree Operations Using Array:\n");
printf("1. Insert\n");
printf("2. Delete\n");
printf("3. Inorder Traversal\n");
printf("4. Preorder Traversal\n");
printf("5. Postorder Traversal\n");
printf("6. Display Tree\n");
printf("7. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Enter value to insert: ");
scanf("%d", &value);
insert(value);
break;
case 2:
printf("Enter value to delete: ");
scanf("%d", &value);
delete(value);
break;
case 3:
printf("Inorder Traversal: ");
inorderTraversal(0);
printf("\n");
break;
case 4:
printf("Preorder Traversal: ");
preorderTraversal(0);
printf("\n");
break;
case 5:
printf("Postorder Traversal: ");
postorderTraversal(0);
printf("\n");
break;
case 6:
displayTree();
break;
case 7:
exit(0);
default:
printf("Invalid choice! Please try again.\n");
}
}
return 0;
}