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;
    }
    
    
    
    
    
    
    


  • 相关阅读:
    Python中替换的三种方法
    深入浅出:分布式和集群--转自码农翻身微信公众号
    如何把GitHub中的开源项目导入到Eclipse
    Socket Tools的使用
    LoadRunner 测试Socket接口函数说明
    Apache Jemeter 开发插件
    netstat 查看连接数
    redis缓存机制【转载】
    内存溢出OOM
    transform-translate位移
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3358234.html
Copyright © 2011-2022 走看看