算法设计
1一个单链表(不同结点的数据域值可能相同),其头指针为head,编写一个函数计算数据域为x 的结点个数。
2设计算法,求二叉树的深度。 3计一个算法判断一个字符串是否对称
4有一棵二叉树BT以二叉链表为存储结构,请按照要求写出如下算法。 求BT中所有叶子结点数目。
5设计算法,按从根结点到叶子结点,从左子结点到右子结点的次序输出二叉树的所有结点。 6 写出先序遍历二叉树的非递归算法
7设计算法,在无头结点链表L的第i个元素之前插入元素 8设计一算法判别表达式中小括号是否匹配
9设计一算法,求二叉树中以值为x的结点为根的子树深度
10试编写在带头结点的单链表中删除(一个)最小值结点的(高效)算法
11设L为单链表的头结点地址,其数据结点的数据都是正整数且无相同的,试设计利用直接插入的原则把该链表整理成数据递增的有序单链表的算法。
12设有一个带头结点的单向链表,数据项递减有序。写一算法,重新排列链表,使数据项递增有序,要求算法时间复杂度为O(n)
13有一个单链表L(至少有1个结点),其头结点指针为head,编写一个过程将L逆置,即最后一个结点变成第一个结点,原来倒数第二个结点变成第二个结点,如此等等。 14假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾结点,但不设头指针,请写出相应的入队列和出队列算法。
15设一棵二叉树以二叉链表为存贮结构,结点结构为(lchild, data,rchild),设计一个算法将二叉树中所有结点的左,右子树相互交换。
16一棵二叉树以二叉链表来表示,求其指定的某一层k(k>1)上的叶子结点的个数。