没有合适的资源?快使用搜索试试~ 我知道了~
使用栈与队列,C语言程序运行正常注意分隔符
资源推荐
资源详情
资源评论
#include"stdio.h"
#include"malloc.h"
typedef struct jsq
{ int num1;
float num2;
struct jsq *next;
}JSQ;
JSQ *creatlinklist();
JSQ *addlinklist(JSQ *A,JSQ *B);
JSQ *andlinklist(JSQ *A,JSQ *B) ;
void printlinklist(JSQ *head);
void selet(JSQ * A,JSQ * B);
int main() /*主函数*/
{
JSQ * A,* B; /*设立指针分别指向多项式链表A和链表B以及C作为结果*/
A=creatlinklist(); /*建立打印多项式A*/
printlinklist(A);
B=creatlinklist(); /*建立打印多项式B*/
printlinklist(B);
selet(A,B);
return 0; /*还回系统调用0,结束整个程序*/
}
JSQ *creatlinklist() /*创建单链表*/
#include"malloc.h"
typedef struct jsq
{ int num1;
float num2;
struct jsq *next;
}JSQ;
JSQ *creatlinklist();
JSQ *addlinklist(JSQ *A,JSQ *B);
JSQ *andlinklist(JSQ *A,JSQ *B) ;
void printlinklist(JSQ *head);
void selet(JSQ * A,JSQ * B);
int main() /*主函数*/
{
JSQ * A,* B; /*设立指针分别指向多项式链表A和链表B以及C作为结果*/
A=creatlinklist(); /*建立打印多项式A*/
printlinklist(A);
B=creatlinklist(); /*建立打印多项式B*/
printlinklist(B);
selet(A,B);
return 0; /*还回系统调用0,结束整个程序*/
}
JSQ *creatlinklist() /*创建单链表*/
{
float x; /*节点中存放项系数和指数*/
int z;
JSQ *head,*r,*n; /*下指针,分别是头指针、尾指针和新建立节点的指针*/
head=(JSQ *)malloc(sizeof(JSQ)); /*malloc分配内存单元给头指针申请空间*/
head->next=NULL; /*头指针next指向空位空链表状态*/
r=head;
printf("建立一元多项式:(以系数0结束)\n");/*打印文字提醒用户输入*/
while(x!=0) /*建立单链表*/
{
n=(JSQ *)malloc(sizeof(JSQ)); /*建立新节点,将用户输入的数据分别作为项(各节点)的系数和指数*/
n->num2=x;
n->num1=z;
r->next=n; /*为指针指向下一新建节点*/
r=r->next; /*后移尾指针*/
//r=n;
printf("请按升幂输入系数和指数:");
scanf("%f %d",&x,&z);
}
r->next=NULL;
head=head->next; /*链接节点使之勾成链表*/
return (head); /*还回head指针(链表头标志或是说地址)给函数调用者*/
}
JSQ * addlinklist(JSQ *A,JSQ *B) /*核心算法实现两链表的加法运算并将结果保存在A中*/
{ JSQ *p,*q,*s,*r; /*为链表设立指针分别指向链表A和链表B(多项式A和B),s为临时存放为后续移动指针做地址保留*/
float x;
p=A->next;
q=B->next;
float x; /*节点中存放项系数和指数*/
int z;
JSQ *head,*r,*n; /*下指针,分别是头指针、尾指针和新建立节点的指针*/
head=(JSQ *)malloc(sizeof(JSQ)); /*malloc分配内存单元给头指针申请空间*/
head->next=NULL; /*头指针next指向空位空链表状态*/
r=head;
printf("建立一元多项式:(以系数0结束)\n");/*打印文字提醒用户输入*/
while(x!=0) /*建立单链表*/
{
n=(JSQ *)malloc(sizeof(JSQ)); /*建立新节点,将用户输入的数据分别作为项(各节点)的系数和指数*/
n->num2=x;
n->num1=z;
r->next=n; /*为指针指向下一新建节点*/
r=r->next; /*后移尾指针*/
//r=n;
printf("请按升幂输入系数和指数:");
scanf("%f %d",&x,&z);
}
r->next=NULL;
head=head->next; /*链接节点使之勾成链表*/
return (head); /*还回head指针(链表头标志或是说地址)给函数调用者*/
}
JSQ * addlinklist(JSQ *A,JSQ *B) /*核心算法实现两链表的加法运算并将结果保存在A中*/
{ JSQ *p,*q,*s,*r; /*为链表设立指针分别指向链表A和链表B(多项式A和B),s为临时存放为后续移动指针做地址保留*/
float x;
p=A->next;
q=B->next;
剩余5页未读,继续阅读
资源评论
king_46128
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功