1.试编写算法,对一棵以孩子-兄弟链表表示的一般树统计其叶子的个数。
2.试编写算法,将单链表L1拆成两个链表,其中以L1为头的链表保持原来向后的链接,另一个链表的头为L2,其链表方向与L1相反,
L1包含原链表的奇数序号的节点,L2包含原链表的偶数序号的节点。
3.设有一个含n(n>1)个整数的线性表。请设计一个在时空两方面尽可能高效的算法,将表中数据从小到大重新排序。要求:
(1)给出算法的基本设计思想。
(2)采用类C语言描述算法,关键步骤给出注释,说明时间复杂度和空间复杂度。
详见《排序概述》
http://blog.csdn.net/chuchus/article/details/39379287
4.已知二叉树T采用二叉链表存储结构,每个节点有三个字段,内容、左孩子指针、右孩子指针。
请设计一个计算该二叉树所有叶子节点数目的算法。
注意与1题的区别与联系。
5.有一个非严格递增单链表,设计一个算法删除值重复的节点。
6.假设二叉树以二叉链表存储,设计一个算法判断一颗二叉树是否为完全二叉树?
7.写算法,对无头结点的单链表中的元素逆置(不允许申请新的节点空间)。
头插法。
8.将普通链表中值最小的结点提到最前,要求不能申请新的节点。
9.试写出一个递归函数,判断两棵树是否相等。
时间: 2024-12-03 02:52:23