C&DS Lab Manual
C&DS Lab Manual
C&DS Lab Manual
2 3 4 5 5 6 7 8 9 10 11 12 13 14 15 16
17 18 19
Write a program to read n num of students and 5 sub marks Write a program to find factorial of a num using 3 types of funs Write a program to convert all lower case to uppercase characters.
20 21 22 23 24 25 26 27 28 29 30
Write a program to extract a string Write a program to sort 5 city names in alphabetical order Write a program to find the factorial of a number using recursion A program to print address of variable A program to access a variable using pointers A program to print the element of array using pointers A program to implement call by reference A program to find greatest of n num using funs A program to print the elements of a structure using pointers A program to display student information by initializing structures A program to find total number of marks
S No
31 32 33 34 35 36 37 38 39 40 41
42 43 44 45 46 47 48 49 50 51
Prefix-evaluation Single linked list Double linked lists Bubble Sort Selection Sort Insertion Sort Quick Sort Heap Sort Binary Search Linear Search
Experiment 1:
a)To evaluate algebraic exp(ax+b)/(ax-b) b)to Evaluate algebraic exp 2.5logx+cos32+|x*x-y*y|+sqrt(2*x*y) c)to evaluate the algebraic exp aepower-rt d)to evaluate algebraic exp x power5 +10 x power 4+8 x power3+4x+2
3) FLOW CHART:
To evaluate algebraic exp (ax+b)/ (ax-b)
4) PROGRAM:
To evaluate algebraic exp(ax+b)/(ax-b) main() { int a,b,x; float s; clrscr(); printf("enter the values of a,b,x..."); scanf("%d%d%d",&a,&b,&x); s=(a*x+b)/(a*x-b); printf("the value of s=%f",s); }
5) Result:
Enter the values of a,b,x 1 3 2 The value of s=5
2) ALGORITHM:
Step1: start Step2: input x,y,v Step3: v=2.5*log(x)+cos(32*3.14/180)+mod(x*x-y*y)+sqrt(2*x*y) Step4: Result v Step 5: stop
3) FLOWCHART:
To Evaluate algebraic exp 2.5logx+cos32+|x*x-y*y|+sqrt(2*x*y)
4) PROGRAM: To Evaluate algebraic exp 2.5logx+cos32+|x*x-y*y|+sqrt(2*x*y) #include<math.h> main() { float x,y,v; clrscr(); printf("enter x and y values"); scanf("%f,%f",&x,&y); v=2.5*log(x)+(cos(32*3.14/180))+mod(x*x-y*y)+sqrt(2*x*y); printf("the value of v=%f",v); }
5) Result:
Enter x and y values 10 20 The value of v=
c) 1) AIM: To evaluate algebraic exp x power5 +10 x power 4+8 x power3+4x+2 2) ALGORITHM:
Step1: start Step2: input x,s Step3:s=pow(x,s)+10*pow(x,4)+8*pow(x,3)+4*x+2 Step4: Result s Step 5: stop*/
3) FLOWCHART:
To evaluate algebraic exp x power5 +10 x power 4+8 x power3+4x+2
4) PROGRAM:
To evaluate algebraic exp x power5 +10 x power 4+8 x power3+4x+2 #include<stdio.h> #include<math.h> main () { float x,s; printf("enter the values of x"); scanf("%f",&x); s=pow(x,5)+10*pow(x,4)+8*pow(x,3)+4*x+2; printf("the value of s=%f",s); }
5) Result:
Enter the values of x 1 The value of s = 25
3) FLOWCHART:
To evaluate the algebraic exp a epower-rt
11
4) PROGRAM:
To evaluate the algebraic exp aepower-rt #include<stdio.h> #include<math.h> main() { int a,k,t; float r; printf("enterthree values"); scanf("%d%d%d",&a,&k,&t); r=a*pow(e,-k*t); printf("result=%f"); getch(); }
5) Result:
Enter values 1 2 3 Result=1.000000
6) Questions:
i) What is an Expression? ii) What is the use of main( ) function? iii) What are preprocessors of C? iv) What is a variable?
7) Debugging:
1) undefined symbol a in function main( ) 2) r is assigned a value which is never used 3) redeclaration of c in function main( ) First you should declare a and use When you assigned a value to a variable, that must be used in the program You should declare any variable only one time
13
Experiment 2: evaluate area of triangle (sqrt(s(s-a)(s-b)(s-c) 1) AIM: To evaluate area of triangle (sqrt(s(s-a)(s-b)(s-c) 2) ALGORITHM:
Step1:start Step2:input a,r,t,s Step3:s=a* pow(-r*t) Step4:Result s Step 5:stop*/
3) FLOWCHART:
To evaluate area of triangle (sqrt(s(s-a)(s-b)(s-c)
4) PROGRAM: To evaluate area of triangle (sqrt(s(s-a)(s-b)(s-c) #include<math.h> void main() { int a,b,c; float s,area; clrscr(); printf("enter the values of a,b,c"); scanf("%d%d%d",&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("the area of a trangle is =%f",area); getch(); }
5) Result:
enter the values of a,b,c 10 20 30 The area of a trangle is = 0.000000
6) Questions:
i) What is the use of sqrt( ) function? ii) Explain data types. iii) Explain I/O Statements. 7) Debugging: 1) Function sqrt( ) should have a prototype You should include math.h first, then you can use sqrt ( ) and other mathematical functions.
15
You should end double quotation or single quotation properly You might be missed any special characters in that line.
3) FLOWCHART:
Program to swap two numbers
4) PROGRAM: Program to swap two numbers void main() { int a,b; clrscr(); printf("enter the values of a,b"); scanf("%d%d",&a,&b); a=a+b; b=a-b; a=a-b; printf("the values of a,b are: %d %d",a,b); getch(); }
5) Result:
Enter the values of a,b 10 2 The values of a,b are: 20 10
17
6) Questions:
i) What is the use of getch( ) function? ii) What is the use of specifications of the data types?
3) FLOWCHART:
To Find Greatest of Two numbers.
0100090000031602000002009601000000009601000026060f002203574d4643010000000 00001005ff60000000001000000000300000000000000030000010000006c000000000000 0000000000350000006f00000000000000000000009c3100007d21000020454d460000010 0000300001000000002000000000000000000000000000000c012000000190000cb000000 0f010000000000000000000000000000c019030055220400160000000c000000180000000 a0000001000000000000000000000000900000010000000b80b0000e90700005200000070 01000001000000a4ffffff00000000000000000000000090010000000000000440002243006 1006c00690062007200690000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000110048ae11001000000 0acb111002caf110052516032acb11100a4ae11001000000014b0110090b1110024516032a cb11100a4ae11002000000049642f31a4ae1100acb1110020000000ffffffff5c4dcc00d0642f 31ffffffffffff0180ffff0180efff0180ffffffff0000000000080000000800004300000001000000 000000005802000025000000372e90010000020f0502020204030204ef0200a07b2000400 0000000000000009f00000000000000430061006c006900620072000000000000e8ad0270 a06032e1ef24413c4dcc00d069c300d8ae11009c382731040000000100000014af110014af1 100e8782531040000003caf11005c4dcc006476000800000000250000000c0000000100000 0250000000c00000001000000250000000c00000001000000120000000c00000001000000 180000000c0000000000000254000000540000000000000000000000350000006f0000000 100000055558740008087400000000057000000010000004c000000040000000000000000 000000b80b0000e907000050000000200000003600000046000000280000001c000000474 4494302000000ffffffffffffffffb90b0000ea070000000000004600000014000000080000004 744494303000000250000000c0000000e000080250000000c0000000e0000800e00000014 0000000000000010000000140000000400000003010800050000000b0200000000050000 000c025701fc01040000002e0118001c000000fb02f0ff00000000000090010000000004400 02243616c6962726900000000000000000000000000000000000000000000000000040000 002d010000040000002d010000040000002d010000040000000201010005000000090200 0000020d000000320a0f0000000100040000000000fb015701207f09001c000000fb020300 010000000000bc02000000000102022253797374656d00000000000000000000000000000 00000000000000000000000040000002d010100040000002d010100030000000000
4) PROGRAM:
Prog:To find greatest of 2 numbers void main() { int a,b,c;
19
clrscr(); printf("enter the values of a,b"); scanf("%d%d",&a,&b); c=(a>b)?a:b; printf("the biggest no is %d",c); getch(); }
5) Result:
Enter the values of a,b 5 8 The biggest number is : 8
6) Questions:
1) What is an operators? 2) How many operators are there in C and List out them? 3) What is the difference between logical and conditional operators?
Experiment 5: numbers
2) ALGORITHM:
Step1:start Step2:input a,b,c Step3:if(a>b) &&(a>c) Step4:display a is grater Step 5:else Step6:if(b>c) Step7: display b is grater Step 8:else Step: display c is grater Step10:stop
3) FLOWCHART:
To find greatest among 3 numbers
21
4) PROGRAM:
Program to find greatest among 3 numbers void main() { int a,b,c; clrscr(); printf("enter the values of a,b and c"); scanf("%d%d%d",&a,&b,&c); if(a>b && a>c) printf("a is greatest of %d %d %d", a,b,c); else if(b>c) printf("b is greatest of %d %d %d",a,b,c); else printf("c is gratest of %d %d %d",a,b,c); getch(); }
5) Result:
Enter the values of a,b and c 10 30 20 30 is greatest of 10 30 20
6) Questions:
i) What are the conditional statements? ii) How many conditional statements are there in C? iii) What is the difference between conditional and multi-conditional statements?
23
Experiment 5: Program to find Greatest of 3 numbers to print the given no in ascending order. 1) AIM: Program to find Greatest of 3 numbers to print the given no in
ascending order.
2) ALGORITHM:
Step1:start Step2:input a,b,c Step3:if(a>b) &&(a>c) Step4:if(b>c) Step5:display a,b,c Step6:else Step7:display a,c,b Step8:else if(b<c && b<a) Step9:if(c<a) Step10:print b,c,a Step11:else Step12:print b,a,c Step13:else if(c<a && c<b) Step14:if(a<b) Step15:print c,a,b Step16:else Step17:print c,b,a Step18:stop*/
3) FLOWCHART:
To Find greatest of Three no to print the given no in ascending order
25
4) PROGRAM: Program to find Gratest of 3 numbers to print the given no in ascending order void main() { int a,b,c; clrscr(); printf("enter the values of a,b and c"); scanf("%d%d%d",&a,&b,&c); if(a<b && a<c) { if(b<c) { printf(" %d%d%d", a,b,c); } else if(b>c) printf(" %d%d%d",a,c,b); } else if(b<c && b<a) { if(c<a) printf(" %d%d%d",b,c,a); else printf("%d%d%d",b,a,c); } else if(b<a) printf("%d%d%d",c,b,a); else printf(%d%d%d",c,a,b); } }
5) Result:
Experiment 6: Write a Program to perform the arithmetic expression using switch statement
2) ALGORITHM:
Step1:start Step2:input a,b Step3:switch(result) Step4:case +:printnum of a& b is a+b Step5: case -:printnum of a& b is a-b Step6: case *:printnum of a& b is a*b Step7: case /:printnum of a& b is a/b Step8: case %:printnum of a& b is a%b Step9: default: invalid option Step10: stop
27
3) PROGRAM: Program to perform the arithmetic expression using switch statement #include<stdio.h> #include<conio.h> void main() { int a,b; int op; clrscr(); printf(" 1.addition\n 2.subtraction\n 3.multiplication\n 4.division\n"); printf("enter the values of a & b"); scanf("%d%d",&a,&b); printf("enter your choice : "); scanf("%d",&op); switch(op) { case 1 :printf("sum of %d and %d=%d",a,b,a+b); break; case 2 :printf("difference of %d and %d=%d",a,b,a-b); break; case 3 :printf("multiplication of %d and %d=%d",a,b,a*b); break; case 4 :printf("Divisionn of two numbers is %d=",a/b); break; default : printf(" Enter Your Correct Choice."); break; }
getch(); }
5) Result:
1. Addition 2. Substraction 3. Multiplication 4. Division Enter your choice : 1 Enter a and b values 10 20 Sum of 10 and 20 = 30
29
3) FLOWCHART:
Program to find the factorial of a given number
31
4) PROGRAM:
Program to find the factorial of a given number void main() { int n,i,f; f=i=1; clrscr(); printf("enter a number"); scanf("%d",&n); while(i<=n) { f*=i; i++; } printf("the factorial of %d is %d",n,f); getch(); }
5) Result:
Enter a number 5 The factorial of 5 is 120
6) Questions;
i) ii) iii) What are the Loops (Iterative Statements)? What are the Differences between while( ) and do..while( )? Explain about for( ) loop.
33
3) FLOWCHART:
Program to generate prime number till nth number.
4) PROGRAM:
Program to generate prime number till nth number void main() { int n,i,fact,j; printf("enter the range"); scanf("%d",&n); printf(Prime numbers are\n); for(i=1;i<=n;i++) { fact=0; for(j=1;j<=n;j++) { if(i%j==0) fact++; if(f==2) printf("%d ,i); }
35
getch(); }
5) Result:
Enter the range 10 Prime numbers are 3 5 7
2) Algorithm:
Step1: start Step2: read n Step3: i=0,sum=0 Step4: perform from step 5 to step 6 until i<=n Step5: i++ Step6:sum+=i; Step7: write sum Step8: stop 3) Flow chart:
F T
37
4) Program:
#include<stdio.h> #include<conio.h> main() { int n,i=0,sum=0; clrscr( ); printf(Enter Limit : ); scanf(%d,&n); while(i<=n) { i++; sum+=i; } printf(Sum of %d natural numbers = %d,n,sum); getch(); }
5) Result:
Enter Limit : 10 Sum of 10 natural numbers = 55
Experiment 10:
step3:
39
3) FLOWCHART:
Program to find total of even integers
4) PROGRAM: Program to find total of even integers #include<stdio.h> main() { int a[20],i,sum=0; printf("enter5 integrs"); for(i=0;i<5;i++) scanf("%d",&a[i]); for(i=0;i<5;i++) { if(a[i]==0) sum=sum+a[i]; } prinf("sum =%d",sum); getch(); }
5) Result:
Entger 5 integers 24682 Sum = 22
41
Experiment 11: Program to find total of odd integers 1) AIM: Program to find total of odd integers 2) ALGORITHM:
step1: start step2: for(i=0;i<20;i++) { if(a[i]%2==1) sum=sum+a[i]; } step3:stop
3) FLOWCHART:
Program to find total of odd integers
43
4) PROGRAM:
Program to find total of odd integers #include<stdio.h> main() { int a[20],i,sum=0; printf("enter 5 integrs"); for(i=0;i<5;i++) scanf("%d",&a[i]); for(i=0;i<5;i++) { if(a[i]==1) sum=sum+a[i]; } prinf("sum =%d",sum); getch(); }
45
Experiment 12:
5) Result:
Enter any number 10 Sum = 30
47
4) PROGRAM: Program to find sum of all odd integers void main() { int i,n,sum; sum=0; clrscr(); printf("enter any number"); scanf("%d",&n); for(i=1;i<=n;i++) { if(i%2!=0) sum=sum+i; } printf("total no of even integer is %d",sum); }
5) Result:
Enter any number 10 Sum = 25
49
51
3) FLOWCHART:
Program to print product of two matrices.
53
4) PROGRAM:
Program to print product of two matrices #include<stdio.h> void main() { int i,j,k,a[3][3],b[3][2],c[3][2]; printf("enter elements of matrix a"); for(i=0;i<3;i++) { for(j=0;j<3;j++) scanf("%d",&a[i][j]); } printf("enter elements of matrix b"); for(i=0;i<3;i++) { for(j=0;j<2;j++) scanf("%d",&b[i][j]); } for(i=0;i<3;i++) { for(j=0;j<3;j++) { c[i][j]=0; for(k=0;k<3;k++) { c[i][j]=c[i][j]+a[i][k]*b[k][j]; printf("\t%d",c[i][j]); } printf("\n"); } } } }
5) Result:
Enter the elements of matrix a 124521452 Enter the elements of matrix b 124521452 10 18 28
50 40
18 45
7 14
55
3) FLOWCHART:
Program to print Fibonacci series
4) PROGRAM:
Program to print Fibonacci series void main() { int i,n,f,f1,f2; printf("enter the range"); scanf("%d",&n); f=0; f1=1; f2=1; do { i++; printf("%d\n",f); f1=f2; f2=f; f=f1+f2; } while(i<=n); }
5) Result:
Enter the range 9
57
0 1 1 2 3 5 8 13 21
2) ALGORITHM:
step1:start step2:take I,j and n step3:for(i=1;i<n;i++) for(j=0;j<i;j++) {
3) FLOWCHART:
Program to print the following format 1 2 3 4 2 3 4 3 4 4
59
4) PROGRAM:
Program to print the following format 1 2 3 4 2 3 4 3 4 4
5) Result:
1 2 3 4 2 3 4 3 4 4
step1: start
61
step2: take three integers i,j,n step3: repeat step4 to step6 for i=1,i<=n,i++ step4: repeat step5 for j=1,j<=n,j++ step5: if j>=1 then Display I and a space Else Display space step6: transfer cursor to meet line by printing \n step7: stop
3) FLOWCHART:
Program to print the following format 1 2 2 3 4 4 3 4 3 4
4) PROGRAM:
Program to print the following format 1 2 2 3 3 3 4 4 4 4
63
#include<stdio.h> main() { int i,j=0,n; printf(enter n value); scanf(%d,&n); for(i=0;i<=n;i++) { if(j>=i) printf(%d\t,i); else printf(\n); } printf(\t); } printf(\n); }
5) Result:
1 2 2 3 3 3 4 4 4 4
Experiment 16.3 :
1) AIM: Program to print the following format 2) ALGORITHM:
1 2 2 3 3 3
step1: start step2: take three integers i,j,k step3: repeat step2 to step8 for i=1,i<=n,i++ step4: repeat step3 to step4 for k=1,k<=n-i,k++ step5: display blank space step6: repeat step 5 to step7 for j=1,j<=I,j++ step7: display blank space step8: take cursor to new line step9: stop
65
3) FLOWCHART:
Program to print the following format 1 2 2 3 3 3
4) PROGRAM:
Program to print the following format 1 2 2 3 3 3
#include<stdio.h> main() { int i,j,k,n; printf(enter n value); scanf(%d,&n); for(i=0;i<=n;i++) { for(k=0;k<=n-i;k++) { printf( ); } for(j=1;j<=i;j++) { printf( ); printf( i); } }
5) Result:
1
67
2 2 3 3 3
K=k+1
Display ""
FLOWCHART:
Program to print the following format 1 2 3 4 5 6
69
PROGRAM:
Program to print the following format 1 2 3 4 5 6
#include<stdio.h> main() { int i,j,k=1,n; printf(enter n value); scanf(%d,&n); for(i=0;i<=n;i++) { for(j=0;j<=i;j++) printf(%d\t,k++); printf(\n ); } }
5) Result:
1 23 4 5 6
Experiment 17:
2) ALGORITHM:
step1: take a character array a, integers r,s,I,j and n step2: read the value of n step3: for(i=0;i<n;i++) Enter rollno,name,,,,,, Read these and enter 5 subject marks s[i][5]=0; for(j=0;j<5;j++) { scanf(%d,s[i][j]); s[i][5]=s[i][5]+s[i][j]; } step4:display n[i],r[i],s[i][j] step5:stop
71
3) FLOWCHART:
Program to read num of student data:
4) PROGRAM: Program to read num of student data #include<stdio.h> #include<conio.h> void main() { char n[20][10]; int i,j,r[20],s[20][6]; printf("enter n value"); scanf("%d",&n); for(i=0;i<n;i++) { printf("enter name,rollno,...."); scanf("%s%d",&n[i],&r[i]); printf("enter 5 subject marks"); s[i][5]=0; for(j=0;j<5;j++)
73
{ scanf("%d",s[i][j]); s[i][5]=s[i][5]+s[i][j]; } } printf("the data entered is \n"); for(i=0;i<n;i++) { printf("%s\t%d\t",n[i],r[i]); for(j=0;j<5;j++) printf("%d\t",s[i][j]); } getch(); }
5) Result:
Enter name,rollno,.Eswar 20 Enter 5 subject marks 10 50 34 06 42 The data entered is Eswar 20 10 50
34
06
42
Experiment 18.1 :
Experiment: Write a program to find factorial of a num using 3 types of functons 1) AIM: Program to find factorial of a given number
2) ALGORITHM: step1:start Step2:take a number n Step3:read a number n For(i=0;i<n;i++) Factorial=fact*I; Display num
Step4:stop
3) FLOWCHART:
Program to find factorial of a given number:
4) PROGRAM:
Program to find factorial of a given number #include<stdio.h> #include<math.h> void main() { clrscr(); printf("enter a number"); fact(); getch();
75
} fact() { int i,fact=1,n; scanf("%d",&n); for(i=1;i<=n;i++) { fact=fact*i; } printf("\nfactorial of a given no is: %d ",fact); return fact; } 5) Result:
Enter a number 5 Factorial of a given no is: 120
3) FLOWCHART:
program to find factorial of a given number
77
4) PROGRAM:
program to find factorial of a given number #include<stdio.h> #include<math.h> void main() { clrscr(); printf("enter a number"); fact(); getch(); } fact() { int i,fact=1,n; scanf("%d",&n); for(i=1;i<=n;i++) { fact=fact*i; } printf("\nfactorial of a given no is: %d ",fact); return fact; } 5) Result:
Enter a number 5 Factorial of a given no is: 120
79
1) AIM: Program on function to scan a character string and convert lower case
character to upper case
2) ALGORITHM:
step1: start Step2: take a string a function of return value data type is void str upper Step3: read a string While (s[i]! =\0) { if((s[i]>=a) &&(s[i]<=z)) s[i]=s[i]-32; i++; } display changed string. Step4: stop
3) FLOWCHART:
Program on function to scan a character string and convert lower case character to upper case
81
4) PROGRAM: Program on function to scan a character string and convert lower case character to upper case #include<stdio.h> #include<conio.h> void main() { char str; printf("enter a string"); scanf("%s",str); to_str_upper(char[]); printf("changed to %s",str); } void to_str_upper(char[]) { int i=0; while(s[i]!='\0') { if((s[i]>='a') && (s[i]>='z')) s[i]=s[i]-32; i++; } } } 5) Result:
Enter a string gnec changed to GNEC
Experiment 20: Write a program to extract a string 1) AIM: A program to extract a portion of character string and print extracted
string
2) ALGORITHM:
step1: start Step2: take a a and r characters arrays and I,j,m,n be untegers Step3: enter the values of m,n J=0; For(i=n-1;i<m+n-1;i++) { r[j]=s[i]; j++; } step4: display the extract part of string Step5:stop
83
3) FLOWCHART:
A program to extract a portion of character string and print extracted string
4) PROGRAM:
Program to extract a portion of character string and print extracted string #include<stdio.h> void main() { char s[30],r[30]; int i,j,m,n; clrscr(); printf("enter a string"); gets(s); printf("enter the values of m n"); scanf("%d%d",&m,&n); j=0; for(i=n-1;i<m+n-1;i++) { r[j]=s[i]; j++;
85
} printf("the extract part of string %s: ",r); getch(); } 5) Result: Enter a string Gurunanak Enter the values of m,n 35 The extract part of string: run
Experiment 21: Write a program to sort 5 city names in alphabetical order 1) AIM: Program to read five cities and sort them and print sorted list of citied in
alphabetical order
2) ALGORITHM:
step1:start Step2:enter 5 city names Step3:take I and j loop variables For(i=65;i<122;i++) { for(j=0;j<5;j++) {
3) FLOWCHART:
A program to read five cities and sort them and Print sorted list of citied in alphabetical order
87
4) PROGRAM: A program to read five cities and sort them and print sorted list of citied in alphabetical order #include<stdio.h> #include<conio.h> void main() { ch city[5][20]; int I,j; clrscr();
printf("enter the names of cities...\n\n"); for(i=0;i<5;i++) scanf("%s",&city[i]); printf("sorted list of cities...\n\n"); for(i=65;i<122;i++) { for(j=0;j<5;j++) { if(city[j][0]==i) printf("\n%s",city[j]); } } }
5) Result:
Enter the names of cities Hyd Chennai Bombay goa vizag Sorted list of cities Bombay Chennai Goa Hyd vizag
Experiment 22: Write a program to find the factorial of a number using recursion 1) AIM: Program to find the factorial of a number using recursion 2) ALGORITHM:
step1: start Step2: enter f and n Step3: read a number n F=factorial (n);
89
Step4: inside the functional(x) define a local variable x If(x==l) Return (l); Else Fact=x*factorial(x-l); Return(fact); Step5: stop
3) FLOWCHART:
To find the factorial of a number using recursion
91
#include<stdio.h> main() { int f,n; clrscr(); printf("enter n"); scanf("%d",&n); f=factorial(n); printf("%d",f); getch(); } factorial(x) { int i,fact=1; if(x==1) return(1); else fact=x*factorial(x-1); return(fact); }
5) Result: Enter n 4 24
Experiment 23: program to print address of a variable 1) Aim: program to print address of a variable
Print 2) Algorithm: &a
Declare a
3) Flowchart:
93
4) Program:
#include<stdio.h> #include<conio.h> main( ) { int a; clrscr(); printf(Address of a = %u,&a); getch(); }
5) Result:
Address of a =64453
2) ALGORITHM:
step1: start step2: take a,b,x,y,z and two pointers variables *p1,*p2 step3: assign values to these variables p1=&a; p2=&b; x=*p1*p2-6; y=(4*-*p2)/(*p1+10); display x and y step4:*p2=*p2+3 *p1=*p2-5; z=*p1*p2-6; display a,b and z step5: stop
95
3) FLOWCHART: A program to illustrate accessing the value of variable using pointers using arithmetic operations
4) PROGRAM: A program to illustrate accessing the value of variable using pointers using arithmetic operations #include<stdio.h> main() { int a,b,*p1,*p2,x,y,z; clrscr(); a=12,b=4; p1=&a; p2=&b; x=*p1**p2-6; y=(4-*p2)**p1+10; printf("addressof a=%d\n",p1); printf("addressof b=%d\n",p2); printf("a=%d,b=%d\n",a,b); printf("x=%d,y=%d\n",x,y); *p2=*p2+3; *p1=*p2-5; z=*p1**p2-6; printf("a=%d,b=%d\n",a,b); printf("z=%d\n",z);
97
Experiment 24: A program to access a variable using pointers 1) AIM: Program to illustrate the address of a variable using various
methods
2) ALGORITHM:
step1: start step2: take x,p,q and a character a step3: display a,x,p,q step5: stop
3) FLOWCHART:
A program to illustrate the address of a variable using various methods
99
4) PROGRAM:
A program to illustrate the address of a variable using various methds #include<stdio.h> main() { char a; int x; float p,q; clrscr(); a='a'; x=125; p=10.25,q=18.76; printf("%c is stored at address %u\n",a,&a); printf("%d is stored at address %u\n",x,&x); printf("%f is stored at address %u\n",p,&p); printf("%f is stored at address %u\n",q,&q); getch(); }
5) Result:
a is stored at address 65525 125 is stored at address 65522 10.250000 is stored at address 65518 18.760000 is stored at address 65514
Experiment 25: Program to print the elements of array using pointers 1) AIM: Program to print the elements of array using pointers 2) ALGORITHM:
step1: start step2: take an array a of 5 elementsand a pointer p step3: print all the elments of array step5: stop
3) FLOWCHART:
A program to print the elements of array using pointers
101
4) PROGRAM:
Program to print the elements of array using pointers #include<stdio.h> main() { int a[5]={5,4,6,8,9}; int *p=&a[0]; int i; clrscr(); for(i=0;i<5;i++) printf("%d",*(p+i)); for(i=0;i<5;i++) printf(" %u\n",(p+i)); getch(); }
5) Result:
12345 12345
Experiment 26: Program to implement call by references 1) AIM: Program to implement call by references 2) ALGORITHM:
step1: start step2: take a, b, c step3: take addition as a function and store the address of a and b as function and store the address of a and b as arguments in it step5: take x and y as formal variables store in z step6: return z step7: stop
103
3) FLOWCHART:
A program to implement call by references
4) PROGRAM:
A program to implement call by refers #include<stdio.h> main() { int a=10,b=20,c; clrscr(); c=add(&a,&b); printf("%d",c);
105
5) Result:
30
Experiment 27: Program to find greatest of numbers functions and pointers 1) AIM: Program to find greatest of numbers functions and pointers 2) ALGORITHM:
step1: start step2: take an array a[20] andthree integers c,n,gx,p,q and a character a step3: accept value of n from the user display a,x,p,q step5: repeat step 4 for i=0,i<n,i++ step6: accept value for user and store at a+i step7: goto step a & send a and n as arguments
3) FLOWCHART:
A program to find greatest of numbers functions and pointers
107
4) PROGRAM:
A program to find greatest of numbers functions and pointers #include<stdio.h> main()
{ int a[20],i,n,l; clrscr(); printf("enterthe no.ofelements: "); scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); l=max(a,n); printf("the largest num is: %d",l); getch(); } int max(int*arr,int s) { int max,i; for(i=0;i<;i++) if(i==0||max<*(arr+i)) max=*(arr+i); return (max); } 5) Result: Enter number of elements 3 564 The largest number is 6
Display (p+i)
Experiment 28: A program to print the elements of a structure using pointers 1) AIM: Program to print the elements of a structure using pointers
109
2) ALGORITHM:
step1: start step2: take a character array name, a number and price in structure step3: in main take a struct variable product and a pointer for(*ptr=product;ptr<product+3;ptr++) read the value by using array operator ptr->name,ptr->no,ptr->price step4: display name,no,price step5: stop
111
4) PROGRAM:
A program to print the elements of a structure using pointers #include<stdio.h> struct invest {char name[20]; int number; float price;}; main() { struct invest product[3],*ptr; clrscr(); printf("input\n\n"); for(*ptr=product[3];ptr<product+3;ptr++) scanf("%s%d%f",ptr->name,&ptr->number,&ptr->price); printf("\nResult \n\n"); ptr=product; while(ptr<product+3) { printf("%20s%5d%10.2f\n",ptr->name,ptr->number,ptr->price); ptr++; } getch(); }
113
FLOWCHART:
A program to display student information by initializing structures
PROGRAM:
A program to display student information by initializing structures #include<stdio.h> struct student { char name[10]; int rollno; int age; }; main() { static struct student s1; clrscr(); printf("enter the name,rollno,age"); scanf("%s%d%d\n",&s1.name,&s1.rollno,&s1.age); printf("%s %d %d",s1.name,s1.rollno,s1.age); getch(); }
5) Result:
Ente name, rollno,age Ravi 11 25 Ravi 11 25
115
Experiment 30: Program to find the total no. of marks AIM: Program to find the total no. of marks ALGORITHM:
step1: take name, roll no and total inside the structure step2: enter the marks of five subjects for(i=0;i<n;i++) printf("enter s[%d] student marks" ,i); s[i].total=0; for(j=0;j<5;j++) read the value of s[i].subject[j] s[i].total=s[i].total+s[i].subject[j]; step3: display s[i].total step4: stop
FLOWCHART:
A program to find the total no. of marks
117
PROGRAM:
A program to find the total no. of marks #include<stdio.h> struct student { char name[10]; int rollno; int subject[5],total; }; main ( ) { static struct student s[100]; int n,i,j; clrscr(); printf("enter the no.of students"); scanf("%d",&n); printf("enter the marks of fivesubjects");
for(i=0;i<n;i++) { printf("enter s[%d] student marks",i); s[i].total=0; for(j=0;j<5;j++) { scanf("%d",&s[i].subject[j]); s[i].total=s[i].total+s[i].subject[j]; } printf("%d",s[i].total); } }
5) Result:
enter the no.of students2 enter the marks of fivesubjectsenter s[0] student marks1 2 3 4 5 15enter s[1] student marks12 32 14 15 65 138
119
Experiment 31: Program to find the salary of employee and salary details 1) AIM: Program to find the salary of employee and salary details 2) ALGORITHM:
step1: take a character array of name, an id inside the structure step2: take another structure of inside the structure name that salary take, basic, pf, hra, da, gross step3: enter the name, id of an employee and read these step4: use dot operator to access these variables step5: display gross salary step6: stop
121
3) FLOWCHART:
A program to find the salary of employee and salary details
4) PROGRAM:
A program to find the salary of employee and salary details #include<stdio.h> struct employee { char name[10]; int id; struct salary { int basic,pf; float hra,ta,da,gross; }s1; }e1; main() { printf("enter name & id of emp"); scanf("%s%d",&e1.name,&e1.id); printf("enter salary of emp"); scanf("%d%f%f%d",&e1.s1.basic,&e1.s1.hra,&e1.s1.da,&e1.s1.pf); e1.s1.hra=15% * basic; e1.s1.da=45%*basic; e1.s1.gross=e1.s1.basic+e1.s1.hra+e1.s1.da+-e1.s1.pf; printf("%s\n%d",e1.name,e1.s1.gross);
123
printf("\n%d\n%f\n%d\n%f\n",e1.s1.basic,e1.s1.hra,e1.s1.da,e1.s1.pf,e1.s1.gross); }
5) Result:
Enter name and id of emp Eswar 101 Enter salary of Emp 5000 Gross salary : 8000
2) ALGORITHM:
step1: take a structure ex2 step2: inside the structure declare 6 integers step3: declare structureex2 as s1 step4: declarestruture ex2 as s2,ex2 as fun(); step5: display the message enter the marks step6: take value of the subjects from the user step7: store the return value in s2.total step8: print the value of s2.total step9: stop
125
3) PROGRAM:
A program to pass structure as arguments to function And calculate total marks of 5 students #include<stdio.h> struct ex2 { int m1,m2,m3,m4,m5,total; }; main() { struct ex2 s1; struct ex2 s2; struct ex2 fun(); printf("enter the marks"); scanf("%d%d%d%d%d",&s1.m1,&s1.m2,&s1.m3,&s1.m4,&s1.m5); s2=fun(s3); printf("%d",s1.total); } struct ex2 fun(s3) struct ex2 s3; { s3.total=s3.m1+s3.m2+s3.m3+s3.m4+s3.m5; return(s3); }
4) Result:
Enter the marks 10 20 30 40 50 150
1) AIM: Program to display college address using pointers and structures 2) ALGORITHM:
step1: take name, location and city for the college step2: take a pointer variable & address of the college step3: p->name={''gnec''} p->location={"ibrahimpatnam"} p->city={"rr dist"} step4: display p->name,p->location,p->city step5: stop
127
3) PROGRAM:
A program to display college address using pointers and structures #include<stdio.h> struct college address { char name[20],location[20],city[20]; }; main() { struct college address add,*ptr; p=&add; p->name={"gnec"}; p->location={"ibrahimpatnam"}; p->city={"rr dist"}; printf("%s%s%s",p->name,p->location,p->city); }
4) Result:
Gnec ibrahimpatnam rr dist
Experiment 34:
1) AIM: Program to write data file and read data from file 2) ALGORITHM:
step1: start step2: take a character ch and define a file pointer f2 step3: open a file data.dat for writing step4: while ((ch=getch()!=eof) read a character ch step5: close the file data.dat step6: open the same file for reading while((ch=get(f2)!=EOF) display charecter on monitor step7: close the data.dat step8:stop
129
3) FLOWCHART:
Programs to write data file and read data from file
4) PROGRAM:
A program to write data file and read data from file #include<stdio.h> main() { charch; FILE *f2; f2=fopen("data.dat","w"); while((ch=getchar())!=EOF) putc(ch,f2); fclose(f2);
131
5) Result:
Gurunanak Engineering College, Ibrahimpatnam, RR Dist. Gurunanak Engineering College, Ibrahimpatnam, RR Dist.
Experiment 35:
file
1) AIM: Program to write integer data into file and read it from file 2) ALGORITHM:
step1: start step2: take a number and define a file pointer step3: open a file data.dat for writing step4: read on integer and also read aninter into file step5: close the file data.dat
step6: open the same file for reading display an integer step7: stop
3) FLOWCHART:
A program to write integer data into file and read it from file
133
4) PROGRAM:
A program to write integer data into file and read it from file #include<stdio.h>
main() { int num; FILE *f2; f2=fopen("data.int","w"); scanf("%d",&num); putw(num,f2); fclose(f2); f2=fopen("data.int","r"); num=getw(f2); printf("%d",num); fclose(f2); }
5) Result:
12 12
135
3) PROGRAM:
A program to write product details #include<stdio.h> main() { char c[20]; int p,q,b; FILE *f2; f2=fopen("data.dat","w"); printf("enter item name,price,quality"); scanf("%s%d%d",&c,&p,&q); b=p*q; printf("%s%d%d%d",c,p,q,b); fclose(f2); }
5) Result:
Enter item name, price, quality Rice 25 1 Rice 25 1 25
137
FLOCHART:
A program to write product details
Experiment 37: Program to Use command line arguments in files 1) AIM: Program to Use command line arguments in files 2) ALGORITHM:
step1: start step2: take argc,argv in main function an array of word and i step3: define a file pointer step4: open a file command.dat for writing for(i=0;i<argc;i++) Display argv[i] close the file step6:open the same file for reading for(i=1;i>argc;i++) display word step7: close the file step8: stop
139
3) FLOWCHART:
Program to use command line arguments in files
4) PROGRAM:
Program to use command line arguments in files #include<stdio.h> main(argc,argv) { char word[10],*argv[]; int i,argc; FILE *f2; f2=fopen("command.dat","w"); for(i=1;i<argc;i++) fprintf(fp,"%s",argv[i]); fclose(fp); f2=fopen("command.dat","r"); for(i=1;i<argc;i++) { fscanf(fp,"%s",word);
141
} fclose(fp); }
Experiment 38: Program to implement Stack operations using arrays 1) AIM: Program to implement Stack operations using arrays 2) ALGORITHM:
1. push(s,top,x): step1: start step2:(check for stack overflow) if(top>=max) display "stack overflow" return step3:[increment top pointer] top++ step4:[increment an element in thestack] s[top] <- x step5:[finished]
return 2.pop(s,top) step1:(check for stack underflow) if(top==0) display() "stack underflow" step2:[decrement top operator] top<- top-1 step3:[delete an element from the stack] return (s[top+1])
3) PROGRAM:
Stack operations using arrays #include<stdio.h> #define max 10 void push(); void pop(); void display(); int s[max]; int top=0; void main()
143
{ char ch; int choice; do { printf("enter choice of operation"); printf("1.push(),2.pop(),3.display()"); scanf("%d",&choice); switch(choice) { case1: push(); break; case2: pop();
break; case3: display(); break; default: printf("invalid option"); } printf("do u wantto continue y/n"); fflush(stdin); scanf("%c",&ch);
} while(ch=='y'||ch=='y') } void push() { int item; if(top>=max) printf("stackisfull"); else { printf("enter any item"); scanf("%d",&item); top++; s[top]=item; } } void pop()
else { item=s[top];
145
printf("the related elemnt is %d",item); top--; } } void display() { int item; int i; if(top==0) printf("\n stack is empty no element isdisplayed"); else { printf("\n%d\n",s[i]); printf("\n----\n"); } }
5) Result:
enter choice of operation1.push(),2.pop(),3.display()1 enter any item3 do u wantto continue y/ny enter choice of operation1.push(),2.pop(),3.display()1 enter any item4 do u wantto continue y/ny enter choice of operation1.push(),2.pop(),3.display()3
15150
147
Experiment 39: Program to implement Queue operations using arrays 1) AIM: Program to implement Queue operations using arrays 2) ALGORITHM:
step1:start step2:(resetrearpointer) if r=n then r<-1 else r<-r+1 step3:(overflow) if f=r then write "queue overflow" return step4:[insert element] q[r]<-r step5:[setthe pointer] if f=0 thenf<-1 return
step2:[delete element] y<-q(f) step3:[queue empty] if ]<-r<-0 return(y) step4:[increment front pointer] if ]=n then f<-1 else f<-f+1 return(y)
149
3) PROGRAM:
Program to implement Queue operations using arrays #include<stdio.h> #define max10 void insert(); void delete(); void display(); int cq[max]; int front=0,rear=0; void main() { int choice; char ch; do { printf("enter choice for circular queue"); printf("1-insert() 2-delete() 3-display()"); scanf("%d",&choice); switch(choice) { case 1: insert(); break; case 2:
151
delete(); break;
case 3: display(); break; default: printf("invalid option"); break; } printf("do u wantto continue y/n"); fflush(stdin); scanf("%c",&ch); } while(ch=='y'||ch=='y'); } void insert() { int item; if(rear==max) rear=1; else error++; if(front==rear) printf("queue overflow"); else
if(front==0) front=1; } void delete() { int item; if(front==0) printf("queue underflow"); else { item=cq[front]; printf("the deleted element id %d",item); } if(front==rear) { front=0; rear=0; return; } if(front==max)
153
front=1; else front=front+1; } void dispaly() { int i; if(front==0) printf("no element inthe queue"); else { if(front<rear) for(i=front;i<=rear;i++) { printf("%d",q[i]); } else for(i=front;i>rear;i--) printf("%d",q[i]); } }
5) Result:
1) Insert 2) Delete 3) Display Enter choice for circular queue 1 Enter any item 14 1) Insert 2) Delete 3) Display
Enter choice for circular queue 1 Enter any item 15 1) Insert 2) Delete 3) Display Enter choice for circular queue 1 Enter any item 20 1) Insert 2) Delete 3) Display Enter choice for circular queue 3 14 15 20
Experiment 40:
1) AIM: Program infix-postfix operation 2) PROGRAM 43: #include<stdio.h> #include<conio.h> #define MAX 100 void push(char); char pop(); int top=-1; char stack[MAX]; void main() { char A,infix[100],post[100],x,ch; int i,j=0; clrscr(); printf("Enter the Infix expression.....\n"); gets(infix); push('('); for(i=0;(x=infix[i])!='\0';i++) { ch=')'; if((x>='A')&&(x<='Z')) post[j++]=x; else if(x=='(') push(x);
155
else if(x==')') { while(ch!='(') { ch=pop(); post[j++]=ch; } j--; } else { while(prec(x)<=prec(stack[top])) { ch=pop(); post[j++]=ch; } push(x); } } post[j]='\0'; printf("The Postfix Expression is.....\n"); puts(post); getch(); } int prec(char y) { int k; switch(y) { case '+':k=1; break; case '-':k=1; break; case '*':k=2; break; case '/':k=2; break; case '^':k=3; break; case '(':k=0;
break; } return(k); } void push(char item) { if(top==MAX) { printf("OverFlow"); return; } else { top=top+1; stack[top]=item; } return; }
char pop(char item) { if(top==-1) { printf("Underflow"); return; } else { item=stack[top]; top=top-1; return item; } }
157
4) Result:
Enter the Infix Expression:((A+B)*(C-D)/((E+F)*(G-H) The Expected OutPut is...ABCDEFGH/*+-*+The Postfix Expression is:AB+CD-*EF+GH-*
Experiment 41: Program to implement Postfix evaluation 1) AIM: Program to implement Postfix evaluation 2) PROGRAM:
Program to implement Postfix evaluation #include<conio.h> #define MAX 100 void push(int); int pop(); int top=-1,f=0,i; int stack[MAX]; void main() { char post[100],x; int value, a,b; clrscr(); printf("Enter the Postfix Expression...."); gets(post); for( i=0;(x=post[i])!='\0';i++) { if(isdigit(x)) { push(x-'0'); } else { a=pop(); b=pop(); value=perform(x,a,b); push(value); } } gets(post); for(i=0;(x=post[i])!='\0';i++) { if(isdigit(x)) { push(x=0); } else
159
{ a=pop(); b=pop(); value=perform(x,a,b); push(value); } } printf("The value of the postfix expression is :%d\n",stack[top]); getch(); } int perform(char y,int m, int n) { int k; switch(y) { case '+':k=n+m; break; case '-':k=n-m; break; case '*':k=n*m; break; case '/':k=n/m; break; case '^':k=pow(n,m); break; } return(k); } void push(int item) { if(top==MAX) { printf("overflow\n"); return; } else { top=top+1; stack[top]=item; } return; } int pop(int item)
3) Result: 1
1.Enter the Postfix expression 654*+ The value of the Postfix expressin is: 26
Result: 2
2.Enter the Postfix expression is 6589+-* The vlaue of the Postfix expression is: -72 */
161
Experiment 42: Program to implement Prefix evaluation 1) AIM: Program to implement Prefix evaluation 2) ALGORITHM:
step1:initializestack to be empty reverse given i/p string step2:scan from left to right if the i/p string is operand push it on to the stack step3:if the i/p string is operator then the first two operatoron the stack areevaluated using this operator by popping them from the stack and the result is also palced on thestack
3) PROGRAM:
Program to implement Prefix evaluation #include<stdio.h> #include<conio.h> int st[100]; int st_top=-1; int cal(char post[]); void in_post(char in[]); void push_item(int it); int pop_item(); int st_ISP(char t); int st_ICP(char t); /*main function*/ void main() { char in[100],post[100]; clrscr(); printf("\n\tEnter the Infix Expression: "); gets(in); in_post(in); getch(); } /*end main*/ void push_item(int it) { if(st_top==99) { printf("\n\n\t*STACK is Full*"); getch(); exit(1); } st[++st_top]=it;
163
} int pop_item() { int it; if(st_top==-1) { getch(); } return(st[st_top--]); } /*Function for converting an infix expression to a postfix expression. */ void in_post(char in[]) { int x=0,y=0,z,result=0; char a,c, post[100]; char t; push_item('\0'); t=in[x]; while(t!='\0') { if(isalnum(t)) /*For checking whether the value in t is an alphabet or number. */ { post[y]=t; y++; } else if(t=='(') { push_item('('); } else if(t==')') { while(st[st_top]!='(') { c=pop_item(); post[y]=c; y++; } c=pop_item(); } else {
while(st_ISP(st[st_top])>=st_ICP(t)) { c=pop_item(); post[y]=c; y++; } push_item(t); } x++; t=in[x]; } while(st_top!=-1) { c=pop_item(); post[y]=c; y++; } printf("\n\tThe Postfix Expression is:"); for(z=0;z<y;z++) printf("%c",post[z]); printf("\n\nDo you want to evaluate the Result of Postfix Expression?(Y/N):"); scanf("%c",&a); if(a=='y' || a=='Y') { result=cal(post); printf("\n\n\tResult is: %d\n",result); getch(); } else if(a=='n' || a=='N') { exit(0); } } /*Determining priority of inside elements*/ int st_ISP(char t) { switch(t) { case '(':return (10); case ')':return (9); case '+':return (7);
165
case '-':return (7); case '*':return (8); case '/':return (8); case '\0':return (0); default: printf("Expression is invalid."); break; } return 0; } /*Determining priority of approaching elements*/ int st_ICP(char t) { switch(t) { case '(':return (10); case ')':return (9); case '+':return (7); case '-':return (7); case '*':return (8); case '/':return (8); case '\0':return (0); default: printf("Expression is invalid."); break; } return 0; }/*Evaluating the result of postfix expression*/ int cal(char post[]) { int m,n,x,y,j=0,len; len=strlen(post); while(j<len) { if(isdigit(post[j])) { x=post[j]-'0'; push_item(x); } else { m=pop_item(); n=pop_item();
switch(post[j]) { case '+':x=n+m; break; case '-':x=n-m; break; case '*':x=n*m; break; case '/':x=n/m; break; } push_item(x); } j++; } if(st_top>0) { printf("Number of Operands are more than Operators."); exit(0); } else { y=pop_item(); return (y); } return 0;}
4) Result:
Enter the Infix Expression: a+b*c The Postfix Expression is: abc*+ Do you want to evaluate the Result of Postfix Expression?(Y/N):
167
Experiment 43: Program to implement Single linked list AIM: Program to implement Single linked list PROGRAM:
Program to implement Single linked list #include<stdio.h> #define null 0 struct linked-list { int number; struct linked-list *next; }; typedef struct linked-list node; main() { int ch; node *head; void create(node *p); int count(node *p); void print(node *p); node *insert(node *p); node *find(node *p,int key); node *delete(node *hrad); head=(node *)malloc(sizeof(node)); create(head); printf("\n");
169
print(list->next); } return; } int count(node *list) { if(list->next==null) return(0); else return(1+count(list->next)); } node insert(node *head) { node *find(node *p,int a); node *new,*n1; int key,x; printf("enter value of new item\n"); scanf("%d",&x); printf("value of key item before which item is inserted?-999 if it is lost"); scanf("%d",&key); if(head->number==key)
{ n1=find(head,key); if(n1==null) printf("key is not found"); else { new=(node*)malloc(sizeof(node)); new->number=x; new->next=n1->next; n1->next=new; } } return(head); } node *find(node *list,int key) { if(list->next->number==key) return(list);
171
else if(list->next->next==null) return(null); else find(list->next,key); } node *delete(node *head) { node *find(node *p,int a); int key;
node *n1,*p; printf("enter the num to be deleted"); scanf("%d",&key); if(head->number==key) { p=head->next; free(head); head=p; } else { n1=find(head,key); if(n1==null) printf("\nkey not found"); else
173
5) Result:
1) Insert 2) Delete 3) Display Enter choice for circular queue 1 Enter any item 14 1) Insert 2) Delete 3) Display Enter choice for circular queue 1 Enter any item 15 1) Insert 2) Delete 3) Display Enter choice for circular queue 1 Enter any item 20 1) Insert 2) Delete 3) Display Enter choice for circular queue 3 14 15 20
Experiment 44: Program to implement Double linked list 1) AIM: Program to implement Double linked list 2) PROGRAM:
Program to implement Double linked list #include<stdio.h> struct node { int info; struct node *lptr,*rptr; }; struct node *current,*hrad=null; main() { charch='y'; int choice; void create(); void delete(); void insert(); void traverse(); printf("creation of doublelinkedlist"); do{ } create(); printf("do u wantto continue another node(y/n)); fflush(stdin);
175
switch(choice) { case1:printf("the element in the list are\n"); traverse(); break; case2:insert(); break; case3:delete(); break; }scanf("%c",&ch); } } voidcreate()
{ int no; struct node *temp; printf("enter the num \n"); scanf("%d",&no); temp=(struct node*)malloc(sizeof(struct(node)); temp->lptr=null;
177
struct node *new; struct node*t2=head; int no,p,option; if(t2==null) { printf("no elements is in linkedlist"); printf("pleaseinsert into any elemnets in the linkedlist\n"); exit(); }
printf("2.insert at end \n"); printf("3.insert at middle \n"); printf("enter u r option \n"); scanf("%d",&option); new=(struct node*)malloc(sizeof(struct(node)); new->lptr=null; new->info=no; new->rptr=null; switch(option) { case1: new->lptr=t2; new->lptr=new;
head=new; break; case2: for(;t->rptr!=null;t2=t2->rptr) new->lptr=t2; t2->rptr=new; break; case3: printf("enter the elements after which u want to insert \n"); scanf("%d",&p); for(;t2!=null && t2->info!=p;t2=t2->rptr) if(t2=null)
179
{ printf("elements not found \n"); } else { new->rptr=t2->rptr; t2->rptr->lptr=new; t2->prtr=new; new->lptr=t2; } break; } } } void delete() { int flag=0,ele; struct node *t3=head; if(t3==null) { printf("\n noelemnet"); exit(); } else { printf("enter the elemt to be deleted");
scanf("%d",&ele); while(t3!=null) { if(t3->info==ele) { flag=1; if(t3==head) { head=t3->rptr; head->rptr=null; free(t3); } else { if(t3->rptr!=null) { t3->lptr=t3->rptr; t3->rptr=t3->lptr; free(t3); } else { t3->lptr->rptr=null; free(t3); } }
181
3) Result:
1) Insert 2) Delete 3) Display Enter choice for circular queue 1 Enter any item 14 1) Insert 2) Delete 3) Display Enter choice for circular queue 1 Enter any item 15 1) Insert 2) Delete 3) Display Enter choice for circular queue 1 Enter any item 20 1) Insert 2) Delete 3) Display Enter choice for circular queue 3 14 15 20
183
Experiment 45 Program to implement Bubble sort 1) AIM: Program to implement Bubble sort 2) ALGORITHM:
step1: take first two elements of a list and compare them step2: if the first elements grater than second then interchange else keep the values as it step3: repeat the step 2 until last comparison takes place step4: reapeat step 1 to 3 until the list is sorted
EXPERIMENT 45: Program to implement Bubble sort AIM: Program to implement Bubble sort 3) PROGRAM:
Program to implement Bubble sort #include<stdio.h> main() { int a[10],i,j,temp,n; clear(); printf("\n enter the max no.of elements u wanna sort \n"); scanf("%d",&n); printf("\n enter the elements u want to sort \n"); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<n;i++) for(j=i+1;j<n;j++) { if(a[i]>a[j]) { temp=a[i]; a[i]=a[j];
185
4) Result:
enter the max no.of elements u wanna sort 5 enter the elements u want to sort 10 20 15 6 40 6 10 15 20 40
Experiment 46: Program to implement Selection sort 1) AIM: Program to implement Selection sort 2) ALGORITHM:
step1: take first a list of unsorted values step2: consider the first element as minimum element store itsindexvalue in a variable step3:repeat the step 2 untill last comparison takes place step4: compare the minimum with rest of all elements to find minimum value and interchange the minimum value with the first element step5: reapeat step 3 to 4 until the list is sorted*/
187
3) PROGRAM:
Program to implement Selection sort #include<stdio.h> main() { int a[10],i,j,temp,n; int min,loc; clear(); printf("\n enter the max no.of elements u wanna sort \n"); scanf("%d",&n); printf("\n enter the elements u want to sort \n"); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<n-1;i++) min=a[i]; loc=1; for(j=i+1;j<=n;j++) { if(min>a[j])
4) Result:
enter the max no.of elements u wanna sort 5 enter the elements u want to sort 10 20 15 6 40 6 10 15 20 40
189
Experiment 47: Program to implement Insertion sort 1) AIM: Program to implement Insertion sort 2) ALGORITHM:
step1: take a list of values step2: compare the first two elements of a list if first element is greaterthan second interchange it else keep the list as it is. step3: now take three elements from the list andsort them as folloes Step4::reapeat step 2 to 3 until thelist is sorted*/
for(i=1;i<=n;i++) { scanf("%d",&a[i]); } a[0]=100; for(i=2;i<=n;i++) temp=a[i]; p=i-1; while(temp<a[p]) { a[p+1]=a[p]; p=p-1; } a[p+1]=temp; } for(i=1;i<=n;i++) { printf("%d\t",a[i]); } getch();}
4) Result:
Enter the max no.of elements u want to sort 5 Enter the elements u want to sort 10 20 15 6 40 6 10 15 20 40
191
2) ALGORITHM:
step1: take first a list of unsorted values step2: take firstelement as 'pivot' step3: keep the firstelement as 'pivot' and correct its position in the list step4: divide the list into two based on first element step5: combine the list
3) PROGRAM:
Program to implement Quick sort #include<stdio.h> main() { int a[10],i,left,right,n; int min,loc; clear(); printf("\n enter the max no.of elements u wanna sort \n"); scanf("%d",&n); printf("\n enter the elements u want to sort \n"); for(i=0;i<n;i++) { scanf("%d",&a[i]); } left=0;
right=n-1; quicksort(a,left,right); display(a,n); } quicksort(int a[],int left,intright) { int temp,flag=1,i,j,p; i=left; j=right; p=a[left]; if(right>left) { while(flag) { do { i++; } while(a[i]<p && i<=right); while((a[i]>p) && j>left) j--; if(j<i) flag=0; else { temp=a[i];
193
a[i]=a[j]; a[j]=temp; } } temp=a[lest]; a[left]=a[j]; a[j]=temp; quicksort[a,left,j-1]; quicksort[a,i,right]; } } display(int a[],int n) { int i; for(i=0;i<n;i++) { printf("%d\t",a[i]); } getch(); }
4) Result:
enter the max no.of elements u wanna sort 5 enter the elements u want to sort 10 20 15 6 40
6 10 15 20 40
Experiment 49: Program to implement Heap sort 1) AIM: Program to implement Heap sort 2) ALGORITHM:
step1: arrange elements of a list in correct form of a binary tree step2: remove top most elements of the heap step3: re arrange the remaining elements from a heap this process is continued till we get sorted list
195
Program to implement Heap sort #include<stdio.h> main() { int a[10],i,j,n; int min,loc; clear(); printf("\n enter the max no.of elements u wanna sort \n"); scanf("%d",&n); printf("\n enter the elements u want to sort \n"); for(i=0;i<n;i++) { scanf("%d",&a[i]);
} heapsort(a,n); display(a,n); } heapsort(inta[],int n) { int temp,i,key,q; create heap(a,n); for(q=n;q>2;q--) { temp=a[i]; a[i]=a[q]; a[q]=temp; i=1; key=a[1]; j=2; if((j+1)<q) if(a[j+1]>a[j]) j++; while(j<=(q-1) && a[j]<key)) { a[i]=a[j]; i=j; j=2*i; if((j+1)<q) if(a[j+1]>a[j])
197
3) Result:
enter the max no.of elements u wanna sort 5 enter the elements u want to sort 10 20 15 6 40 6 10 15 20 40
Experiment 50: Program to implement Binary search 1) AIM: Program to implement Binary search 2) PROGRAM:
Program to implement Binary search #include<stdio.h> main() { int list[10],key,found,num,i; int low,high,mid;
clrscr(); printf("\n enter the max no.of elements u wanna sort \n"); scanf("%d",&num); printf("\n enter the elements u want to sort \n"); for(i=0;i<num;i++) { scanf("%d",&list[i]); } printf("enter the value to be searched"); scanf("%d",&key); low=o; high=num-1; while(low<=high) { mid=(low+high)/2; if(key==list[mid]) { printf("search is successful"); printf("\n the elemnts is %d\n",list[mid]); found=1; break;} if(key<list(mid)) high=mid-1; else if(key>list(mid)) low=mid+1;
199
3) Result:
enter the max no.of elements u wanna sort 5 enter the elements u want to sort 12345 enter the value to be searched 3 search is successful the elemnts is 3
Experiment 51: Program to implement linear search 1) AIM: Program to implement linear search 2) PROGRAM:
Program to implement linear search #include<stdio.h> main() { int list[10],key,found,num,i; clrscr(); printf(Enter no. of elements : ); scanf(%d,&num); printf(Enter %d elements\n,num); for(i=0;i<num;i++) scanf(%d,list[i[); printf("\n enter the value to be seached \n"); scanf("%d",&key); for(i=0;i<num;i++) { if(key==list[i]) { printf("\n %d element is found at location%d",list[i],i+1); found=1; } } if(found!=1) { printf(search is unsucessful"); } getch();
201
3) Result:
Enter number of elements : 5 Enter 5 elements 15 35 62 45 11 enter the value to be seached 62 62 element is found at location 3
TEXT BOOKS: 1. C AND Data Structures P. Padmanabhan, BS Publications. 2. C & Data structures Ashok N.Kanthane, Person Education. REFERENCES:
1. Programming with ANSI and Turbo C Ashok N.Kamthane 2. Programming in ANSI C E. Balagurusamy 3. Let Us C - Yaswanth Kanethkar 4. C & Data Structures Prof. P.S.Desh Pande, Prof. O.G.Kakde, Wiley Dreamtech Pvt.Ltd 5. Data Structures Using C A.S.Tenenbum, PHI/Person Education. 6. The C Programming Language B.W.Kernighan,Dennis M.Richie, PHI/ Person Education.
203