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 polynomial addition and multiplication using linked list

Posted on December 17, 2021December 17, 2021 By christo No Comments on C program polynomial addition and multiplication using linked list

Complete program polynomial addition and multiplication using linked list

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

struct node
{
	float coef;
	int expo;
	struct node *link;
};

struct node *create(struct node *);
struct node *insert_s(struct node *,float,int);
struct node *insert(struct node *,float,int);
void display(struct node *ptr);
void poly_add(struct node *,struct node *);
void poly_mult(struct node *,struct node *);
main( )
{
	struct node *start1=NULL,*start2=NULL;
	
	printf("Enter polynomial 1 :\n");
	start1=create(start1);

	printf("Enter polynomial 2 :\n");
	start2=create(start2);

	printf("Polynomial 1 is :  ");
	display(start1);
	printf("Polynomial 2 is :  ");
	display(start2);
		
	poly_add(start1, start2);
	poly_mult(start1, start2);
}/*End of main()*/

struct node *create(struct node *start)
{
	int i,n,ex;
	float co;
	printf("Enter the number of terms : ");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		printf("Enter coeficient for term %d : ",i);
		scanf("%f",&co);
		printf("Enter exponent for term %d : ",i);
		scanf("%d",&ex);
		start=insert_s(start,co,ex);
	}
	return start;
}/*End of create()*/
struct node *insert_s(struct node *start,float co,int ex)
{
	struct node *ptr,*tmp;
	tmp=(struct node *)malloc(sizeof(struct node));
	tmp->coef=co;
	tmp->expo=ex;
	/*list empty or exp greater than first one */
	if(start==NULL || ex > start->expo)
	{
		tmp->link=start;
		start=tmp;
	}
	else	
	{
		ptr=start;
		while(ptr->link!=NULL && ptr->link->expo >= ex)
			ptr=ptr->link;
		tmp->link=ptr->link;
		ptr->link=tmp;
	}
	return start;
}/*End of insert()*/
	
struct node *insert(struct node *start,float co,int ex)
{
	struct node *ptr,*tmp;
	tmp=(struct node *)malloc(sizeof(struct node));
	tmp->coef=co;
	tmp->expo=ex;
	/*If list is empty*/
	if(start==NULL)
	{
		tmp->link=start;
		start=tmp;
	}
	else	/*Insert at the end of the list*/
	{
		ptr=start;
		while(ptr->link!=NULL)
			ptr=ptr->link;
		tmp->link=ptr->link;
		ptr->link=tmp;
	}
	return start;
}/*End of insert()*/

void display(struct node *ptr)
{
	if(ptr==NULL)
	{
		printf("Zero polynomial\n");
		return;
	}
	while(ptr!=NULL)
	{
		printf("(%.1fx^%d)", ptr->coef,ptr->expo);
		ptr=ptr->link;
		if(ptr!=NULL)
			printf(" + ");
		else 
			printf("\n");
	}
}/*End of display()*/
void poly_add(struct node *p1,struct node *p2)
{
	struct node *start3;
	start3=NULL;
	
	while(p1!=NULL && p2!=NULL)
	{
		if(p1->expo > p2->expo)
		{
			start3=insert(start3,p1->coef,p1->expo);
			p1=p1->link;
		}
		else if(p2->expo > p1->expo)
		{
			start3=insert(start3,p2->coef,p2->expo);
			p2=p2->link;
		}
		else if(p1->expo==p2->expo)
		{
			start3=insert(start3,p1->coef+p2->coef,p1->expo);
			p1=p1->link;
			p2=p2->link;
		}
	}
	/*if poly2 has finished and elements left in poly1*/
	while(p1!=NULL)
	{
		start3=insert(start3,p1->coef,p1->expo);
		p1=p1->link;
	}
	/*if poly1 has finished and elements left in poly2*/
	while(p2!=NULL)
	{
		start3=insert(start3,p2->coef,p2->expo);
		p2=p2->link;
	}
	printf("Added polynomial is : ");
	display(start3);
}/*End of poly_add() */

void poly_mult(struct node *p1, struct node *p2)
{
	struct node *start3;
	struct node *p2_beg = p2;
	start3=NULL;
	if(p1==NULL || p2==NULL)
	{
		printf("Multiplied polynomial is zero polynomial\n");
		return;
	}
	while(p1!=NULL)
	{
		p2=p2_beg;
		while(p2!=NULL)
		{
			start3=insert_s(start3,p1->coef*p2->coef,p1->expo+p2->expo);
			p2=p2->link;	
		}
		p1=p1->link;
	}	
	printf("Multiplied polynomial is : ");
	display(start3);
}
data structure

Post navigation

Previous Post: C program merging two sorted single linked lists
Next Post: Complete C program searching in a linked list

Related Posts

Priority Queues in data structure data structure
C program to implement multiple stacks data structure
C program to create a linked list and perform insertions and deletions of all cases and Write functions to sort and finally delete the entire list at once data structure
Binary Search Trees in data structure data structure
C program to initialize the members of a structure by using a pointer to the structure data structure
Write a program to delete a number from an array that is already sorted in ascending order 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