Ds Lab Programs
Ds Lab Programs
a)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Day {
char *dayname;
char *activitydescription;
};
int main() {
}
strcpy(calendar[0].dayname, "Monday");
strcpy(calendar[0].activitydescription, "Work");
strcpy(calendar[1].dayname, "Tuesday");
strcpy(calendar[1].activitydescription, "Meeting");
strcpy(calendar[2].dayname, "Wednesday");
strcpy(calendar[2].activitydescription, "Gym");
strcpy(calendar[3].dayname, "Thursday");
strcpy(calendar[3].activitydescription, "Study");
strcpy(calendar[4].dayname, "Friday");
strcpy(calendar[5].dayname, "Saturday");
strcpy(calendar[5].activitydescription, "Shopping");
strcpy(calendar[6].dayname, "Sunday");
strcpy(calendar[6].activitydescription, "Relax");
printf("\n");
}
for (int i = 0; i < 7; i++) {
free(calendar[i].dayname);
free(calendar[i].activitydescription);
return 0;
Output
Day: Monday
Activity: Work
Day: Tuesday
Activity: Meeting
Day: Wednesday
Activity: Gym
Day: Thursday
Activity: Study
Day: Friday
Day: Saturday
Activity: Shopping
Day: Sunday
Activity: Relax
b)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct calendarDay{
char*dayname;
int date;
char*activity;
};
for(int i=0;i<7;i++){
for(int i=0;i<7;i++){
scanf("%s",calendar[i].dayname);
scanf("%d",&calendar[i].date);
scanf("%[^\n]",calendar[i].activity);
for(int i=0;i<7;i++){
int main()
create(calendar);
read(calendar);
display(calendar);
for(int i=0;i<7;i++){
free(calendar[i].dayname);
free(calendar[i].activity);
return 0;
OUTPUT
dayname: MONDAY
Date: 12
activity: WORK
dayname: TUESDAY
Date: 13
activity: MEETING
dayname: WEDNESDAY
Date: 14
activity: GYM
dayname: THURSDAY
Date: 15
activity: STUDY
dayname: FRIDAY
Date: 16
activity: MOVIE
dayname: SATURDAY
Date: 17
activity: SHOPPING
dayname: SUNDAY
Date: 18
activity: RELAX
a. Read a main String (STR), a Pattern String (PAT) and a Replace String
(REP)
a)
#include <stdio.h>
#include <string.h>
int main() {
int i, j, c, m, k, flag = 0;
i = m = c = j = 0;
if (STR[c] == PAT[i]) {
i++;
if (PAT[i] == '\0') {
i = 0;
c++;
} else {
ans[j] = STR[c];
j++;
c++;
i = 0;
if (i == 0) {
ans[j] = '\0';
} else {
OUTPUT
GOOD MORNING
MORNING
f. Exit
Support the program with appropriate functions for each of the above
operations
#include <stdio.h>
#include <stdlib.h>
int stack[6],rev[6];
int top=-1,k=0;
int size;
void display();
int pali();
int main()
int choice,f;
scanf("%d",&size);
while(1){
scanf("%d",&choice);
switch(choice)
case 1:push();
break;
case 2:pop();
break;
case 3:display();
break;
case 4:f=pali();
if(f==1)
printf("It's palindrome\n");
else
printf("It's not a palindrome\n");
break;
case 5:
exit(0);
default:printf("wrong choice...\n");
void push()
int num;
if(top==(size-1))
printf("stack overflow\n");
else{
scanf("%d",&num);
top++;
stack[top]=num;
void pop()
int num;
if(top==-1)
printf("stack underflow\n");
}
else{
num=stack[top];
top--;
void display()
int i;
if(top==-1)
printf("stack underflow\n");
else{
printf("stack contents...\n");
for(i=top;i>=0;i--){
printf("%d\n",stack[i]);
rev[k++]=stack[i];
int pali()
int i,flag=1;
for(i=top;i>=0;i--)
if(stack[i]!=rev[--k])
flag=0;
}
return flag;
Output
1.push
2.pop
3.display
5.exit
stack contents...
stack overflow
popped element is 6
popped element is 5
stack contents...
9
4
#include <stdio.h>
#include <ctype.h>
#define SIZE 50
char s[SIZE];
s[++top] = elem;
return 0;
}
char pop() {
return s[top--];
switch (elem) {
int main() {
int i = 0, k = 0;
scanf("%s", infx);
push('#');
if (isalnum(ch)) {
pofx[k++] = ch;
}
else if (ch == '(') {
push(ch);
pofx[k++] = pop();
elem = pop();
else {
pofx[k++] = pop();
push(ch);
pofx[k++] = pop();
pofx[k] = '\0';
return 0;
}
OUTPUT