1.【实验题 2-2】实现以下对单链表的操作,题意和算法描述见《习题解答》图 2-7。
//将单链表 list 逆转,将各结点的 next 指向其前驱。泛型方法,返回值类型前声明类型参数 T
public static void reverse(SinglyList list)
【思考题 2-6】实现单链表类的以下成员方法,题意和算法描述见教材图 2-18。
public SinglyList(SinglyList list) //拷贝构造方法,深拷贝,复制单链表【实验题 2-3】实现循环双链表类的以下成员方法,题意和算法描述见《习题解
答》图 2-9。
//在 this 循环双链表之后,合并连接 list 中所有结点,并设置 list 为空
public void concat(CirDoublyList list)
【思考题 3-1】实现 MyString 类声明的以下成员方法,要求一次遍历算法效率。
public MyString trim() //返回 this 串删除所有空格的字符串,不改变 this 串
public int compareToIgnoreCase(MyString s) //比较 this 与 s 串的大小,返回两者差值,忽略字母大小写① 什么是栈?② 栈的特点是什么?③ 栈可采用哪两种存储结构?④ 分别说明每
种存储结构执行插入、删除操作时是否需要移动数据元素,为什么?⑤ 分别采用两种存储结构
存储栈,画出以下数据序列执行以下操作后栈的示意图(只要写结果,不要写过程),标明栈顶
变量的位置,写出栈空的条件表达式。
数据序列:{34, 15, 20, 78, 11, 24, 10, 21, 45, 95}
操作序列:{入栈,入栈,出栈,入栈,入栈,入栈,出栈,入栈, 出栈, 入栈, 入栈, 出栈, 入栈, 入栈}① 什么是队列?② 队列的特点是什么?③ 为什么要将顺序队列设计成环形结
构?④ 分别采用顺序循环队列(容量为 7)和链式队列存储,画出以下数据序列执行以下操作
后队列的示意图(只要写结果,不要写过程),标明队列首尾变量的位置。写出队列空和队列满
的条件表达式。
数据序列:{17, 52, 38, 55, 99, 21, 32, 75, 43}
操作序列:{入队, 入队, 出队, 入队, 入队, 出队, 入队, 入队, 入队, 出队, 入队, 入队}
7. 【思考题 6-3】实现 BinaryTree 二叉树类声明的以下成员方法,递归算法。
BinaryTree(BinaryTree bitree) //拷贝构造函数,深拷贝
已知一棵二叉树,画出另一棵二叉树构造过程的二叉链表,说明何时创建结点、何时建立
结点之间的链接关系。