C语言程序设计
(1)设S为一个长度为n的字符串,其中串的字符各不相同,写出具体程序并计算出S中互异的非平凡子串,非空且不同于S本身的个数。(本题15分)。
(2)编写一个程序,对输入的任意正整数n,打印出集合{0,1,2,3,...,n-1}的所有子集。(本题15分)。
(3)已知非空线性链表第一个节点由list指出,请写一个算法交换P所指的节点与其下一个节点在链表中的位置(设P指向的不是链表最后那个结点)。(本题20分)。
(4)对给定的n(n≤10)计算并输出K!(K=1,2,3,...,n)的全部有效数字。(本题20分)。
(5)用递归算法和栈实现m个相异元素构成的有序序列的二分查找,并计算出该栈的最小容量。(本题20分)。
(6)已知平面上(直角坐标系)的m个点,请编写一个函数,求同一条直线所能通过的最多点数。(本题20分)。
(7)用程序设计有n个叶子结点的Huffman树的结点个数。(本题20分)。
(8)依次输入表(30,15,28,20,24,10,12,68,35,50,46,55)中的元素,生成一棵二叉排序树。(本题20分)。
①试画出生成之后的二叉排序树。
②若该二叉排序树作中序编历,试写出编历序列。
③假设每个元素的查找概率相等,试计算该二叉排序树的平均查找长度。