DS Programs
DS Programs
Ans -:
#include <stdio.h>
#include <stdlib.h>
int data[MAX_SIZE];
int next[MAX_SIZE];
int head = -1;
int size = 0;
void insert_beginning(int value) {
if (size == MAX_SIZE) {
printf("List is full.\n");
return;
}
int new_node = size++;
data[new_node] = value;
next[new_node] = head;
head = new_node;
}
void delete_end() {
if (head == -1) {
printf("List is empty.\n");
return;
}
if (next[head] == -1) {
head = -1;
size--;
return;
}
int temp = head;
while (next[next[temp]] != -1) {
temp = next[temp];
}
next[temp] = -1;
size--;
}
void delete_beginning() {
if (head == -1) {
printf("List is empty.\n");
return;
}
head = next[head];
size--;
}
int main() {
insert_beginning(10);
insert_end(20);
insert_end(30);
insert_after(25, 20);
printf("List in reverse order: ");
display_reverse(head);
printf("\n");
delete_end();
delete_beginning();
delete_after(20);
#include <stdio.h>
int sum_digits(int n) {
if (n == 0) {
return 0;
} else {
return (n % 10) + sum_digits(n / 10);
}
}
int main() {
int num;
printf("Enter a number: ");
scanf("%d", &num);
printf("Sum of digits: %d\n", sum_digits(num));
return 0;
}
int main() {
int num_disks;
printf("Enter the number of disks: ");
scanf("%d", &num_disks);
tower_hanoi(num_disks, 'A', 'B', 'C');
return 0;
}
Algorithm:
#include <stdio.h>
int factorial_recursive(int n) {
if (n == 0) {
return 1;
} else {
int factorial_iterative(int n) {
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
int main() {
int num;
if (num < 0) {
return 0;