数据结构算法题
更新时间:2023-11-28 07:12:01 阅读量: 教育文库 文档下载
前五章习题算法
2.2
算法设计题
1.设计一个算法从一给定的有序顺序表L中删除元素值在X到Y(X<=Y)之间的所有元素,要求以较高的效率实现,要求算法的空间复杂度为O(1) void delete(SqList &L,ElemType x,ElemType y) {
int i=0,k=0;
while(i
L.length=L.length-k; }
2设一个有序表L,含有2n个整数,其中n个位负数,n个为正数,设计一个算法将L中所有元素按正负相间排列. 要求算法的空间复杂度为O(1),时间复杂度为O(n) void move(SqList &L) {
int i=0,j=L.length-1; int temp;
while(i while(i } } 3.假设一两个元素依之=值递增有序排列的线性表A和B分别表示两个集合(同一 元素值各不相同),要求分别设计求A和B交并差集的算法,要求结果线形表中的元素依值递增有序排列,试对顺序表实现上述操作. 交集: void intersection(SqList A,SqList B ,SqList &C) { int i=0,j=0,k=0; while(iB.elem[j]) j++; else { C.elem[k]=A.elem[i]; k++;i++;j++;} //共同的元素 } C.length=k; } 并集: void Union(SqList A,SqList B ,SqList &C) { int i=0,j=0,k=0; while(iB.elem[j]) {C.elem[k]=B.elem[j];k++;j++;} else {C.elem[k]=A.elem[i]; k++;i++;j++;} //共同的元素只放一个 } while(i void differnce(SqList A,SqList B ,SqList &C) { int i=0,j=0,k=0; while(iB.elem[j]) {j++;} else {i++;j++;} //共同的元素只放一个 } while(i 2.3线性表的链式存储结构 简答题: 1. 描述以下三个概念的区别:头结点,头指针,首元结点(第一个元素结点).在单链表中设置头 结点的作用是什么? 答:首元结点是指链表中存储线性表中第一个数据元素a1的结点。为了操作方便,通常在链表的首元结点之前附设一个结点,称为头结点,该结点的数据域中不存储线性表的数据元素,其作用是为了对链表进行操作时,可以对空表.非空表的情况以及对首元结点进行统一处理。头指针是指向链表中第一个结点(或为头结点或为首元结点)的指针。若链表中附设头结点,则不管线性表是否为空表,头指针均不为空。否则表示空表的链表的头指针为空。这三个概念对单链表.双向链表和循环链表均适用。是否设置头结点,是不同的存储结构表示同一逻辑结构的问题。 头结点 head à data link 头指针 首元结点 简而言之, 头指针是指向链表中第一个结点(或为头结点或为首元结点)的指针; 头结点是在链表的首元结点之前附设的一个结点;数据域内只放空表标志和表长等信息(内放头指针?那还得另配一个头指针!!!) 首元素结点是指链表中存储线性表中第一个数据元素a1的结点。 2. 试比较线性表的两种存储结构的优缺点,在什么情况下用顺序表比链表好? ① 顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。 优点:存储密度大,存储空间利用率高。缺点:插入或删除元素时不方便。 ②链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针 优点:插入或删除元素时很方便,使用灵活。缺点:存储密度小(<1),存储空间利用率低。 顺序表适宜于做查找这样的静态操作;链表宜于做插入.删除这样的动态操作。 若线性表的长度变化不大,且其主要操作是查找,则采用顺序表; 若线性表的长度变化较大,且其主要操作是插入.删除操作,则采用链表。 算法设计题 1试写一算法,对单链表的实现就地逆置 Status ListOppose_L(LinkList &L) { LinkList p,q; p=L->next; //p指向单链表第一个结点 L->next=NULL; //形成空的单链表 while(p){ //采用头插入法将p结点插入到头结点的后面实现逆置 q=p; p=p->next; q->next=L->next; L->next=q; } return OK; } 2试设计一个算法,求A和Bl两个单链表表示的集合的交集并集和差集,单链表中的数据递增有序排列 并集:LinkList Bingji(LinkList &Head1,LinkList &Head2,LinkList &Head3) { LNode *p1=Head1->next; LNode *p2=Head2->next; LNode *p3=Head3=Head1; while(p1 && p2) { if(p1->data < p2->data) { p3->next =p1; p3=p3->next ; p1=p1->next ; } else { if(p1->data > p2->data) { p3->next =p2; p3=p3->next ; p2=p2->next ; } else { p3->next = p1; p3=p3->next ; p1=p1->next ; q=p2; free(q); p2=p2->next ; } } } p3->next =(p1)?p1:p2; free(Head2); return Head3; } 交集:LinkList Jiaoji(LinkList &Head1,LinkList &Head2,LinkList &Head3) { LinkList pa,pb,r,p; pa=Head1->next; pb=Head2->next; r=Head3=Head1; while(pa&&pb){ if(pa->data r->next =pa->next ; free(pa); pa=r->next ; } else if(pa->data>pb->data) pb=pb->next; else {r->next=pa; r=pa;pa=pa->next;} } while(pa){ r->next =pa->next ; free(pa); pa=r->next ; } while (Head2->next) //释放Head2链表所有的结点空间 { p=Head2->next; Head2->next=p->next; free(p); } return Head3; } 差集:LinkList Chaji(LinkList &Head1,LinkList &Head2,LinkList &Head3) { LinkList pa,pb,r,p; pa=Head1->next; pb=Head2->next; r=Head3=Head1; while(pa&&pb){ if(pa->data while(!QueueEmpty(Q)) { DeQueue(Q,p); visit(p); if(p->lchild) EnQueue(Q,p->lchild); if(p->rchild) EnQueue(Q,p->rchild); } }//LayerOrder 6.2.4假定二叉树采用二叉链表存储结构存储,设计一个算法计算一棵给定二叉树的结点总数. int Nodes(BTNode *T) { int num1,num2; if (T==NULL) return 0; else if(T->lchild==NULL&&T->rchild==NULL)return 1; else { num1=Nodes(T->lchild); num2=Nodes(T->rchild); return num1+num2+1; } }
正在阅读:
数据结构算法题11-28
远动处方复习练习题11-15
材料研究方法04-10
下向焊简介01-30
旅游业行业分析详解04-16
模拟电子线路习题习题答案10-13
《平“语”近人》观后感12-11
小学一年级语文下册期末试题汇总08-21
先进制造技术复习题11-28
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 数据结构
- 算法
- 复习题(1)
- 湖南省武冈二中2018 - 2019学年高一地理上学期第二次月考试题201901040123
- 体育与健康课程理论试卷
- 特别优秀本科毕业论文经典范文 - 齿轮座零件机械加工工艺及夹具设计
- 商品混凝土采购合同
- 一年级奥数之有趣的推理 - 图文
- 机械设计基础习题答案
- 人力资源和社会保障服务测试题
- 简述工程招投标与合同管理的关系
- 机械设计复习试题
- 股票基本面分析实验报告
- 《理解媒介》读书报告
- 立定跳远教案
- 稻草人
- 加入WTO后中国对外贸易的发展变化
- 公司质量提升行动方案
- 通信工程专业综合实验报告--路由器的基本操作
- 卢秉恒《机械制造技术基础》 第三版 考试重点
- 技术经济学习题答案 清华大学出版社 陈伟等
- 西南交大物理实验期末试题题库-空气比热容比测量