数据结构上机作业1-5章(3)
LinkList p,q; nt i; p=s;
while(p->next->next!=s) p=p->next; q=p->next; i=q->data;
p->next=q->next; free(q); return i; }
2.32② 已知有一个单向循环链表,其每个结点中
含三个域:prev、data和next,其中data为数据域,next为指向后继结点的指针域,prev也为指针域,但它的值为空(NULL),试编写算法将此单向循环链表改为双向循环链表,即使prev成为指向前驱结点的指针域。
void PerfectBiLink(BiLinkList &CL) {
BiLinkList p;
for(p=CL;!p->next->prev;p=p->next) p->next->prev=p; }
◆2.33③ 已知由一个线性链表表示的线性表中含有三类字符的数据元素(如:字母字符、数字字符和其它字符),试编写算法将该线性链表分割为三个循环链表,其中每个循环链表表示的线性表中均只含一类字符。
void Split(LinkList &lc, LinkList &ld, LinkList &lo, LinkList ll) {
LinkList p,q,r,s; p=lc;q=lo;
r=ld,s=ll->next; while(s) {
if(s->data>='0'&&s->data<='9')
{
r->next=s;
r=r->next; }
else if(s->data>='A'&&s->data<='Z'||s->data>='a'&&s->data<='z') {
p->next=s;
p=p->next; } else {
q->next=s; q=q->next; }
s=s->next; }
p->next=NULL; q->next=NULL; r->next=NULL; }
2.37④ 设以带头结点的双向循环链表表示的线性表L=(a1,a2,...,an)。试写一时间复杂度为O(n)的算法,将L改造为L=(a1,a3,...,an,...,a4,a2)。 void ReverseEven(BiLinkList &L) {
BiLinkList p; p=L->next;
if(p->next==L){} else {
while(p->next!=L&&p->next->next!=L) {
p->next=p->next->next; p=p->next; }
if(p->next==L) p->next=L->prev->prev; else p->next=L->prev; p=p->next;
while(p->prev->prev!=L) {
p->next=p->prev->prev; p=p->next; }
p->next=L;
for(p=L;p->next!=L;p=p->next) p->next->prev=p; L->prev=p; }
}
◆2.39③ 试对稀疏多项式Pn(x)采用存储量同多项式项数m成正比的顺序存储结构,编写求Pn(x0)的算法(x0为给定值),并分析你的算法的时间复杂度。 float f(float x,int j) {
int i;
float s = 1;
for( i = 0 ; i < j; ++i ){ s *= x; }
return s; }
float Evaluate(SqPoly pn, float x) /* pn.data[i].coef 存放ai, */ /* pn.data[i].exp存放ei (i=1,2,...,m) */
/* 本算法计算并返回多项式的值。不判别溢出。 */ /* 入口时要求0≤e1 float s = 0; for( i = 0; i < pn.length; ++i ){ s += pn.data[i].coef * f( x, pn.data[i].exp ); } return s; } ◆2.41② 试以循环链表作稀疏多项式的存储结构,编写求其导函数的算法,要求利用原多项式中的结点空间存放其导函数(多项式),同时释放所有无用(被删)结点。 void Difference(LinkedPoly &pa)/* 稀疏多项式 pa 以循环链表作存储结构, */ /* 将此链表修改成它的导函数,并释放无用结点 */ { LinkedPoly p; p=pa->next; if(!p->exp) { pa->next=p->next; p=p->next; } while(p!=pa) { p->coef=p->coef*p->exp ; p->exp--; p=p->next; } } 第三章 ◆3.17③ 试写一个算法,识别依次读入的一个以@为结束符的字符序列是否为形如'序列1&序列2'模式的字符序列。其中序列1和序列2中都不含字符'&',且序列2是序列1的逆序列。例如,'a+b&b+a'是属该模式的字符序列,而'1+3&3-1'则不是。
相关推荐:
- [基础教育]2016-2022年中国钢芯铝绞线市场现状调
- [基础教育]语文部编版初一语文下册练习题 句式变
- [基础教育]南京继续教育参考答案--深入学习贯彻习
- [基础教育]国旗下讲话稿——珍惜时间好读书
- [基础教育]北师大版六年级数学下册圆锥的体积教学
- [基础教育]人教版-音乐-四年级下册-四年级下册音
- [基础教育]乔布斯2019年斯坦福大学毕业典礼致辞.d
- [基础教育]2015年加油站安全知识竞赛试题及答案
- [基础教育]2020年教师年度考核个人工作总结
- [基础教育]2019年中考历史试题-2019年大庆市初中
- [基础教育]初三仁爱英语第一轮总复习教案
- [基础教育]SG-A094电气配管安装工程隐蔽验收记录
- [基础教育]冀教版小学数学三年级下册第六单元教材
- [基础教育]青岛版(五制)小学科学二年级下册16《制
- [基础教育]2018-2019年初中科学初一中考真卷测试
- [基础教育]幼儿园大班期末简短评语精选
- [基础教育]2018云南临沧公务员考试申论技巧:这样
- [基础教育]学校食堂经营管理方案
- [基础教育]新中国砥砺奋进的七十年原文
- [基础教育]真空泵的选型及常用计算公式
- 高职田径课程教学现状与对策
- 全髋关节置换术在老年股骨颈骨折患者中
- 青人社厅函〔2016〕576号(附件)工资
- cp101-07砂子检验作业指导书 - secret
- 微观经济学 第八章 博弈论 习题
- 2014高考真题(词语运用)汇编及答案
- 2018年人教版七年级语文下册《第三单元
- 苏教版数学四年级上册第一单元试题 - M
- 四川大学新闻与传播考研2000-2010年真
- 浙江万里学院英语专业四年制本科教学计
- 最新2018马年事业祝福语-范文word版(2
- 最全模具行业术语英文翻译
- 皮亚杰的发展心理学理论
- 64篇高考情景式默写 练习题及答案
- 仿写(学生稿)
- 《SQL Server数据库技术》试卷A
- 第七章作业答案
- 江苏省赣榆县海头高级中学高中语文必修
- 浙江省2001年10月自考正常人体解剖学答
- 2012英语重点短语




