9. Data Structure Program | Read Now
Data Structure VTU lab program -9
- Design, Develop and Implement a Program in C for the following operations on Singly Circular Linked List (SCLL) with header nodes
- Represent and Evaluate a Polynomial P(x,y,z) = 6x2y2z-4yz5+3x3yz+2xy5z-2xyz3
- Find the sum of two polynomials POLY1(x,y,z) and POLY2(x,y,z) and store the result in POLYSUM(x,y,z)
- Support the program with appropriate functions for each of the above operations
Program -9 code [scll.c]
#include<stdio.h> #include<math.h> #include<stdlib.h> #include<math.h> typedef struct node { int expo,coef; struct node *next; }node; /*FUNCTION PROTOTYPE*/ node * insert(node *,int,int); node * create(); node * add(node *p1,node *p2); int eval(node *p1); void display(node *head); node *insert(node*head,int expo1,int coef1) { node *p,*q; p=(node *)malloc(sizeof(node)); p->expo=expo1; p->coef=coef1; p->next=NULL; if(head==NULL) { head=p; head->next=head; return(head); } if(expo1>head->expo) { p->next=head->next; head->next=p; head=p; return(head); } if(expo1==head->expo) { head->coef=head->coef+coef1; return(head); } q=head; while(q->next!=head&&expo1>=q->next->expo) q=q->next; if(p->expo==q->expo) q->coef=q->coef+coef1; else { p->next=q->next; q->next=p; } return(head); } node *create() { int n,i,expo1,coef1; node *head=NULL; printf("\n\nEnter no of terms of polynomial==>"); scanf("%d",&n); for(i=0;i<n;i++) { printf("\n\nEnter coef & expo==>"); scanf("%d%d",&coef1,&expo1); head=insert(head,expo1,coef1); } return(head); } node *add(node *p1,node *p2) { node *p; node *head=NULL; printf("\n\n\nAddition of polynomial==>"); p=p1->next; do { head=insert(head,p->expo,p->coef); p=p->next; }while(p!=p1->next); p=p2->next; do { head=insert(head,p->expo,p->coef); p=p->next; }while(p!=p2->next); return(head); } int eval(node *head) { node *p; int x,ans=0; printf("\n\nEnter the value of x="); scanf("%d",&x); p=head->next; do { ans=ans+p->coef*pow(x,p->expo); p=p->next; }while(p!=head->next); return(ans); } void display(node *head) { node *p,*q; int n=0; q=head->next; p=head->next; do { n++; q=q->next; }while(q!=head->next); printf("\n\n\tThe polynomial is==>"); do { if(n-1) { printf("%dx^(%d) + ",p->coef,p->expo); p=p->next; } else { printf(" %dx^(%d)",p->coef,p->expo); p=p->next; } n--; } while(p!=head->next); } void main() { int a,x,ch; node *p1,*p2,*p3; p1=p2=p3=NULL; while(1) { printf("\n\t----------------<< MENU >>---------------"); printf("\n\tPolynomial Operations :"); printf(" 1.Add"); printf("\n\t\t\t\t2.Evaluate"); printf("\n\t\t\t\t3.Exit"); printf("\n\t------------------------------------------- "); printf("\n\n\n\tEnter your choice==>"); scanf("%d",&ch); switch(ch) { case 1 : p1=create(); display(p1); p2=create(); display(p2); p3=add(p1,p2); display(p3); break; case 2 : p1=create(); display(p1); a=eval(p1); printf("\n\nValue of polynomial=%d",a); break; case 3 : exit(0); break; default : printf("\n\n\t invalid choice"); break; } } }
Data Structure – How to Run this Program
- Step-1: Copy the above code
- Step-2: Paste it in any C compiler [Codeblocks/Dev C++/ VsCode etc]
- Step-3: Save the file name with .C extension
- Step-4: Compile the program
- Step-5: Run the program
- Step-6: Program Execution Successful