Skip to content
codingtube

codingtube

Coding and Programming tutorials

  • javascript
  • React
  • ES6
  • React js
  • coding
  • ffmpeg
  • java
  • programming
  • information
  • coding
  • Privacy Policy
  • Twitter trends
  • Age Calculatore
  • Codingtube Community
  • YouTube Tags Generator
  • About
  • Toggle search form

C program to store a polynomial using linked list. Also perform addition and subtraction on two polynomials

Posted on December 14, 2021 By christo No Comments on C program to store a polynomial using linked list. Also perform addition and subtraction on two polynomials

Complete C program to store a polynomial using linked list. Also, perform addition and subtraction on two polynomials

#include <stdio.h>
#include <conio.h>
#include <malloc.h>
struct node
{
int num;
int coeff;
struct node *next;
};
struct node *start1 = NULL;
struct node *start2 = NULL;
struct node *start3 = NULL;
struct node *start4 = NULL;
struct node *last3 = NULL;
struct node *create_poly(struct node *);
struct node *display_poly(struct node *);
struct node *add_poly(struct node *, struct node *, struct node *);
struct node *sub_poly(struct node *, struct node *, struct node *);
struct node *add_node(struct node *, int, int);
int main()
{
int option;
clrscr();
do
{
 printf("\n******* MAIN MENU *******");
printf("\n 1. Enter the first polynomial");
printf("\n 2. Display the first polynomial");
 printf("\n 3. Enter the second polynomial");
 printf("\n 4. Display the second polynomial");
 printf("\n 5. Add the polynomials");
 printf("\n 6. Display the result");
 printf("\n 7. Subtract the polynomials");
 printf("\n 8. Display the result");
 printf("\n 9. EXIT");
 printf("\n\n Enter your option : ");
 scanf("%d", &option);
 switch(option)
 {
 case 1: start1 = create_poly(start1);
 break;
 case 2: start1 = display_poly(start1);
 break;
 case 3: start2 = create_poly(start2);
 break;
 case 4: start2 = display_poly(start2);
 break;
 case 5: start3 = add_poly(start1, start2, start3);
 break;
 case 6: start3 = display_poly(start3);
 break;
 case 7: start4 = sub_poly(start1, start2, start4);
 break;
 case 8: start4 = display_poly(start4);

break;
 }
}while(option!=9);
getch();
return 0;
}
struct node *create_poly(struct node *start)
{
struct node *new_node, *ptr;
int n, c;
printf("\n Enter the number : ");
scanf("%d", &n);
printf("\t Enter its coefficient : ");
scanf("%d", &c);
while(n != –1)
{
 if(start==NULL)
 {
 new_node = (struct node *)malloc(sizeof(struct node));
 new_node -> num = n;
 new_node -> coeff = c;
 new_node -> next = NULL;
 start = new_node;
 }
 else
 {
 ptr = start;
 while(ptr -> next != NULL)
 ptr = ptr -> next;
 new_node = (struct node *)malloc(sizeof(struct node));
 new_node -> num = n;
 new_node -> coeff = c;
 new_node -> next = NULL;
 ptr -> next = new_node;
 }
 printf("\n Enter the number : ");
 scanf("%d", &n);
 if(n == –1)
 break;
printf("\t Enter its coefficient : ");
 scanf("%d", &c);
}
return start;
}
struct node *display_poly(struct node *start)
{
struct node *ptr;
ptr = start;
while(ptr != NULL)
{
 printf("\n%d x %d\t", ptr -> num, ptr -> coeff);
 ptr = ptr -> next;
}
return start;
}
struct node *add_poly(struct node *start1, struct node *start2, struct node *start3)
{
struct node *ptr1, *ptr2;
int sum_num, c;

ptr1 = start1, ptr2 = start2;
while(ptr1 != NULL && ptr2 != NULL)
{
 if(ptr1 -> coeff == ptr2 -> coeff)
 {
 sum_num = ptr1 -> num + ptr2 -> num;
 start3 = add_node(start3, sum_num, ptr1 -> coeff);
 ptr1 = ptr1 -> next;
 ptr2 = ptr2 -> next;
 }
 else if(ptr1 -> coeff > ptr2 -> coeff)
 {
 start3 = add_node(start3, ptr1 -> num, ptr1 -> coeff);
 ptr1 = ptr1 -> next;
 }
 else if(ptr1 -> coeff < ptr2 -> coeff)
 {
 start3 = add_node(start3, ptr2 -> num, ptr2 -> coeff);
 ptr2 = ptr2 -> next;
 }
}
if(ptr1 == NULL)
{
 while(ptr2 != NULL)
 {
 start3 = add_node(start3, ptr2 -> num, ptr2 -> coeff);
 ptr2 = ptr2 -> next;
 }
}
if(ptr2 == NULL)
{
 while(ptr1 != NULL)
 {
 start3 = add_node(start3, ptr1 -> num, ptr1 -> coeff);
 ptr1 = ptr1 -> next;
 }
}
return start3;
}
struct node *sub_poly(struct node *start1, struct node *start2, struct node *start4)
{
struct node *ptr1, *ptr2;
int sub_num, c;
ptr1 = start1, ptr2 = start2;
do
{
 if(ptr1 -> coeff == ptr2 -> coeff)
 {
 sub_num = ptr1 -> num – ptr2 -> num;
 start4 = add_node(start4, sub_num, ptr1 -> coeff);
 ptr1 = ptr1 -> next;
 ptr2 = ptr2 -> next;
 }
 else if(ptr1 -> coeff > ptr2 -> coeff)
 {
 start4 = add_node(start4, ptr1 -> num, ptr1 -> coeff);
 ptr1 = ptr1 -> next;
 }
 else if(ptr1 -> coeff < ptr2 -> coeff
{
 start4 = add_node(start4, ptr2 -> num, ptr2 -> coeff);
 ptr2 = ptr2 -> next;
 }
}while(ptr1 != NULL || ptr2 != NULL);
if(ptr1 == NULL)
{
 while(ptr2 != NULL)
 {
 start4 = add_node(start4, ptr2 -> num, ptr2 -> coeff);
 ptr2 = ptr2 -> next;
 }
}
if(ptr2 == NULL)
{
 while(ptr1 != NULL)
 {
 start4 = add_node(start4, ptr1 -> num, ptr1 -> coeff);
 ptr1 = ptr1 -> next;
 }
}
return start4;
}
struct node *add_node(struct node *start, int n, int c)
{
struct node *ptr, *new_node;
if(start == NULL)
{
 new_node = (struct node *)malloc(sizeof(struct node));
 new_node -> num = n;
 new_node -> coeff = c;
 new_node -> next = NULL;
 start = new_node;
}
else
{
 ptr = start;
 while(ptr -> next != NULL)
 ptr = ptr -> next;
 new_node = (struct node *)malloc(sizeof(struct node));
 new_node -> num = n;
 new_node -> coeff = c;
 new_node -> next = NULL;
 ptr -> next = new_node;
}
return start;
}

Output

  1. Enter the first polynomial
  2. Display the first polynomial
    –––––––––––––––––––––––––––––––
  3. EXIT
    Enter your option : 1
    Enter the number : 6 Enter its coefficient : 2
    Enter the number : 5 Enter its coefficient : 1
    Enter the number : –1
    Enter your option : 2
    6 x 2 5 x 1
    Enter your option : 9
data structure

Post navigation

Previous Post: Header Linked Lists using C
Next Post: Stacks in C

Related Posts

Omega Notation (Ω) in data structure data structure
Traversing a Threaded Binary Tree in data structure data structure
Basic Terminology in Data structure data structure
C program reversing a single linked list data structure
C program of Address Calculation Sort data structure
Write a program to fill a square matrix with value zero on the diagonals 1 on the upper right triangle and –1 on the lower left triangle data structure

Leave a Reply Cancel reply

You must be logged in to post a comment.

Recent Posts

  • Affiliate Marketing Principles
  • The Basics You Need to Know About Affiliate Marketing
  • Affiliate Marketing Options
  • All About Affiliate Marketing
  • Classification of Database Management Systems
  • Three-Tier and n-Tier Architectures
    for Web Applications
  • Two-Tier Client/Server Architectures for DBMSs
  • Basic Client/Server Architectures in DBMS
  • Centralized DBMSs Architecture in DBMS
  • Tools, Application Environments, and Communications Facilities in DBMS

Categories

  • Affiliate marketing (5)
  • Algorithm (43)
  • amp (3)
  • android (223)
  • Android App (8)
  • Android app review (4)
  • android tutorial (60)
  • Artificial intelligence (61)
  • AWS (3)
  • bitcoin (8)
  • blockchain (1)
  • c (5)
  • c language (105)
  • cloud computing (4)
  • coding (4)
  • coding app (4)
  • complex number (1)
  • Computer Graphics (66)
  • data compression (65)
  • data structure (188)
  • DBMS (44)
  • digital marketing (9)
  • distributed systems (11)
  • ffmpeg (26)
  • game (3)
  • html (6)
  • image processing (35)
  • Inequalities (1)
  • information (4)
  • java (212)
  • java network (1)
  • javascript (9)
  • kotlin (4)
  • leetcode (1)
  • math (21)
  • maven (1)
  • mysql (1)
  • Node.js (8)
  • operating system (109)
  • php (310)
  • Principle Of Mathematical Induction (1)
  • programming (6)
  • Python (4)
  • Python data structure (9)
  • React native (1)
  • React.js (22)
  • Redux (1)
  • seo (4)
  • set (12)
  • trigonometry (6)
  • vue.js (35)
  • XML (3)

sitemap

sitemap of videos

sitemap of webstories

sitemap of website

  • Affiliate marketing
  • Algorithm
  • amp
  • android
  • Android App
  • Android app review
  • android tutorial
  • Artificial intelligence
  • AWS
  • bitcoin
  • blockchain
  • c
  • c language
  • cloud computing
  • coding
  • coding app
  • complex number
  • Computer Graphics
  • data compression
  • data structure
  • DBMS
  • digital marketing
  • distributed systems
  • ffmpeg
  • game
  • html
  • image processing
  • Inequalities
  • information
  • java
  • java network
  • javascript
  • kotlin
  • leetcode
  • math
  • maven
  • mysql
  • Node.js
  • operating system
  • php
  • Principle Of Mathematical Induction
  • programming
  • Python
  • Python data structure
  • React native
  • React.js
  • Redux
  • seo
  • set
  • trigonometry
  • vue.js
  • XML
  • Blog
  • Data compression tutorial - codingpoint
  • How to change mbstring in php 5.6
  • How to diagnose out of memory killed PHP-FPM
  • Introduction to jQuery
  • Privacy
  • Affiliate marketing
  • Algorithm
  • amp
  • android
  • Android App
  • Android app review
  • android tutorial
  • Artificial intelligence
  • AWS
  • bitcoin
  • blockchain
  • c
  • c language
  • cloud computing
  • coding
  • coding app
  • complex number
  • Computer Graphics
  • data compression
  • data structure
  • DBMS
  • digital marketing
  • distributed systems
  • ffmpeg
  • game
  • html
  • image processing
  • Inequalities
  • information
  • java
  • java network
  • javascript
  • kotlin
  • leetcode
  • math
  • maven
  • mysql
  • Node.js
  • operating system
  • php
  • Principle Of Mathematical Induction
  • programming
  • Python
  • Python data structure
  • React native
  • React.js
  • Redux
  • seo
  • set
  • trigonometry
  • vue.js
  • XML
  • Blog
  • Data compression tutorial - codingpoint
  • How to change mbstring in php 5.6
  • How to diagnose out of memory killed PHP-FPM
  • Introduction to jQuery
  • Privacy

© codingtube.tech