데이터 구조 일원 다항식 덧셈 단일 체인 표 실현

1686 단어 데이터 구조
데이터 구 조 를 다시 보 았 습 니 다. 그리고 제2 장 선형 표 다항식 선생님 은 자신 이 본 것 을 말 하지 않 았 습 니 다. 무슨 닭 바 학교 입 니까?
마지막 으로 실 현 될 때 계수 0 은 고려 하지 않 았 지만 사실은 주요 지침 조작 이 이미 나 왔 다.계수 가 0 인 노드 는 삭제 해 야 하고 삭제 작업 이 적 습 니 다.
 
#include<iostream>

#include<stdlib.h>

using namespace std;

struct node{

	int xi;

	int ci;

	node* next;

};

int main()

{

	int lengtha,lengthb,i;

	node *L1,*L2,*p,*q;

	cin>>lengtha>>lengthb;

	L1=(node*)malloc(sizeof(node));

	L2=(node*)malloc(sizeof(node));

	L1->next=NULL;

	L2->next=NULL;

	p=L1;

	for(i=1;i<=lengtha;i++)

	{

		q=(node*)malloc(sizeof(node));

		cin>>q->xi>>q->ci;

		p->next=q;

		p=q;

		p->next=NULL;

	}

	p=L2;

	for(i=1;i<=lengthb;i++)

	{

		q=(node*)malloc(sizeof(node));

		cin>>q->xi>>q->ci;

		p->next=q;

		p=q;

		p->next=NULL;

	}

	p=L1->next;

	q=L2->next;

	while(p!=NULL&&q!=NULL)

	{

		if(p->ci==q->ci)

		{

			p->xi=p->xi+q->xi;

			p=p->next;

			q=q->next;

		}

		else if(p->ci>q->ci)

		{

			node *j,*n;

			j=L1;

			n=q;

			q=q->next;

			while((j->next)!=p)

			{

				j=j->next;

			}

			n->next=j->next;

			j->next=n;

		}

		else p=p->next;

	}

	if(p==NULL&&q!=NULL)

		p=q;



	p=L1->next;

	while(p!=NULL&&p->next!=NULL)

	{

		cout<<p->xi<<"x^"<<p->ci<<"+";

		p=p->next;

	}

	if(p!=NULL&&p->next==NULL)

		cout<<p->xi<<"x^"<<p->ci<<endl;

	system("pause");

	return 0;

}














 

좋은 웹페이지 즐겨찾기