编写一个递归算法,找出从自然数1,2,3,…,n中任取r个数的所有组合。例如n=5,r=3时所有组合为543,
求自然数1到n的和的递归定义如下: sum(1)=1 若n=1 sum(n)=sum(n-1)+n; 若n>1 下列定义的方法的功能是用递归的算法完成自然数1到n的累加和,请补充程序。 int sum (int num{ if(num = =1)return1; else return【 】 }
二叉树
实验目的:
(1)熟悉二叉树的各种存储结构及适用范围。
(2)掌握建立二叉树的存储结构的方法。
(3)熟练掌握二叉树的先序、中序、后序遍历的递归算法和非递归算法。
(4)灵活运用递归的遍历算法实现二叉树的其他各种运算。
(5)掌握和理解本实验中出现的一些基本的C语言语句。
(6)体会算法在程序设计中的重要性。
实验内容:
(1)以二叉链表作存储结构,设计求二叉树高度的算法。
(2)以二叉链表作存储结构,编写递归的中序遍历算法。
(3)以二叉链表作存储结构,编写非递归的中序遍历算法。
(4)以二叉链表作存储结构,编写求二叉树中叶子结点的个数算法。
查找
实验目的:
(1)掌握顺序查找、二分查找的递归及非递归算法。
(2)掌握散列表上的各种操作。
(3)熟练掌握在二叉排序树上各种操作的实现方法。
(4)掌握和理解本实验中出现的一些基本的C语言语句。
(5)体会算法在程序设计中的重要性。
实验内容:
(1)给出顺序表上顺序查找元素的算法。
(2)给出非递归的二分查找算法。
(3)编写拉链法处理冲突的查找程序。
算法的时间复杂性是指()。
A.所有算法都与问题的规模有关,问题规模越大,时间复杂性越大。
B.同一个算法,可以编写不同的程序,程序的执行时间不同,因此一个算法可以有多种不同的时间复杂性。
C.时间复杂性是衡量一个算法优劣的唯一标准。
D.指根据该算法编写的程序在运行过程中,从开始到结束所需要的时间。
E.通常以算法的元操作重复执行的次数作为算法的时间度量。
F.算法时间复杂性越低,算法就越好。