首页资源分类嵌入式系统其他 > 数据结构一元多项式

数据结构一元多项式

已有 445023个资源

下载专区

上传者其他资源

    文档信息举报收藏

    标    签:一元多项式

    分    享:

    文档简介

    数据结构课程设计 一元多项式

    文档预览

    #include #include //预处理器指令,引用头文件 int n; struct Lnode//创建结构体Lnode,包含数据域data和指针域next { int data; struct Lnode *next; }Lnode; void menu()//菜单程序 { printf("\n链表应用\n1 创建高次多项式A,B\n2 加法运算A+B=C\n3 减法运算A-B=C\n4 输出C\n5 退出\n"); } struct Lnode *creat(char c)//创建链表 { int i,d; struct Lnode *head,*p; head =(struct Lnode *)malloc(sizeof(struct Lnode));//用malloc函数动态分配空间 head->next = 0;//赋初值  printf("\n由0次到%d次输入%c的每项系数(若无该项则系数为0):",n,c); //记头结点head的下一结点位置为0,用结点在链表中的位置代表幂数,将系数存入对应数据域 for(i = 0;i <= n;i++) { scanf("%d",&d); p = (struct Lnode *)malloc(sizeof(struct Lnode)); //用malloc函数动态分配空间 p->data = d; p->next = head->next; head->next = p; } return(head); } struct Lnode *plus(struct Lnode *head1,struct Lnode *head2) //加法运算 { int i; struct Lnode *p,*q,*s,*head3; head3 = (struct Lnode *)malloc(sizeof(struct Lnode)); //用malloc函数动态分配空间 head3->next = 0;//初始化 p = head1; q = head2; //将链表A,B中位置相同(即幂数相同)的结点的数据域值(即系数)相加,所得和链成链表C for(i = 0;i <= n;i++) { s = (struct Lnode *)malloc(sizeof(struct Lnode)); //用malloc函数动态分配空间 s->data = p->next->data + q->next->data; s->next = head3->next; head3->next = s; p = p->next; q = q->next; } return(head3); } struct Lnode *minus(struct Lnode *head1,struct Lnode *head2)//减法运算(与加法运算原理相同) { int i; struct Lnode *p,*q,*s,*head3; head3 = (struct Lnode *)malloc(sizeof(struct Lnode)); head3->next = 0; p = head1; q = head2; for(i = 0;i <= n;i++) { s = (struct Lnode *)malloc(sizeof(struct Lnode)); s->data = p->next->data - q->next->data; s->next = head3->next; head3->next = s; p = p->next; q = q->next; } return(head3); } struct Lnode *display(struct Lnode *head)//输出链表C { int i,d; struct Lnode *p; p = head->next;//将位置为0的结点赋给p printf("\n输出C\n幂数\t系数"); //用for循环依次输出各结点位置(即幂数)和数据域值(即系数) for(i = 0;i <= n;i++){ printf("\n%d",i); d = p->data; printf("\t%d",d); p = p->next; } return(head); } void main() { int choice; struct Lnode *A,*B,*C; menu(); printf("\n输入选项:"); scanf("%d",&choice); //用while循环实现菜单的循环选择 while(choice!=5){ //用switch函数实现功能选择 switch(choice) { case 1: printf("\n输入A,B的最高次项的幂数:"); scanf("%d",&n); A = creat('A'); B = creat('B');break; case 2: C = plus(A,B);break; case 3: C = minus(A,B);break; case 4: C = display(C);break; } menu(); printf("\n输入选项:"); scanf("%d",&choice); } }

    Top_arrow
    回到顶部
    EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高员外,我们会尽快处理。