⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2-1.cpp

📁 一些数据结构的源码
💻 CPP
字号:
#include<stdio.h>
#include<malloc.h>

typedef struct
{
	float coef;
	int   expn;
}term;

typedef struct lnode
{
	term data;
	struct lnode *next;
}lnode,*linklist;

typedef linklist polynomial;

void creatpolyn(polynomial &a,int n)
{
	a=(polynomial)malloc(sizeof(lnode));
	polynomial h,s;
	h=a;
	h->data.coef=0.0;
	h->data.expn=-1;
	for(int i=1;i<=n;i++)
	{
		s=(polynomial)malloc(sizeof(lnode));
		printf("请输入第""%d""项的系数\n",i);
		scanf("%f",&s->data.coef);
		printf("请输入第""%d""项的指数\n",i);
		scanf("%d",&s->data.expn);
		s->next=NULL;h->next=s;h=s;
	}
}

void print(polynomial &p)
{
	polynomial q=p->next;
	while(q!=NULL)
	{
		printf("%.2fX^%d",q->data.coef,q->data.expn);
		printf("+");
		q=q->next;
	}
	printf("\n");
}

void sub(polynomial &pa,polynomial &pb,polynomial &pc)
{ 
	float sub;
	term a,b;
	polynomial qa,qb,qc,s;
    pc=(polynomial)malloc(sizeof(lnode));
	qa=pa->next;
	qb=pb->next;
	qc=pc;
	while(qa&&qb)
	{
		a=qa->data;b=qb->data;
    	if(a.expn<b.expn)
		{
			s=(polynomial)malloc(sizeof(lnode));
			s->data.coef=a.coef;
			s->data.expn=a.expn;
			qc->next=s;
		    qc=s;
			qa=qa->next;
		}
		else if(a.expn=b.expn)
		{
			sub=a.coef-b.coef;
			if(sub==0)
			{
				qa=qa->next;
				qb=qb->next;
			}
			else
			{
				s=(polynomial)malloc(sizeof(lnode));
				s->data.coef=sub;
				s->data.expn=a.expn;
				qc->next=s;
		        qc=s;
				qa=qa->next;
				qb=qb->next;
			}
		}
		else if(a.expn>b.expn)
		{
			s=(polynomial)malloc(sizeof(lnode));
			s->data.coef=-b.coef;
			s->data.expn=b.expn;
			qc->next=s;
		    qc=s;
			qb=qb->next;
		}
	}
	while(qa)
	{
		s=(polynomial)malloc(sizeof(lnode));
		s->data.coef=qa->data.coef;
		s->data.expn=qa->data.expn;
		qc->next=s;
	    qc=s;
		qa=qa->next;
	}
	while(qb)
	{
		s=(polynomial)malloc(sizeof(lnode));
		s->data.coef=-qb->data.coef;
		s->data.expn=qb->data.expn;
		qc->next=s;
	    qc=s;
		qb=qb->next;
	}
	qc->next=NULL;
}

void main()
{
	polynomial pa,pb,pc;
	int n,m;
	printf("请输入第一个多项式的项数:\n");
	scanf("%d",&n);
	creatpolyn(pa,n);
	printf("原多项式pa为:\n");
	print(pa);
	printf("请输入第二个多项式的项数:\n");
	scanf("%d",&m);
	creatpolyn(pb,m);
	printf("原多项式pb为:\n");
	print(pb);
	sub(pa,pb,pc);
	printf("两项式相减的结果是:\n");
	print(pc);
}







⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -