- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
循环链表及双向链表
目 录;5.1几种特殊线性链表 ;5.2 循环链表 ;5.3 双向链表 ;循环单链表是单链表的另一种形式,其结构特点是链表中最后一个结点的指针不再是结束标记,而是指向整个链表的第一个结点,从而使单链表形成一个环。和单链表相比,循环单链表的长处是从链尾到链头比较方便。当要处理的数据元素序列具有环型结构特点时,适合于采用循环单链表。循环链表的插入、删除运算基本同单向链表,只是查找时判别条件不同而已;但是这种循环链表实现各种运算时的危险之处在于:链表没有明显的尾端,可能使算法进入死循环,所以判断条件应该用curr.next()!=head替换单向链表的curr.next()!=null完成遍历所有结点。;(一)双链表的插入 ;(2);5.4 线性表应用示例 ;A-B;long DiDiff(TLinearListSqulong a,
TLinearListSqulong b)
{//将a中的出现在b中的元素删除,返回从a中删除的元素的数
//目 a和b都是前面定义的线性表类,元素类型实例化为long。
long i,j, k;
j=0;
for (i=0; ib.len; i++) //扫描b
{
k = a.Locate(b.Get(i), 1); //依次检查b中每个元素是否在a中
if (k 0 ) //如在a中,则从a中将其删除
{a.Delete(k+1); j--;}
Else{ a.Insert(b.Get(i),1);j++}
}
return j;
};5.5一元多项式相加 ; 为解决0系数问题,可以不存贮0值元素。但这样就不能利用位置关系隐含指出系数对应的指数了,而必须显式地给出指数。
对任一个一元n次多项式,若不写出系数为0的项,则可表示为
pn(x) = p1xe1+p2xe2+ … +pnxen
这里,p1, p2, … , pn均非0,e1e2 … en=n。
显然,对此形式多项式,可确定地用下列形式的线性表表示
((p1,e1), (p2,e2), …, (pn,en) )
该线性表每个元素是个二元组(pi,ei),分别指出第i个非0项的系数和指数,二元组按指数递增的次序排列。在这种结构中,元素之间的次序关系仅代表元素对应的指数的大小关系。;对这种线性表,既可用顺序存贮结构,也可用链式存贮结构。但考虑到在进行符号加法时,要经常进行插入与删除操作,所以采用链式存贮结构较为合适。这里,我们采用动态链式存贮结构,线性表每个元素的结构为
;为处理方便,在具体存储多项式时,我们规定:
所存储的多项式已约简,即已合并同类项,不保留0系数项,各项按指数的升序排列。 ; 一元n次多项式的(符号)相加,实质上是合并同类项的过程,即指数相同的项,其系数相加,指数不同的项复抄。;(1)若p→expq→exp, 则结点p应为和的一个结点,故p后移一步,q 不动。
(2)若p→expq→exp ,则结点q应为和的一个结点,故应将q 从B(x)中摘除后插入到A(x)中p之前,然后q向后移一步,p 不动。
(3)若p→exp=q→exp,则表明p与q 所指为同类项,应合并,故要将q的系数加到p的系数上。若相加结果为0,则表明和式中无此项,故应从A(x) 中删除p,从B(x) 中删除q,并令p 与q 分别指向下一结点。若相加和不为0,则表明相加结果应为和式中的一个结点,p 后移一步,然后将q从B(x) 中摘除,令q指向下一结点。;下面先给出算法的伪码。
p=A的第一个元素;
q=B的第一个元素;
while (p存在 q存在)
{
if (p的指数 q的指数)
{ p0 = p; p = p-next; };else
if (p的指数 q的指数)
{
将q插入到p之前;
令p0指向插入后的q,即p的当前前驱;
令q指向它原所指的下一个结点;
}
else
{
x = p的系数 + q的系数之和;
if (x==0)
{;删除p;
使p指向它原指结点的下一个;
}
else
{
令p的系数为x;
使p指向它原指结点的下一个;
}
删除q;
使q指向它原指结点的下一个;
} // if (p的指数 q的指数) … else
} //while
if (q不为空) 将q挂接在p之后;
;该程序不断比较A链和B链中的一对结点的指数值(称其为当前结点)。开始时A链和B链中参加比较的当前结点都是它们的第一个元素。
主循环while结束后,可能出现下列3种情况:①A链
您可能关注的文档
- 广工管理运筹学运筹学_绪论及第2章.ppt
- 应用成本分析於全民健保支付标准之订定和相关之问题.ppt
- 应用指引第16号-合同管理.ppt
- 应用文写作第七讲2传播类文书.ppt
- 应用文写作第3章.ppt
- 应用电化学_1_4_法拉第过程动力学.ppt
- 店长讲训e快乐签单3团队配合法.ppt
- 应用文写作_如何写申请信.ppt
- 废塑料再生利用.pptx
- 底盘电控的技术复习.ppt
- 2025年怀化师范高等专科学校单招职业技能考试题库必考题.docx
- 2025年江西工业贸易职业技术学院单招职业技能考试题库推荐.docx
- 2025年福建船政交通职业学院单招职业技能考试题库审定版.docx
- 2025年忻州职业技术学院单招职业技能考试题库a4版.docx
- 2025年江苏旅游职业学院单招职业技能考试题库带答案.docx
- 2025年云南外事外语职业学院单招职业技能考试题库完美版.docx
- 2025年潍坊工商职业学院单招职业技能考试题库及完整答案1套.docx
- 2025年沈阳北软信息职业技术学院单招职业技能考试题库完整.docx
- 2025年许昌陶瓷职业学院单招职业技能考试题库推荐.docx
- 2025年安徽邮电职业技术学院单招职业技能考试题库及完整答案1套.docx
文档评论(0)