P&DS LAB

Post on 28-Jan-2016

246 views 0 download

Tags:

description

P&DS LAB

Transcript of P&DS LAB

BHARATHIDASAN ENGINEERING COLLEGE

NATTRAMPALLI – 635 854

DEPARTMENT OF INFORMATION TECHNOLOGY

NAME : ................................................................................................

SUBJECT : ...............................................................................................

DEPARTMENT : .................................................................................................

SEMESTER : ................................................................................................

YEAR : ................................................................................................

APRIL-2014

DEPARTMENT OF INFORMATION TECHNOLOGY

BHARATHIDASAN ENGINEERING COLLEGE

NATTRAMPALLI – 635 854

DEPARTMENT OF INFORMATION TECHNOLOGY

Certified with this is a bonafied record of the practical work done by _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2nd Semester Information Technology in

Programming And Data Structures Lab-1 (IT6212) during the period January 2014 to April 2014.

Staff In-Charge Head of the Department

University Register Number:

Submitted for the Practical examination held on……….....…………….

Internal Examiner External

Examiner

Date Experiment Name Signature

1Programs using Conditional Statements

2 Programs using Looping Statements

3Program using Arrays

4Program using Strings

5Program using Pointers

6Program using Functions

7File Handling – Sequential File

8File Handling – Random File

9Infix to Postfix Conversion

10Simple Expression Evaluation using Stacks

11Linked List Implementation of Stack

12Linked List Implementation of Queue

13Sorting Algorithm

14Implementation of Linear and Binary Search

SCIENTIFIC PROBLEM SOLVING USING CONDITIONAL STATEMENTS

ODD OR EVEN

PROGRAM:

#include<stdio.h> main(){

int a,rem;printf("Enter a Number\n"); scanf("%d",&a);rem=a%2; if(rem==0)

printf("The Given Number is Even");else

}printf("The Given Number is Odd");

OUTPUT:

Enter a Number 13The Given Number is Odd

SCIENTIFIC PROBLEM SOLVING USING CONDITIONAL STATEMENTS

BIGGEST OF 3 NUMBERS

PROGRAM:

#include<stdio.h> main(){

int a,b,c;printf("Enter 3 Numbers\n"); scanf("%d%d%d",&a,&b,&c); if(a>b){

if(a>c){

printf("The First Number %d(a) is Biggest\n",a);}

}else if(b>c)

printf("The Second Number %d(b) is Biggest\n",b);

} else

printf("The Third Number %d(c) is Biggest\n",c);

}

OUTPUT:

Enter 3 Numbers 592The Second Number 9(b) is Biggest

SCIENTIFIC PROBLEM SOLVING USING CONDITIONAL STATEMENTS

ARITHMETIC CALCULATOR

PROGRAM:

#include<stdio.h> main(){

int a,b,ch,c;printf("\nEnter the Number 1:\n"); scanf("%d",&a);printf("\nEnter the Number 2:\n"); scanf("%d",&b); printf("\n1.Add\n2.Subtract\

n3.Multiply\n4.Divide\n"); printf("\nEnter the Choice:\n");scanf("%d",&ch); switch(ch){

case 1:

c=a+b;printf("\n %d + %d = %d\n",a,b,c); break;

case 2:c=a-b;printf("\n %d - %d = %d\n",a,b,c); break;

case 3: c=a*b;

printf("\n %d * %d = %d\n",a,b,c); break;

case 4: c=a/b;

printf("\n %d / %d = %d\n",a,b,c); break;

}

}

OUTPUT:

Enter the Number 1: 15

Enter the

Number 2: 561.Add 2.Subtract 3.Multiply 4.DivideEnter the Choice: 215 - 56 = -41

SCIENTIFIC PROBLEM SOLVING USING LOOPING

SUM OF ‘N’ NATURAL NUMBERS

PROGRAM:

#include<stdio.h> main(){

int i,n,sum=0;printf("Enter the range\n"); scanf("%d",&n);i=1; w

hile(i<=n){

sum=sum+i; i++;

}printf("\nThe sum of first %d numbers is %d\n",n,sum);

}

}

OUTPUT:

Enter the range 16

The sum of first 16 numbers is 136

SCIENTIFIC PROBLEM SOLVING USING LOOPING

SUM OF DIGITS OF A NUMBER

PROGRAM:

#include<stdio.h> main(){

int n,i,sum=0;printf("Enter a Number\n"); scanf("%d",&n);do{

}

i=n%10; sum=sum+i; n=n/10;

}while(n>0);printf("The Sum of digit is %d\n",sum);

OUTPUT:

Enter a Number

5891 The Sum of digit is 23

SCIENTIFIC PROBLEM SOLVING USING LOOPING EVALUATION OF SINE SERIES

PROGRAM:

#include<stdio.h>#include<math.h> int factorial(int n){

int i,sum=1; for(i=1;i<=n;i++)

sum=sum*i; return sum;

}main(){

int i,n,j,dr;float res=0.0,x,nr;printf("\nEnter the Value of x\n"); scanf("%f",&x);printf("\nEnter the total no of terms\n"); scanf("%d",&n);j=1; for(i=1;i<n*2;i+=2){

nr=pow(x,i)*j; dr=factorial(i); res+=(nr/dr);j=-j;

}printf("The Result of sine series is : %f\n",res);

}

OUTPUT:

Enter the Value of x 0.21Enter the total no of terms 5The Result of sine series is : 0.208460

SCIENTIFIC PROBLEM SOLVING USING LOOPING

NUMBER CHECKING

PROGRAM:#include<stdio.h>#include<math.h> main(){

int a,i,sum=0,n,ch,m; printf("\nEnter a Number\n"); scanf("%d",&a);printf("\n1.Palindrome\n2.Armstrong\n3.Prime\n"); printf("\nEnter the Choice:\n");scanf("%d",&ch); switch(ch){

case 1: n=a; while(a>0)

{i=a%10; sum=(sum*10)+i; a=a/10;

}if(n==sum)

printf("Given Number is Palindrome\n"); else printf("Given Number is Not Palindrome\n");

n=a; while(a>0)

case 2: n=a; do

{i=a%10; sum=sum+(i*i*i); a=a/10;

}while(a>0); if(n==sum)

printf("Given Number is Armstrong\n"); e lse printf("Given Number is Not Armstrong\n");

break; case 3:

m=5; n=sqrt(a); for(i=2;i<=n;i++){

if(a%i==0){

m=0; break;

}}if(m==0)

printf("Given Number is Prime\n");else printf(“Given Number is Not Prime\n”);break;}}

OUTPUT:

Enter a Number 121 1.Palindrome 2.Armstrong 3.Prime

Enter the Choice:

1 Given Number is Palindrome

SIMPLE PROGRAMMING FOR ONE DIMENSIONAL AND TWO DIMENSIONAL ARRAYS

SUM OF ARRAY ELEMENTS

PROGRAM:

#include<stdio.h> main(){

int i,n,a[10],sum=0;printf("Enter total no. of Elements\n"); scanf("%d",&n);

printf("Enter Array elements one by one\n"); for(i=0;i<n;i++)

scanf("%d",&a[i]); for(i=0;i<n;i++)

sum=sum+a[i];printf("The Sum of Array Elements is %d\n",sum);}

OUTPUT :

Enter total no. of Elements 8 Enter Array elements one by one 15 69 32 10 45 66 32 11 The Sum of Array Elements is 280

SIMPLE PROGRAMMING FOR ONE DIMENSIONAL AND TWO

DIMENSIONAL ARRAYS

DISPLAY EVEN NUMBERS OF AN ARRAY

PROGRAM:

#include<stdio.h> main(){

int i,n,a[10];printf("Enter total no. of Elements\n"); scanf("%d",&n);printf("Enter Array elements one by one\n");

for(i=0;i<n;i++) scanf("%d",&a[i]);

printf("The even numbers of given array:\n"); for(i=0;i<n;i++){

if(a[i]%2==0) printf("%d\n",a[i]);

}

}

OUTPUT:

Enter total no. of Elements 6Enter Array elements one by one 981135612214The even numbers of given array: 982214

SIMPLE PROGRAMMING FOR ONE DIMENSIONAL AND TWO DIMENSIONAL ARRAYS

MULTIPLICATION OF 2*2 MATRIXES

PROGRAM:

#include<stdio.h>

#include<conio.h>

void main()

{

int arr1[10][10], arr2[10][10];

int arr3[][3]={

{0,0,0},

{0,0,0},

{0,0,0}

};

int i, j;

clrscr();

printf("Enter 3x3 array 1:\n");

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

{

printf("Enter element %d x %d:",i,j);

scanf("%d",&arr1[i][j]);

}

}

printf("Enter 3x3 array 2:\n");

for(i=0;i<3;i++)

{

for(j=0;j<3;j++){

printf("Enter element %d x %d:",i,j);

scanf("%d",&arr2[i][j]);

}

}

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

{

arr3[i][j]=arr1[i][j] + arr2[i][j];

}

}

printf("Addition of Array 1 and Array 2 is: \n");

for(i=0;i<3;i++){

for(j=0;j<3;j++){

printf("\t%d",arr3[i][j]);

}

printf("\n");

}

getch();

}

OUTPUT: Enter 3x3 array 1:

Enter element 0 x 0:1

Enter element 0 x 1:1

Enter element 0 x 2:1

Enter element 1 x 0:1

Enter element 1 x 1:1

Enter element 1 x 2:1

Enter element 2 x 0:1

Enter element 2 x 1:1

Enter element 2 x 2:1

Enter 3x3 array 2:

Enter element 0 x 0:1

Enter element 0 x 1:1

Enter element 0 x 2:1

Enter element 1 x 0:1

Enter element 1 x 1:1

Enter element 1 x 2:1

Enter element 2 x 0:1

Enter element 2 x 1:1

Enter element 2 x 2:1

Addition of Array 1 and Array 2 is:

2 2 2

2 2 2

2 2 2

SOLVING PROBLEMS USING STRING FUNCTIONS

PROGRAM:

#include<stdio.h>#include<string.h> main(){

char s[20],s1[20]; printf("Enter a String\n"); scanf("%s",s); strcpy(s1,s); if(strcmp(s,s1)==0)

printf("The Given String is Palindrome\n");else

}printf("The Given String is Not Palindrome\n");

OUTPUT:

Enter a String madamThe Given String is Palindrome

SOLVING PROBLEMS USING STRING FUNCTIONS

STRING CONCATENATION

PROGRAM:

#include<stdio.h>#include<string.h> main(){

char s[20],s1[20]; printf("Enter a String1\n"); scanf("%s",s);printf("Enter a String2\n"); scanf("%s",s1);strcat(s,s1);printf("The Concatenated String is %s\n",s);

}

OUTPUT:

Enter a String1 hai

Enter a String2 helloThe Concatenated String is haihello

PROGRAM USING STRUCTURES

PROGRAM:

#include <stdio.h>

int main ()

{ int foo = 42; int bar = -1; int * foo_ptr;

foo_ptr = & foo;

printf ("Get the existing values of foo, bar, foo_ptr, and * foo_ptr:\n");

printf ("foo = %d\n", foo); printf ("bar = %d\n", bar); printf ("foo_ptr = %p\n", foo_ptr); printf ("* foo_ptr = %d\n", * foo_ptr);

printf ("Change the value of * foo_ptr:\n");

* foo_ptr = 99;

printf ("foo = %d\n", foo); printf ("bar = %d\n", bar); printf ("foo_ptr = %p\n", foo_ptr); printf ("* foo_ptr = %d\n", * foo_ptr);

printf ("Change the value of foo_ptr to & bar:\n");

foo_ptr = & bar;

printf ("foo = %d\n", foo); printf ("bar = %d\n", bar); printf ("foo_ptr = %p\n", foo_ptr); printf ("* foo_ptr = %d\n", * foo_ptr);

return 0; }

OUTPUT:

Getting the existing values of foo,foo_bar etc

PROGRAMS WITH USER DEFINED FUNCTIONS

FUNCTIONS WITHOUT ARGUMENTS & RETURN TYPE

PROGRAM: #include<std

io.h> void isleap(){

int yr;printf("Enter a Year\n"); scanf("%d",&yr); if(yr%4==0)

printf("Given Year is Leap year");else

}printf("Given Year is Not a Leap year");

main(){isleap();}

OUTPUT: OUTPUT:

Enter a year1965Given year is Not a leap year

PROGRAMS WITH USER DEFINED FUNCTIONS

FUNCTIONS WITHOUT ARGUMENTS & WITH RETURN TYPE

PROGRAM: #include<stdio.h>

#include<math.h> float area(){

int a,b,c;

float s,ar;printf("Enter 3 Sides\n"); scanf("%d%d%d",&a,&b,&c); s=(a+b+c)/2;ar=sqrt(s*(s-a)*(s-b)*(s-c)); return ar;

}

main(){

float a; a=area();printf("The Area of Triangle is %f\n",a);

}

OUTPUT:

Enter 3 Sides 1287The Area of Triangle is 19.748418

FUNCTIONS WITH ARGUMENTS & WITHOUT RETURN TYPE

PROGRAM:

{

#include<stdio.h>void sorting(int a[],int n)

int i,j,t;for(i=0;i<n

-1;i++)

{for(j=i+1;j<n;j++){

if(a[i]>a[j]){

t=a[i]; a[i]=a[j]; a[j]=t;

}}

}printf("Array Elemets before sorting\n"); for(i=0;i<n;i++)

printf("%d\t",a[i]);

}main(){

}

:

int i,a[10],n;printf("Enter total no. of elements\n"); scanf("%d",&n);printf("Enter Array Elements one by one\n"); for(i=0;i<n;i++)

scanf("%d",&a[i]);printf("Array Elemets before sorting\n"); for(i=0;i<n;i++)

printf("%d\t",a[i]); printf("\n");

sorting(a,n);

OUTPUT:

Enter total no. of elements6Enter Array Elements one by one 2129453011Array Elemets before sorting 21 29 45 30 11Array Elemets before sorting 29 11 21 30 45

PROGRAMS WITH USER DEFINED FUNCTIONS

FUNCTIONS WITH ARGUMENTS & RETURN TYPE

PROGRAM: #include<stdio.h>

int small(int a[],int n){

int s,i; s=a[0]; for(i=0;i<

n;i++)

{if(a[i

]<s) s=a[i];

} return s;

main(){

int i,a[10],n,s;printf("Enter total no. of elements\n"); scanf("%d",&n);printf("Enter Array Elements one by one\n"); for(i=0;i<n;i++)

scanf("%d",&a[i]); printf("Array Elemets:\n"); for(i=0;i<n;i++)

printf("%d\t",a[i]); printf("\n"); s=small(a,n);printf("The Smallest element of given array is %d",s);

}

OUTPUT:

Enter total no. of elements 5Enter Array

Elements one by one 1982660

Array Elemets: 1 98 26 6 0The Smallest element of given array is 0

PROGRAM USING RECURSIVE FUNCTION

FACTORIAL OF A NUMBER

PROGRAM:#include<stdio.h> int factorial(int n){

if(n==0 || n==1) return 1;

else

}return n*factorial(n-1);

main(){

int n;printf("\nEnter a Number\n"); scanf("%d",&n);printf("\nThe factorial of %d is %d\n",n,factorial(n));

}

OUTPUT:

Enter a Number 6 The factorial of 6 is 720

SEQUENTIAL FILE ACCESS

PROGRAM:

#include<stdio.h> #include<stdlib.h>

int c,i,id; char name[20]; FILE *fp; int n; int search(FILE *fp,int id);void display(FILE *fp);

typedef struct details { int id; char name[20]; }details;

details d;

void main(){ printf("\nHow many records you would like to insert ? : "); scanf("%d",&n); fp=fopen("one.txt","a"); for(i=0;i<n;i++) { printf("\nEnter id and name"); scanf("%d%s",&d.id,d.name); fwrite(&d,sizeof(d),1,fp);

} fclose(fp);

while(1) { printf("\nWhat would you like to do now ? : \n"); printf("\n1.Display \t2.Search \t3.Modify \t4.Delete \t5.Exit"); scanf("%d",&c); switch(c) { case 1: fp=fopen("one.txt","r+"); display(fp); fclose(fp); break; case 2: fp=fopen("one.txt","r+"); printf("\nEnter ID to search : "); scanf("%d",&id); if(search(fp,id)) { printf("\nThe record is as follows : "); printf("\n%d\t%s",d.id,d.name); } else printf("\nRecord not found"); fclose(fp); break; case 3: fp=fopen("one.txt","r+"); printf("\nEnter ID to modify d record : "); scanf("%d",&id);

if(search(fp,id)) { printf("\nEnter new name"); scanf("%s",d.name); fwrite(&d,sizeof(d),1,fp); } else printf("\nSpecified record not found "); fclose(fp); break; } }}

int search(FILE *fp,int id){ rewind(fp); while(fread(&d,sizeof(d),1,fp))

{ if(id==d.id) return 1; } return 0;}

void display(FILE *fp){ rewind(fp); while(fread(&d,sizeof(d),1,fp)) { printf("\n%d\t%s",d.id,d.name); }}

OUTPUT: How many records you would like to insert ?: 4 Enter id and name 1 anu Enter id and name 2 akash Enter id and name 3 adhavan Enter id and name 4 jai

What would you like to do now?: 1.Display 2.Search 3.Modify 4.Delete 5. Exit 1 1 anu 2 akash 3 adhavan 4 jai

What would you like to do now?: 1.Display 2.Search 3.Modify 4.Delete 5. Exit 2Enter id to search:2 2 akash What would you like to do now?: 1.Display 2.Search 3.Modify 4.Delete 5. Exit 3Enter id to modify d record: 4Enter new name 4 jaijai What would you like to do now?: 1.Display 2.Search 3.Modify 4.Delete 5. Exit5

RANDOM FILE ACCESS

PROGRAM

#include <stdio.h>

struct hardwareData {

int recordNum;char toolname[20];int quantity;double cost;

};

//functions int enterChoice( void ); void printList( FILE *readPtr ); void updateRecord( FILE *fPtr ); void newRecord( FILE *fPtr ); void deleteRecord( FILE *fPtr );

int main() { FILE *cfPtr; int choice;

if ((cfPtr = fopen( "hardware.dat", "ab+" )) == NULL ) {

printf( "File could not be opened.\n" );}else {

while ( choice != 4 ) {

switch ( choice = enterChoice() ) { //adds a new record, or upates one

case 1:newRecord ( cfPtr );break;

//deletes a record case 2:

deleteRecord ( cfPtr );break;

//prints listcase 3:

printList ( cfPtr ); break;

//display message if user does not enter valid choice default:

printf( "Incorrect choice\n" );break;

}

} fclose( cfPtr );

} //system("pause");return 0;

}

void printList( FILE *fPtr )//print function { struct hardwareData hardware;

fseek(fPtr, 0, SEEK_SET);printf("%-10s%-16s%-10s%10s\n", "Number", "Name", "Quantity", "cost");

while(fread(&hardware, sizeof( struct hardwareData), 1, fPtr)) {if(hardware.recordNum != 0){

printf("%-10d%-16s%-10d%-10.2lf\n", hardware.recordNum, hardware.toolname, hardware.quantity, hardware.cost);

}}

}

void deleteRecord( FILE *fPtr ) {

struct hardwareData hardware; struct hardwareData blankRecord = { 0, "", 0,0.00 };int recordNum;

printf( "Enter record number to delete (1-100): " );scanf( "%d", &recordNum );

fseek( fPtr, ( recordNum - 1 ) * sizeof( struct hardwareData ), SEEK_SET );

fread( &hardware, sizeof( struct hardwareData ), 1, fPtr );

if ( hardware.recordNum==0 ) {

printf ( "Record %d does not exist.\n", recordNum );} else {

fseek( fPtr, ( recordNum - 1 ) * sizeof( struct hardwareData ), SEEK_SET );fwrite( &blankRecord, sizeof( struct hardwareData ), 1, fPtr );printf("\ndeleted\n");

} }

void newRecord( FILE *fPtr ) {

struct hardwareData hardware = { 0, "", 0, 0.0 };int piece;

printf( "Enter record number to create (1-100) : " );scanf( "%d", &piece);

fseek( fPtr, (piece - 1) * sizeof( struct hardwareData ), SEEK_SET );

fread( &hardware, sizeof( struct hardwareData ), 1, fPtr );

printf( "Enter tool name, quantity, cost\n?" );scanf("%s%d%lf", &hardware.toolname, &hardware.quantity, &hardware.cost);

hardware.recordNum = piece;

fseek(fPtr, (hardware.recordNum-1) * sizeof( struct hardwareData), SEEK_SET);

fwrite( &hardware, sizeof( struct hardwareData), 1, fPtr);} int enterChoice( void ) {

int menuChoice;printf( "\nEnter your choice\n"

"1 - Add a new tool, or update an existing tool\n""2 - Delete a tool\n""3 - Print the list\n""4 - End program\n?\n");

scanf( "%d", &menuChoice );

getchar();return menuChoice;

}

OUTPUT:

Enter your choice1- Add a new tool,or update an existing tool2- Delete a tool3- Print the list4- End program

?1 Enter record number to create(1-100):55 Enter tool name,quantity,cost RAM,2gb,3000

Enter your choice1-Add a new tool,or update an existing tool2-Delete a tool

3-Print the list4-End program

?1

Enter record number to create(1-100):68 Enter tool name,quantity,cost ROM,1gb,2000

Enter your choice1-Add a new tool,or update an existing tool2-Delete a tool

3-Print the list4-End program

?1 Enter record number to create(1-100):23 Enter tool name,quantity,cost

Joystick,2mb,5000

Enter your choice1-Add a new tool,or update an existing tool2-Delete a tool

3-Print the list4-End program

?1

Enter record number to create(1-100):20 Enter tool name,quantity,cost Jai,1mb,3000 Enter your choice

1-Add a new tool,or update an existing tool2-Delete a tool

3-Print the list 4-End program ?3 Number Name Quantity Cost 55 Ram,2gb,3000 12 0.00 68 Rom,1gb,2000 0 0.00 23 Joystick,2mb,5000 2 3.00 20 jai,1mb,3000 0 0.00

Enter your choice1-Add a new tool,or update an existing tool2-Delete a tool

3-Print the list4-End program

?4

PROGRAM USING STRUCTURES

STUDENT RECORD

PROGRAM:

#include<stdio.h> struct student{

int rno,m1,m2,m3; float avg;char name[20],dept[10];

};main(){

struct student s;printf("Enter the Student Details:\n"); printf("Enter the Stuent roll no:\n"); scanf("%d",&s.rno);printf("Enter the Stuent Name:\n"); scanf("%s",&s.name);printf("Enter the Stuent Dept:\n"); scanf("%s",&s.dept);printf("Enter the 3 marks:\n"); scanf("%d%d%d",&s.m1,&s.m2,&s.m3); s.avg=(s.m1+s.m2+s.m3)/3;printf("The Student Average is :%f\n",s.avg);

}

OUTPUT:

Enter the Student Details: Enter the Stuent roll no: 12Enter the Stuent Name: KumarEnter the Stuent Dept: CSEEnter the Stuent marks: 401890The Student Average is :49.0000

CONVERSION OF INFIX EXPRESSION TO POST

PROGRAM:

#include<stdio.h>#include<conio.h>int stack[20],top=0;char inf[40],post[40];void push(int);void postfix();char pop();void main(void){

clrscr();printf("\t\t\t****INFIX TO POSTFIX****\n\n");printf("Enter the infix expression :: ");scanf("%s",inf);postfix();getch();

}void postfix(){

int i,j=0;for(i=0;inf[i]!=NULL;i++){

switch(inf[i]){

case '+':while(stack[top]>=1)

post[j++]=pop();push(1);break;

case '-':while(stack[top]>=1)

post[j++]=pop();push(2);break;

case '*':while(stack[top]>=3)

post[j++]=pop();push(3);break;

case '/':while(stack[top]>=3)

post[j++]=pop();push(4);break;

case '^':while(stack[top]>=4)

post[j++]=pop();

push(5);break;

case '(':push(0);break;

case ')':while(stack[top]!=0)

post[j++]=pop();top--;break;

default:post[j++]=inf[i];

}}while(top>0)

post[j++]=pop();printf("\nPostfix Expression is :: %s",post);

}void push(int ele){

top++;stack[top]=ele;

}char pop(){

char e;e=stack[top];top--;switch(e){

case 1:e='+';break;

case 2:e='-';break;

case 3:e='*';break;

case 4:e='/';break;

case 5:e='^';break;

}return(e);

}

OUTPUT:

Enter the infix expression :: (a+b)/(c*d)

Postfix Expression is :: ab+cd*/

Manual Calculation

SE EXPRESSION STACK RESULT FIELD( (A A+ +,( AB +,( AB) ),( AB+/ / AB+( (,/C (,/ AB+C- -,(,/ AB+CD -,(,/ AB+CD+ +,(,/ AB+CD-

E +,(,/ AB+CD-E) ),+,(,/ AB+CD-E++ +,/ AB+CD-E+/F + AB+CD-E/F- - AB+CD-E/F+G - AB+CD-E/F+G

AB+CD-E/F+G-

EVALUATING OF POSTFIX EXPRESSION

PROGRAM

#include<stdio.h>

#include<conio.h>

#include<string.h>

#define MAX 50

int stack[MAX];

char post[MAX];

int top = -1;

void pushstack(int tmp);

void calculator(char c);

void main()

{

int i;

clrscr();

printf("Insert a postfix notation :: ");

gets(post);

for (i = 0; i < strlen(post); i++)

{

if (post[i] >= '0' && post[i] <= '9')

{

pushstack(i);

}

if (post[i] == '+' || post[i] == '-' || post[i] == '*' || post[i] == '/' || post[i] == '^')

{

calculator(post[i]);

}

}

printf("\n\nResult :: %d", stack[top]);

getch();

}

void pushstack(int tmp)

{

top++;

stack[top] = (int)(post[tmp] - 48);

}

void calculator(char c)

{

int a, b, ans;

a = stack[top];

stack[top] = '\0';

top--;

b = stack[top];

stack[top] = '\0';

top--;

switch (c)

{

case '+':

ans = b + a;

break;

case '-':

ans = b - a;

break;

case '*':

ans = b*a;

break;

case '/':

ans = b / a;

break;

case '^':

ans = b^a;

break;

default:

ans = 0;

}

top++;

stack[top] = ans;

}

OUTPUT:

Insert a postfix notation: 1453*+8- Result:11

LINKED LIST IMPLEMENTATION OF STACK

PROGRAM:

#include<stdio.h>#include<conio.h>#include<stdlib.h>push();void pop();void display();struct node{

int data;struct node *next;

}*top=NULL;void main(){

int ch;clrscr();printf("\n\n1.Push\n\n2.Pop\n\n3.Display");do{

printf("\n\nEnter your Choice :: ");scanf("%d",&ch);switch(ch){

case 1:push();break;

case 2:pop();break;

case 3:printf("\n\nContents of stack :: \t");display();break;

default:printf("\n\nInvalid Choice......");getch();exit(0);

}}while(ch<4);getch();

}push(){

int x;struct node *newnode;newnode=malloc(sizeof(struct node));

printf("\n\nEnter the number to be pushed into the stack :: ");scanf("%d",&x);

newnode->data=x;if(top==NULL){

newnode->next=top;top=newnode;

}else{

newnode->next=top;top=newnode;

}printf("\n\nNumber pushed is %d",x);return(x);}

void pop(){

struct node *t;if(top==NULL)

printf("\n\nStack Underflow");else{

t=top;top=top->next;printf("\nDeleted element is %d",t->data);free(t);

}getch();

}void display(){

struct node*i;for(i=top;i!=NULL;i=i->next)

printf("%d , ",i->data);if(top==NULL)

printf("Stack is empty");getch();

}

OUTPUT:

1.Push2.Pop3.Display

Enter your Choice :: 1

Enter the number to be pushed into the stack :: 5

Number pushed is 5

Enter your Choice :: 1

Enter the number to be pushed into the stack :: 10

Number pushed is 10

Enter your Choice :: 3

Contents of stack :: 10 , 5 ,

Enter your Choice :: 2

Deleted element is 10

Enter your Choice :: 3

Contents of stack :: 5 ,

Enter your Choice :: 5

Invalid Choice......

LINKED LIST IMPLEMENTATION OF QUEUE

PROGRAM:

#include <stdlib.h>

typedef struct node

{

 int data;

 struct node *link;

} NODE;

 

void Insert(int);

int Delete();

void Display();

NODE *front, *rear; /* Global Declarations */

 

main()

{

 /* Main Program */

 int opn, elem;

 front = rear = NULL;

 do {

  clrscr();

  printf("\n ### Linked List Implementation of QUEUE Operations ### \n\n");

  printf("\n Press 1-Insert, 2-Delete, 3-Display,4-Exit\n");

  printf("\n Your option ? ");

  scanf("%d", &opn);

  switch (opn) {

  case 1:

   printf("\n\nRead the Element to be Inserted ?");

   scanf("%d", &elem);

   Insert(elem);

   break;

  case 2:

   elem = Delete();

   if (elem != -1)

    printf(" Deleted Node(From Front)with the Data: %d\n", elem);

   break;

  case 3:

   printf("Linked List Implementation of Queue: Status:\n");

   Display();

   break;

  case 4:

   printf("\n\n Terminating \n\n");

   break;

  default:

   printf("\n\nInvalid Option !!! Try Again !! \n\n");

   break;

  }

  printf("\n\n\n\n  Press a Key to Continue . . . ");

  getch();

 } while (opn != 4);

}

 

void Insert(int info) {

 NODE *temp;

 temp = (NODE *) malloc(sizeof(NODE));

 if (temp == NULL)

  printf(" Out of Memory !! Overflow !!!");

 else {

  temp->data = info;

  temp->link = NULL;

  if (front == NULL) {

   front = rear = temp;

  } /* First Node? */

  else {

   rear->link = temp;

   rear = temp;

  } /* Insert End */

  printf(" Node has been inserted at End Successfully !!");

 }

}

 int Delete() {

 int info;

 NODE *t;

 if (front == NULL) {

  printf(" Underflow!!!");

  return -1;

 } else {

  t = front;

  info = front->data;

  if (front == rear)

   rear = NULL;

  front = front->link;

  t->link = NULL;

  free(t);

  return (info);

 }

}

 void Display() {

 NODE *t;

 if (front == NULL)

  printf("Empty Queue\n");

 else {

  t = front;

  printf("Front->");

  while (t) {

   printf("[%d]->", t->data);

   t = t->link;

  }

  printf("Rear\n");

 }

}

OUTPUT:

### Linked List Implementation of Queue operation ###

Press 1-Insert, 2-Delete, 3-Display, 4-Exit Your option ? 1 Read the element to be inserted ? 10 Node has been inserted at end successfully !! Press a Key to continue …….

Your option ? 1 Read the element to be inserted ? 20 Node has been inserted at end successfully !! Press a Key to continue ……. Your option ? 1 Read the element to be inserted ? 30 Node has been inserted at end successfully !! Press a Key to continue …….

Your option ? 1 Read the element to be inserted ? 40 Node has been inserted at end successfully !! Press a Key to continue ……. Your option ? 3 Linked List Implementation of Queue:Status: Front->[10]->[20]->[30]->[40]->Rear Press a Key to continue ……. Your option ? 4

Terminating Press a Key to continue …….

SORTING ALGORITHMS

BUBBLE SORT

PROGRAM :

#include<stdio.h>

#include<conio.h> void

bubble(int [],int); void

main()

{

int a[20],i,n;

clrscr();

printf("Enter the number of items in the array");

scanf("%d",&n);

printf("Enter the data in the array");

for(i=0;i<n;i++)

{

scanf("%d",&a[i]);

} bubble(a,n);

getch();

}

void bubble(int a[],int n)

{

int i,temp,j,p;

for(i=1;i<n;i++)

{

for(p=0;p<n-i;p++)

{

if(a[p]>a[p+1])

{

temp=a[p];

a[p]=a[p+1];

a[p+1]=temp;

}

}

}

for(i=0;i<n;i++)

printf("\n%d",a[i]);

}

OUTPUT: Enter the number of items in the array 5 35 25 15 65 5 Enter the data in the array 5 15 25 35 65

SELECTION SORT

PROGRAM :

#include<stdio.h>

#include<conio.h> void

select(int [],int); void

bubble(int [],int); int

min(int [],int,int);

void main()

{

int a[20],i,n;

clrscr();

printf("Enter the number of items in the array");

scanf("%d",&n);

printf("Enter the data in the array");

for(i=0;i<n;i++)

{

scanf("%d",&a[i]);

}

bubble(a,n);

select(a,n);

getch();

}

void bubble(int a[],int n)

{

int i,temp,p;

for(i=1;i<n;i++)

{

for(p=0;p<n-i;p++)

{

if(a[p]>a[p+1])

{

temp=a[p];

a[p]=a[p+1];

a[p+1]=temp;

}

}

}

printf("\nData After Bubble Sort");

for(i=0;i<n;i++)

printf("\n%d",a[i]);

}

void select(int a[],int n){

int i,loc,temp; loc=0; temp=0;for(i=0;i<n;i++){

loc=min(a,i,n); temp=a[loc];

a[loc]=a[i]; a[i]=temp;

}printf("\nData After Selection Sort"); for(i=0;i<n;i++)printf("\n%d",a[i]);

}

int min(int a[],int lb,int ub){

int m=lb; while(lb<ub){if(a[lb]<a[m]){

m=lb;}

lb++;}

return m; }

OUTPUT: Enter the number of items in the array 4 Enter the data in the array

10 23 89 45 Data After Bubble sort 10 23 45 89

Data After Selection sort 10 23 45 89

INSERTION SORT

PROGRAM :

#include<stdio.h>

int main(){

 int i,j,s,temp,a[20];

  printf("Enter total elements: ");

  scanf("%d",&s);

  printf("Enter %d elements: ",s);

  for(i=0;i<s;i++)

      scanf("%d",&a[i]);

  for(i=1;i<s;i++){

      temp=a[i];

      j=i-1;

      while((temp<a[j])&&(j>=0)){

       a[j+1]=a[j];

          j=j-1;

      }

      a[j+1]=temp;

  }

  printf("After sorting: ");

  for(i=0;i<s;i++)

      printf(" %d",a[i]);

  return 0;

}

OUTPUT:

Enter total elements: 5

Enter 5 elements: 3 7 9 0 2

After sorting:  0 2 3 7 9

QUICK SORT

PROGRAM :

#include<stdio.h>

void quicksort(int [10],int,int);

int main(){

  int x[20],size,i;

  printf("Enter size of the array: ");

  scanf("%d",&size);

  printf("Enter %d elements: ",size);

  for(i=0;i<size;i++)

    scanf("%d",&x[i]);

  quicksort(x,0,size-1);

  printf("Sorted elements: ");

  for(i=0;i<size;i++)

    printf(" %d",x[i]);

  return 0;

}

void quicksort(int x[10],int first,int last){

    int pivot,j,temp,i;

     if(first<last){

         pivot=first;

         i=first;

         j=last;

         while(i<j){

             while(x[i]<=x[pivot]&&i<last)

                 i++;

             while(x[j]>x[pivot])

                 j--;

             if(i<j){

                 temp=x[i];

                  x[i]=x[j];

                  x[j]=temp;

             }

         }

         temp=x[pivot];

         x[pivot]=x[j];

         x[j]=temp;

         quicksort(x,first,j-1);

         quicksort(x,j+1,last);

    }

}

OUTPUT: Enter size of the array: 5

Enter 5 elements: 3 8 0 1 2

Sorted elements: 0 1 2 3 8

LINEAR SEARCH

PROGRAM :

#include<stdio.h>

#include<conio.h>

void main()

{

int

a[10],i,no,item,flag=0;

char c=’y’,ch;

clrscr();

while(c==’y’||’Y’)

{

printf(“\nEnter the sizeof sorting”);

scanf(%d’,&no);

printf("Enter the data in the array");

for(i=0;i<10;i++)

{

scanf("%d",&a[i]);

}

printf("Enter the element to be searched");

scanf("%d",&item);

for(i=0;i<10;i++)

{

if(item==a[i])

{

flag=1;

break;

}

}

if(flag==0)

printf("Element Not Found");

else

printf("Element Found at Position =%d",i);

getch();

}

OUTPUT:

Enter the size of sorting 5 Enter the elements of the array 3 2 1 6 5 Enter the element to be searched 4 Element 4 is Not Found Enter the element to be searched 6 Element 6 is in the position 4

BINARY SEARCH

PROGRAM :

#include<stdio.h>#include<conio.h>

void main(){

int a[20],n,mid,beg,i,end,item,loc=-1;

clrscr();printf("Enter the number of elements to be entered\n");scanf("%d",&n);printf("Enter the elements in ascending order");

for(i=0;i<n;i++){

scanf("%d",&a[i]);}

printf("Enter the element to be searched");

scanf("%d",&item);beg=0; end=n-1; while(beg<=end)

{mid=(beg+end)/2; if(item==a[mid]){ loc=mid; break;}

else if(a[mid]<item) beg=mid+1;else end=mid-1;}if(loc==-1)printf("Element Not Present"); elseprintf("Element found at =%d",loc); getch();}

OUTPUT:

Enter the number of elements to be entered 5 Enter the elements in ascending order 1 3 4 5 6 Enter the elements to be searched 3 Element 3 found at position 2 Enter the elements to be searched 2 Element Not Present