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

📄 xiugai.c

📁 链表
💻 C
字号:
#include<stdio.h>
struct link
{int factor;
 int index;
 struct link *next;
 }*list1,*list2,*list3;
 struct link *creat_list()    /*建立链表*/
 {
 struct link *p;
 struct link *head;
 struct link *q;
 head=(struct link*)malloc(sizeof(struct link));
 head->next=NULL;
 q=head;
 do
 {
  p=(struct link*)malloc(sizeof(struct link));
  scanf("%d%d",&p->factor,&p->index);
  if(p->factor==0)break;
  q->next=p;
  q=p;
 } while(p->factor!=0);
 q->next=NULL;
 q=head;
 return q;
 }
void print_list(struct link *p)    /*输出链表*/
 {
 int i=1;
 p=p->next;
 do
 {
   if(i==1)
     {printf("%d*X~%d",p->factor,p->index);i++;}
   p=p->next;
   if(p->factor>0)printf("+");
    printf("%d*X~%d",p->factor,p->index);
 }
 while(p->next!=NULL);
 printf("\n");
 }
struct link *add_list(struct link *p1,struct link *p2)
{
 struct link *r1,*r2,*q;
 r1=p1;
 r2=p2;
 do
 {
  r1=r1->next;
  do
  {
  r2=r2->next;
  if(r1->index==r2->index){r1->factor=r1->factor+r2->factor;r2->factor=0;}
  }while(r2);r2=p2;
 }while(r1->next);
 r2=p2;
 r1->next=r2->next;
 do
 {r2=r1;
  r1=r1->next;
  if(r1->factor==0){r2->next=r1->next;r1->next=r2->next;r1=r2;}
 }while(r1->next);
 return p1;
}
void main()
{
 printf("Input A Polynomial's factor and index please! (End of 0 0)\n");
 list1=creat_list();
 if(list1==NULL){printf("error!");exit(0);}
 printf("Input B Polynomial's factor and index please! (End of 0 0)\n");
 list2=creat_list();
 if(list2==NULL){printf("error!");exit(0);}
 clrscr();
 printf("A Polynomial is:\nA=");
 print_list(list1);
 printf("B Polynomial is:\nB=");
 print_list(list2);
 list3=add_list(list1,list2);
 if(list3==NULL){printf("error!");exit(0);}
 printf("(A+B) Polynomial is:\nA+B=");
 print_list(list3);
 getch();
}

⌨️ 快捷键说明

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