 |
/*PROGRAM TO ADD TWO POLYNOMIALS USING ARRAY*/
#include <stdio.h>
typedef struct poly
{
int coeff;
int exp;
}terms;
int addpoly();
void main()
{
terms p1[20],p2[20],p3[20];
int i,j,n1,n2,t=1,k;
clrscr();
printf("ENTER NUMBER OF TERMS FOR FIRST POLYNOMIAL ");
scanf("%d",&n1);
for (i=0;i<n1;i++)
{
printf("COEFFICIENT ");
scanf("%d",&p1[i].coeff);
printf("EXPONENT ");
scanf("%d",&p1[i].exp);
}
clrscr();
printf("ENTER NUMBER OF TERMS FOR SECOND POLYNOMIAL ");
scanf("%d",&n2);
for (i=0;i<n2;i++)
{
printf("COEFFICIENT ");
scanf("%d",&p2[i].coeff);
printf("EXPONENT ");
scanf("%d",&p2[i].exp);
}
k=addpoly(p1,p2,p3,n1,n2);
clrscr();
printf("FIRST POLYNOMIAL\n\t");
for (i=0;i<n1;i++)
{
printf("%dx^%d",p1[i].coeff,p1[i].exp);
if (i!=n1-1)
printf(" + ");
}
printf("\n\nSECOND POLYNOMIAL\n\t");
for (i=0;i<n2;i++)
{
printf("%dx^%d",p2[i].coeff,p2[i].exp);
if (i!=n2-1)
printf(" + ");
}
printf("\n\nTHE ADDED POLYNOMIAL\n\t");
for (i=0;i<k;i++)
{
printf("%dx^%d",p3[i].coeff,p3[i].exp);
if (i!=k-1)
printf(" + ");
}
getch();
}
int addpoly(terms p1[],terms p2[],terms p3[],int l1,int l2)
{
int i=0,j=0,k=0,nc;
while ((i<l1) && (j<l2))
{if (p1[i].exp==p2[j].exp)
{
nc=p1[i].coeff+p2[j].coeff;
if (nc!=0)
{
p3[k].coeff=nc;
p3[k].exp=p1[i].exp;
k=k+1;
}
i++;
j++;
}
else if (p1[i].exp>p2[j].exp)
{
p3[k].exp=p1[i].exp;
p3[k].coeff=p1[i].coeff;
i++;
k++;
}
else
{
p3[k].exp=p2[j].exp;
p3[k].coeff=p2[j].coeff;
j++;
k++;
}
}
while (i<l1)
{
p3[k].exp=p1[i].exp;
p3[k].coeff=p1[i].coeff;
i++;
k++;
}
while (j<l2)
{
p3[k].exp=p2[j].exp;
p3[k].coeff=p2[j].coeff;
j++;
k++;
}
return k;
}
|
 |
/* PROGRAM TO IMPLEMENT A STACK AND TO PERFORM PUSH
AND POP OPERATIONS*/
#include<stdio.h>
#define MAX 50;
typedef struct
{
int item[50];
int top;
}stack;
void initialize(stack *st)
{
st-> top=-1;
}
void push(stack *st,int data)
{
if(st->top==49)
printf("STACK FULL");
else{(st->top)++;
st->item[st->top]=data;
}
}
int pop(stack *st,int data)
{
if(st->top==-1)
{printf("EMPTY STACK");
exit(0);
}
else
{ data=st->item[st->top];
(st->top)--;
return data;
}
}
main()
{ stack st1;
int n1,n2,n3,p;
initialize(&st1);
clrscr();
while(1)
{
gotoxy(10,8);
printf("1.INSERT ITEM");
gotoxy(10,10);
printf("2.DELETE ITEM");
gotoxy(10,12);
printf("3.EXIT");
gotoxy(10,14);
printf("Enter your choice(1-3)? ");
scanf("%d",&n1);
switch(n1)
{ case 1: clrscr();
printf("ENTER THE DATA YOU WANT TO INSERT: ");
scanf("%d",&n2);
push(&st1,n2);
break;
case 2: clrscr();
printf("ENTER THE DATA YOU WANT TO DELETE: ");
scanf("%d",&n3);
p= pop(&st1,n3);
printf("\n THE DATA DELETED IS:");
printf("%d",p);
break;
case 3: exit();
default:
gotoxy(10,16);
printf("WRONG CHOICE");
gotoxy(10,17);
printf("PRESS ANY KEY TO EXIT THE PROGRAM");
getch();
exit();
}
}
}
|
 |
/* PROGRAM TO IMPLEMENT A LINEAR QUEUE */
#include <stdio.h>
typedef struct
{
int item [50];
int front,rear;
}queue;
void insert(queue *q,int data)
{
if(q->rear==49)
printf("QUEUE FULL");
else
{
(q->rear)++;
q->item[q->rear]=data;
}
}
void initialize(queue *q)
{
q->front=-1;
q->rear=-1;
}
int delete(queue *q,int data)
{
if(q->front==q->rear)
{
printf("QUEUE EMPTY");
exit(0);
}
else
{
(q->front)++;
data =q->item[q->front];
return data;
}
}
main()
{ queue q1;
int n1,n2,n3,p;
initialize(&q1);
clrscr();
while(1)
{
gotoxy(10,8);
printf("1.INSERT ITEM");
gotoxy(10,10);
printf("2.DELETE ITEM");
gotoxy(10,12);
printf("3.EXIT");
gotoxy(10,14);
printf("Enter your choice(1-3)? ");
scanf("%d",&n1);
switch(n1)
{ case 1: clrscr();
printf("ENTER THE DATA YOU WANT TO INSERT: ");
scanf("%d",&n2);
insert(&q1,n2);
break;
case 2: clrscr();
printf("ENTER THE DATA YOU WANT TO DELETE: ");
scanf("%d",&n3);
p= delete(&q1,n3);
printf("\n THE DATA DELETED IS:");
printf("%d",p);
break;
case 3: exit();
default:
gotoxy(10,16);
printf("WRONG CHOICE");
gotoxy(10,17);
printf("PRESS ANY KEY TO EXIT THE PROGRAM");
getch();
exit();
}
}
}
|
 |
/* PROGRAM TO IMPLEMENT A CIRCULAR QUEUE */
#include<stdio.h>
#define n 2;
typedef struct
{
int item[2];
int front,rear;
}queue;
void insert(queue *q,int data)
{
if((q->rear+1)%2==q->front)printf("queue full");
else
{
q->rear=(q->rear+1)%2;
q->item[q->rear]=data;
}
}
void initialize(queue *q)
{
q->front=0;
q->rear=0;
}
int delete(queue *q)
{
int data;
if(q->rear==q->front)
{
printf("queue empty");
return 54;
}
else
{
q->front=(q->front+1)%2;
data=q->item[q->front];
return data;
}
}
main()
{
queue q;
clrscr();
initialize(&q);
while(1)
{
int n1,n2,n3;
clrscr();
gotoxy(12,12);
printf("1.INSERTION");
gotoxy(12,13);
printf("2.DELETION");
gotoxy(12,14);
printf("3.EXIT");
gotoxy(12,15);
printf("enter your choice?\n");
scanf("%d",&n1);
switch(n1)
{
case 1:clrscr();
printf("enter the data you want to enter=");
scanf("%d",&n2);
insert(&q,n2);
getch();
break;
case 2:clrscr();
n3=delete(&q);
if(n3!=54)printf("the deleted data=%d",n3);
getch();
break;
case 3:
exit();
default:
printf("wrong choice,try again");
getch();
break;
}
}
}
|
 |
/*PROGRAM TO IMPLEMENT A SINGLY LINKED LIST*/
#include<stdio.h>
typedef struct list
{
int data;
struct list *link;
}node;
node *head;
void initialize()
{
head=NULL;
}
void insert_begin(int data)
{
node *newnode;
newnode=(node *)malloc(sizeof(node));
newnode->data=data;
newnode->link=head;
head=newnode;
}
void insert_end(int item)
{
node *newnode,*p;
newnode=(node *)malloc(sizeof(node));
newnode->data=item;
newnode->link=NULL;
if(head==NULL)
head=newnode;
else
{
p=head;
while(p->link !=NULL)p=p->link;
p->link=newnode;
}
}
int delete_beg()
{
node *p;
int n;
p=head;
n=p->data;
head=p->link;
free(p);
return n;
}
int delete_end()
{
node *p,*q;
int n;
p=head;
while(p->link!=NULL)
{
q=p;
p=p->link;
}
q->link=NULL;
n=p->data;
free(p);
return n;
}
void display()
{
int data;
node *p;
p=head;
while(p->link!=NULL)
{
printf("%d\n",p->data);
p=p->link;
}
printf("\n%d",p->data);
}
main()
{
initialize();
while(1)
{
int n1,n2,n3,n4;
clrscr();
gotoxy(10,10);
printf("1.INSERTION AT THE BEGINNING");
gotoxy(10,11);
printf("2.INSERTION AT THE END");
gotoxy(10,12);
printf("3.DELETION FROM THE BEGINNING");
gotoxy(10,13);
printf("4.DELETION FROM THE END");
gotoxy(10,14);
printf("5.DISPLAY");
gotoxy(10,15);
printf("6.EXIT");
gotoxy(10,16);
printf("ENTER YOUR CHOICE?\n");
scanf("%d",&n1);
switch(n1)
{
case 1:clrscr();
printf("ENTER YOUR DATA=");
scanf("%d",&n2);
insert_begin(n2);
break;
case 2:clrscr();
printf("ENTER YOUR DATA=");
scanf("%d",&n2);
insert_end(n2);
break;
case 3:clrscr();
n3=delete_beg();
printf("THE DELETED ITEM=%d",n3);
getch();
break;
case 4:clrscr();
n4=delete_end();
printf("THE DELETED DATA=%d",n4);
getch();
break;
case 5:clrscr();
display();
getch();
break;
case 6:
exit();
default:
printf("WRONG CHOICE,TRY AGAIN");
getch();
break;
}
}
}
|