本文为使用线性表进行多项式求和运算的代码实现及过程中可能遇到的问题,包括C++多文件管理、参数传递、指针和引用、控制台读数、代码解析、代码源码等。本文以代码为中心,详细介绍各个细节。
main.cpp
读取控制台数据,输出读入的多项式验证读数是否正确,进行求和计算,输出计算结果。
①参数传递问题:C++函数的参数传递(三种传参形式)
void readAB(&,&); Polynomial *A,*B; read AB(*A,*B);
void readAB(&,&); Polynomial A,B; readAB(A,B);
②控制台读数
首先将多项式A各项的系数和指数读入两个数组coef_A[]和exp_A[],然后创建各项的节点对象,加入多项式链表中。
Polynomial.h
给出多项式链表类及其节点类的定义,节点类中包含系数、指数和指向下一节点的指针,链表类中包含指向头节点的指针和各个功能函数。
③预编译
为了避免编译时同一个头文件在同一个.cpp文件中多次包含,需要进行一些限定。
方式一:采用宏定义的方式,如上图所示的#ifndef语句。
方式二:添加语句#program once。
区别:如果在源文件中多次包含同一个头文件,采用方式一的头文件会被多次打开,只在第一次打开时包含里面的代码,之后打开由于不满足#ifndef则不被包含,采用方式二的头文件只会被打开一次,在之后不再打开,因此方式二会更快。
Polynomial.cpp
采用归并的方式,比较两个链表中的指数,将指数相同的系数相加构建新的节点,或将指数偏小的节点加在求和链表后。
网友评论