浙江中医药大学-线性表算法设计题
来源:互联网 发布:程序员工作站 编辑:程序博客网 时间:2024/04/29 02:48
ZCMU-Data Structure-Linear List
1、已知两个链表A和B分别表示两个集合,元素递增排列。设计算法求出A与B的交集,并存放于A链表中。(本部)
思路:从首元结点开始,逐个地把链表L的当前结点p插入新的链表头部
思路:只有同时出现在两集合中的元素才出现在结果表中,合并后的新表使用头指针Lc指向。pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点,从第一个结点开始进行比较,当两个链表La和Lb均为到达表尾结点时,如果两个表中相等的元素时,摘取La表中的元素,删除Lb表中的元素;如果其中一个表中的元素较小时,删除此表中较小的元素,此表的工作指针后移。当链表La和Lb有一个到达表尾结点,为空时,依次删除另一个非空表中的所有元素。
void Mix(LinkList& La, LinkList& Lb, LinkList& Lc) { pa=La->next;pb=Lb->next; //pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点Lc=pc=La; //用La的头结点作为Lc的头结点while(pa&&pb){ if(pa->data==pb->data)∥交集并入结果表中。 { pc->next=pa;pc=pa;pa=pa->next; u=pb;pb=pb->next; delete u;} else if(pa->data<pb->data) {u=pa;pa=pa->next; delete u;}else {u=pb; pb=pb->next; delete u;}}while(pa) {u=pa; pa=pa->next; delete u;}∥ 释放结点空间while(pb) {u=pb; pb=pb->next; delete u;}∥释放结点空间pc->next=null;∥置链表尾标记。delete Lb; //释放Lb的头结点2、设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表B、C,其中B表的结点为A表中值小于零的结点,而C表的结点为A表中值大于零的结点(链表A中的元素为非零整数,要求B、C表利用A表的结点)。
思路:B表的头结点使用原来A表的头结点,为C表新申请一个头结点。从A表的第一个结点开始,依次取其每个结点p,判断结点p的值是否小于0,利用前插法,将小于0的结点插入B表,大于等于0的结点插入C表。
void DisCompose(LinkedList A){ B=A; B->next= NULL; ∥B表初始化 C=new LNode;∥为C申请结点空间 C->next=NULL; ∥C初始化为空表 p=A->next; ∥p为工作指针 while(p!= NULL) { r=p->next; ∥暂存p的后继 if(p->data<0) {p->next=B->next; B->next=p; }∥将小于0的结点链入B表,前插法 else {p->next=C->next; C->next=p; }∥将大于等于0的结点链入C表,前插法 p=r;∥p指向新的待处理结点。 }}3、设计一个算法,通过遍历一趟,将链表中所有结点的链接方向逆转,仍利用原表的存储空间。
思路:从首元结点开始,逐个地把链表L的当前结点p插入新的链表头部
void inverse(LinkList &L) {// 逆置带头结点的单链表 L p=L->next; L->next=NULL; while ( p) { q=p->next; // q指向*p的后继 p->next=L->next; L->next=p; // *p插入在头结点之后 p = q; }}
4、统计出不带表头的单链表HL中结点的值等于给定值X的结点数,写出实现算法。(滨江)
int CountX(lklist * HL,ElemType x){ int i=0;LNode* p=HL;//i为计数器while(p!=NULL) {if (P->data==x) i++;p=p->next;}//while, 出循环时i中的值即为x结点个数return i;}//CountX
0 0
- 浙江中医药大学-线性表算法设计题
- 浙江中医药大学-《数据结构》-栈和队列算法设计
- 浙江中医药大学-《数据结构》-串、数组算法设计
- 浙江中医药大学-数据结构与算法期末考试应用题、程序设计题
- 1591 浙江中医药大学
- 1531 浙江中医药大学
- 1066 浙江中医药大学ACM
- 1049 '最爱' 浙江中医药大学
- 1065 浙江中医药大学ACM OJ
- 寻找zcmu-2017浙江中医药大学程序设计
- 浙江中医药大学-数据结构与算法期末考试应用题图论补充
- 山东中医药大学数据结构第二章线性表
- 浙江中医药大学-Data Structure 笔试期末复习(判断题)
- 浙江中医药大学暑期训练测试赛八A
- 浙江中医药大学暑期训练测试赛八B
- 浙江中医药大学暑期训练测试赛八C
- 浙江中医药大学暑期训练测试赛八F
- 浙江中医药大学暑期训练测试赛八H
- PHP 中jsonp格式
- java性能优化总结(2):集合
- TCP数据报首部
- 关于java.lang.Exception: 密钥库文件不存在: debug.keystore问题的解决方案
- 基类虚析构函数
- 浙江中医药大学-线性表算法设计题
- 径向基网络(RBF network)之BP监督训练
- 无主之地未排序
- Hibernate学习笔记
- Hibernate学习笔记 开始学习
- CSS块级元素、内联元素、内联块状元素完全解析
- IP数据报首部
- UITabBarController 简要
- python学习笔记-format()函数