带头结点且头指针为ha和hb的两线性表A和B 分别表示两个集合。两表中的元素皆为递增有序。请写一算法求A和B的并集AUB。要求该并集中的元素仍保持递增有序。且要利用A和B的原有结点空间。【北京邮电大学1992 二(15分)】类似本题的另外叙述有:(1) 已知递增有序的两个单链表A,B分别存储了一个集合。设计算法实现求两个集合的并集的运算A:=A∪B【合肥工业大学1999 五、1(8分)】(2)已知两个链表A和B分别表示两个集合,其元素递增排列。编一函数,求A与B的交集,并存放于A链表中。【南京航空航天大学2001 六(10分)】(3)设有两个从小到大排序的带头结点的有序链表。试编写求这两个链表交运算的算法(即L1∩L2)。要求结果链表仍是从小到大排序,但无重复元素。【南京航空航天大学1996 十一(10分)】(4)己知两个线性表A ,B均以带头结点的单链表作存储结构,且表中元素按值递增有序排列。设计算法求出A与B的交集C,要求C另开辟存储空间,要求C同样以元素值的递增序的单链表形式存贮。【西北大学2000 五( 8分)】(5)已知递增有序的单链表A,B和C分别存储了一个集合,设计算法实现A:=A∪(B∩C),并使求解结构A仍保持递增。要求算法的时间复杂度为O(|A|+|B|+|C|)。其中,|A|为集合A的元素个数。【合肥工业大学2000 五、1(8分)】
查看答案
已知L1、L2分别为两循环单链表的头结点指针,m,n分别为L1、L2表中数据结点个数。要求设计一算法,用最快速度将两表合并成一个带头结点的循环单链表。【东北大学1996 二(12分)】类似本题的另外叙述有:(1)试用类Pascal语言编写过程PROC join(VAR la:link;lb:link) 实现连接线性表la和lb(lb在后)的算法,要求其时间复杂度为0(1),占用辅助空间尽量小。描述所用结构。【北京工业大学1997 一、1 (8分)】(2)设有两个链表,ha为单向链表,hb为单向循环链表。编写算法,将两个链表合并成一个单向链表,要求算法所需时间与链表长度无关。【南京航空航天大学1997 四(8分)】
已知不带头结点的线性链表list,链表中结点构造为(data、link),其中data为数据域,link为指针域。请写一算法,将该链表按结点数据域的值的大小从小到大重新链接。要求链接过程中不得使用除该链表以外的任何链结点空间。【北京航空航天大学1998 五(15分)】
设L为单链表的头结点地址,其数据结点的数据都是正整数且无相同的,试设计利用直接插入的原则把该链表整理成数据递增的有序单链表的算法。【东北大学1996 六(14分)】类似本题的另外叙述有:(1)设一单向链表的头指针为head,链表的记录中包含着整数类型的key域,试设计算法,将此链表的记录按照key递增的次序进行就地排序.【中科院计算所1999五、1(10分)】
将一个带头结点的单链表A分解为两个带头结点的单链表A和B,使得A表中含有原表中序号为奇数的元素,而B表中含有原表中序号为偶数的元素,且保持其相对顺序不变。1) 写出其类型定义:2) 写出算法。【山东大学1998 九(9分)】【山东工业大学 2000 九(9分)】