zoukankan      html  css  js  c++  java
  • 数据结构一元多项式加法单链表实现

    重新看数据结构了,然后第二章线性表多项式老师没讲自己看的,什么鸡巴学校啊。

    最后实现的时候系数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;
    }
    
    
    
    
    
    
    


  • 相关阅读:
    「SOL」工厂选址(BZOJ)
    「NOTE」数论小札
    Flask实现简单的群聊和单聊
    python基础总结
    基于Flask和百度AI实现与机器人对话
    django创建路径导航
    django中权限控制到按钮级别
    django中非菜单权限的归属
    MongoDB的增删改查
    jQuery于js的区别和联系
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3358234.html
Copyright © 2011-2022 走看看