(1) (3分)给出适用于计数排序的数据表定义;
(2) (7分)使用pascal或c语言编写实现计数排序的算法;
(3) (4分)对于有n个记录的表,关键码比较次数是多少?
(4) (3分)与简单选择排序相比较,这种方法是否更好?为什么?
3、根据二叉排序树中序遍历所得结点值为增序的性质,在遍历中将当前遍历结点与其前驱结点值比较,即可得出结论,为此设全局指针变量pre(初值为null)和全局变量flag,初值为true。若非二叉排序树,则置flag为false。
#define true 1
#define false 0
typedef struct node
*btree;
void judgebst(btree t,int flag)/ 判断二叉树是否是二叉排序树,本算法结束后,在调用程序中由flag得出结论。
if(t!=null &&flag)
//不是完全二叉树
judgebst (t->rlink,flag);/中序遍历右子树。
//judgebst算法结束。
2023年湖北省数据总结基础
1 给出折半查找的递归算法,并给出算法时间复杂度性分析。2 设有一组初始记录关键字为 45,80,48,40,22,78 要求构造一棵二叉排序树并给出构造过程。3 有一个带头结点的单链表,每个结点包括两个域,一个是整型域info,另一个是指向下一个结点的指针域next。假设单链表已建立,设计算法删除...
2019湖北省数据简介高级
1 编程实现单链表的就地逆置。23 在数组a 1.n 中有n个数据,试建立一个带有头结点的循环链表,头指针为h,要求链中数据从小到大排列,重复的数据在链中只保存一个。2 题目中要求矩阵两行元素的平均值按递增顺序排序,由于每行元素个数相等,按平均值排列与按每行元素之和排列是一个意思。所以应先求出各行元...
2019湖北省数据简介高级
1 编程实现单链表的就地逆置。23 在数组 a 1.n 中有n个数据,试建立一个带有头结点的循环链表,头指针为h,要求链中数据从小到大排列,重复的数据在链中只保存一个。2 题目中要求矩阵两行元素的平均值按递增顺序排序,由于每行元素个数相等,按平均值排列与按每行元素之和排列是一个意思。所以应先求出各行...