实验一线性表的基本操作
实验范围为第2章,任务是验证教材中的线性表类及其基本操作,设计实现指定操作的算法,并做算法分析。“实验目的和要求”已由教材实验2给出。要求使用Java语言,采用泛型类,算法效率为一次遍历。
实验题目及分配如下(按班级名单序号依次选取)。
以下各题对带头结点的单链表进行操作,方法声明见实验2。
(1)判断单链表是否包含另一条单链表的所有结点,即判断无序的子集。
(2)返回从单链表指定位置开始、长度为n的子表,深拷贝。
(3)以深拷贝方式在单链表的指定位置插入另一条单链表,集合并运算。
(4)以深拷贝方式在单链表最后添加另一条单链表的所有结点。
(5)删除单链表从指定位置开始、长度为n的子表。
(6)返回由两条单链表中元素值相同的所有结点组成的单链表对象,集合交运算。
(7)删除当前单链表中那些也包含在list链表中的所有结点,集合差运算。
(8)判断单链表是否包含与另一条单链表匹配的子表,BF模式匹配算法。
(9)将单链表中所有与sourcelist匹配的子表替换为destlist子表,包含BF模式匹配算法。
以下各题对带头结点的循环单链表进行操作:
(10)比较两条循环单链表是否相等。
(11)判断循环单链表是否包含另一条循环单链表的所有结点。
(12)返回从循环单链表指定位置开始、长度为n的子表,深拷贝。
(13)实现循环单链表深拷贝功能。
(14)由单链表构造循环单链表,深拷贝。
(15)以深拷贝方式在循环单链表的指定位置插入另一条循环单链表,集合并运算。
(16)以深拷贝方式在循环单链表最后添加另一条循环单链表的所有结点。
(17)删除循环单链表从指定位置开始、长度为n的子表。
(18)返回由两条循环单链表中元素值相同的所有结点组成的循环单链表对象,集合交运算。
(19)删除循环单链表中那些也包含在指定另一条循环单链表中的所有结点,集合差运算。
(20)判断循环单链表是否包含与另一条循环单链表匹配的子表。
(21)将循环单链表中所有与sourcelist匹配的子表替换为destlist子表。
以下各题对带头结点的双链表进行操作:
(22)比较两条双链表是否相等,并实现递归算法。
(23)判断双链表是否包含另一条双链表的所有结点。
(24)返回从双链表指定位置开始、长度为n的子表,深拷贝。
(25)实现双链表深拷贝功能。
(26)由单链表构造双链表,深拷贝。
(27)以深拷贝方式在双链表的指定位置插入另一条双链表,集合并运算。
(28)以深拷贝方式在双链表最后添加另一条双链表的所有结点。
(29)删除双链表从指定位置开始、长度为n的子表。