5.6m元多项式的表示
发布日期:2021-06-30 10:49:17 浏览次数:2 分类:技术文章

本文共 668 字,大约阅读时间需要 2 分钟。

在一般情况下使用广义表多数既非是递归表,也不为其他表所共享。对广义表可以这样理解,广义表中的一个数据元素可以是另一个广义表,一个m元多项式的表示就是广义表的这种应用的典型实例。

由于m元多项式中每一项得病变化数目的不均匀性和变元信息的重要性,故不适合用线性表。如下面这个三元多项式

这个三元多项式可以有下面的化简

所以,任何一个m元多项式都可如此做:先分解出一个主变元,随后再分解出第二个变元等等。

什么那个式子可化为:

P=z((A,2),(B,1),(15,0))

其中

A=y((C,3),(D,2))

     C=x((1,10),(2,6))

     D=x((3,5))

B=y((E,4),(F,1))

     E=x((E,4),(F,1))

     F=x((2,0))

链表结构为:

这里的exp为指数域,coef为系数域,hp指向其系数子表,tp指向同一层的下一个结点

代码如下:

typedef struct MPNode{	ELemTag tag;	//区分原子结点和表结点	int exp;	//指数域	union{		float coef;//系数域		struct MPNode *hp;	//表结点的表头指针	};	struct MPNode *tp;	//相当于线性链表的next,指向下一个元素结点}*MPList;	//m元多项式广义表类型
上面的多元式可有下面的存储结构示意图:

分析如下:

在每一层上增设一个表头结点并利用exp指示该层的变元,可用一位数组存储多项式中的所有变元,故exp域存储的是该变元在一位数组中的下标。

转载地址:https://it1995.blog.csdn.net/article/details/55001071 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:6.1树的定义和存储
下一篇:关系数据模型和关系数据库系统

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月09日 01时14分08秒