week3_静态链表多项式

一.数组的结构

定义一个结构体类型Polytype,MAXSIZE是它的大小设定为30
该结构体有三个参数,xi是存放多项式的系数,zhi是存放多项式的指数,cur存下一个节点的下标,形成一个静态链表(一条链中包含备用链表和实际链表)

#define MAXSIZE 30
typedef struct{
ElemType xi; //系数
int zhi; //指数
int cur; //下一个节点下标
}Polytype,Polyarr[MAXSIZE];

链表的初始化,把各个节点链在一起
void Init_polylist(Polytype *s)

分配节点函数,返回分配的节点下标
int Malloc(Polytype *s)

释放一个节点,把下表为k的结点还给备用链表,从头部插入
void Free(Polytype *s,int k)

输入链表的函数,并返回链表头的下标
int InitArr(Polytype * s)

输出链表函数,k是链表头下标
void Print(Polytype *s,int k)

多项式相加函数,a、b分别是链la、lb的头下标
int Merge_polylist(Polytype *la,Polytype *lb,Polytype *lc,int a,int b)

二.测试

用例1
在这里插入图片描述

用例2
在这里插入图片描述

三.运行时间分析

Merge_polylist函数的执行时间:O(la.len+lb.len)

Init_polylist函数的执行时间是:O(n)

Print函数的执行时间:O(s.len)

Malloc的执行时间:O(1)

Free的执行时间:O(1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值