标题:万分感谢。请问这样一个c语言的链表多项式加法。怎么能让输入的数自动按指数 ...
取消只看楼主
jayeye
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-3-31
 问题点数:0 回复次数:1 
万分感谢。请问这样一个c语言的链表多项式加法。怎么能让输入的数自动按指数排列?
#include<stdio.h>
#include<malloc.h>
#include<conio.h>
    typedef struct node
{
    int xi;
    int zi;
    struct node *next;
}
Node;

    Node *Creat()
{
        Node *head,*p,*pre;
        int a,b;
        head=(Node *)malloc(sizeof(Node));
        head->next=NULL;
        pre=head;
        printf("请按照指数从小到大输入多项式并以0 0结束:\n");
        printf("输入系数");
        scanf("%d",&a);
        printf("输入指数");
        scanf("%d",&b);
        while(a)
{
        p=(Node *)malloc(sizeof(Node));
        p->xi=a;
        p->zi=b;
        p->next=pre->next;
        pre->next=p;
        pre=p;
        printf("输入系数");
        scanf("%d",&a);
        printf("输入指数");
        scanf("%d",&b);
}
    if(a==0&&b==0)
    printf("\n输入结束:\n");
    return head;
}

    void Read(Node *head)
{
    Node *p=head->next;
    while(p)
{
    printf("%d*x^%d ",p->xi,p->zi);
    p=p->next;
}
}

    Node *Add(Node *head1,Node *head2)
{
        Node *p,*head,*p1,*p2;int sum;
        head=(Node *)malloc(sizeof(Node));
        p=head;
        p1=head1->next;
        p2=head2->next;
        while(p1&&p2)
{
        if(p1->zi==p2->zi)
{
        sum=p1->xi+p2->xi;
        if(sum)
{
        p1->xi=sum;
        p->next=p1;
        p=p1;
}
        p1=p1->next;
        p2=p2->next;
}
else
{
        if(p1->zi<p2->zi)
        {
        p->next=p1;
        p=p1;
        p1=p1->next;
}
else
{
        p->next=p2;
        p=p2;
        p2=p2->next;
}

}
}
        if(p1) p->next=p1;
        else p->next=p2;
        return head;
}

void main()
{
        Node *head,*p1,*p2;
        p1=Creat();
        Read(p1);
        p2=Creat();
        Read(p2);
        head=Add(p1,p2);
        printf("相加后为:\n");
        Read(head);
        getch();
}


 说一说实现方法。谢谢各位 ,最好大家不忙的话可以帮我写一段,就是写上面的一段然后我对照着把下面的一个多项式也写一次。
搜索更多相关主题的帖子: 链表 多项式 c语言 加法 排列 
2010-04-17 21:11
jayeye
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-3-31
得分:0 
大家可以帮我看看吗 ?请问怎么实现这个排序过程 ?
2010-04-18 09:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-303426-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.200023 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved