数据结构与算法基础-线性表习题-两个多项式相加运算(顺序表)

题目

编写代码,实现两个一元多项式之间的相加,相减,相乘运算

TIP:没有除法,但是在我的代码基础上很好改,加一个判断分母为0报错即可

思路

将多项式看成线性表,每一项的指数隐藏在下标中

数据结构与算法基础-线性表习题-两个多项式相加运算(顺序表)_第1张图片

如果多项式连续,使用数组(顺序表)是最方便的

数据结构与算法基础-线性表习题-两个多项式相加运算(顺序表)_第2张图片

运算时,对应位置按顺序逐个相加/相减/相乘,直到存在空表时,将非空表内剩余元素填入即可

数据结构与算法基础-线性表习题-两个多项式相加运算(顺序表)_第3张图片

个人代码

王老师没有演示代码,于是我自己敲了,当作练习题

三目运算符的定义可以翻看我的上一篇文章

【2月第四周学习记录】数据结构与算法王卓-第二章线性表-线性表,顺序表,链表的合并(带例子)http://t.csdn.cn/Z04AS

#include 
using namespace std;
#define MAXSIZE 10

typedef struct {
	int data[MAXSIZE];
	int length;
}polynomial;

void init(polynomial &a) {//初始化
	cout << "how many terms do you have in the polynomial?";
	cin >> a.length;
	for (int i = 0; i < a.length; i++) {
		cout << "please type the " << i + 1 << " term";
		cin >> a.data[i];
	}
}

void show(polynomial a) {
	cout << "it's a polynomial with "<

 感想:虽然功能都实现了,但感觉可读性还是一个问题。希望以后能写的更加短小简洁。

你可能感兴趣的:(数据结构与算法习题,算法,数据结构,c++,c语言)