数据结构之线性结构(应用实例)

本文为数据结构之线性结构(应用实例),根据网课而整合的笔记。

栗子:

设计函数分别求两个一元多项式的乘积与和

在这里插入图片描述

该题的输入与输出样例:

在这里插入图片描述

求解思路
  1. 多项式表示
  2. 程序框架
  3. 读多项式
  4. 加法实现
  5. 乘法实现
  6. 多项式输出
一、多项式的表示

(仅表示非零项)

数组:

  • 编程简单、调试容易
  • 需要事先确定数组大小(若不确定会造成空间浪费)

链表:

  • 动态性强
  • 编程略为复杂、调试比较困难

PS:一种比较好的实现方法是:动态数组

下面介绍链表表示

数据结构设计

typedef struct PolyNode *Polynomial;
struct PolyNode{
   
	int coef;/*系数*/
	int expon;/*指数*/
	Polynomial link;
};

在这里插入图片描述

二、程序框架搭建
int main()
{
   
	读入多项式1
	读入多项式2
	乘法运算并输出
	加法运算并输出
	
	return 0}

需要设计的函数

  • 读入一个多项式
  • 两多项式相乘
  • 两多项式相加
  • 多项式输出
int main()
{
   
	Polynomial P1,P2,PP,PS;
	
	P1 = ReadPoly();
	P2 = ReadPoly();
	PP = Mult(P1,P2);
	PrintPoly(PP);
	PS = Add(P1,P2);
	PrintPoly(PS);
	
	return 0;
}
三、如何读入多项式

输入数据格式:4 3 4 -5 2 6 1 -2 0(4为4组数,然后再循环一对一对读入)

Polynomial ReadPoly()
{
   
	...
	scanf("%d",&N);
	...
	while(N--){
   
		scanf("%d %d",&c,&e);/*每对数据按指数递减顺序读入*/
		Attach(c,e,&Rear<
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值