高度为h(根为0层)的完全二叉树,最少有多少个节点,最多多少个
2017
数据结构 45分
一.选择题(15,每题3分)
1. 下列哪一个是非线性结构?
A.队列 B.栈 C.二叉树 D.记不大清了。。
2.下列代码中x的执行频度?
for(i=0;i<n;i++)
for (j=0;j<n;j++)
x=x+I;
A. O(n) B.O(2n) C.O(n^2) D.O(log2n)
3.数组读取第i个元素的时间复杂度
A.O(1) B.O(nog2n) C.O(n) D.O(log2n)
4.下列二叉树的中序遍历序列是
用Visio画的图传不上来。。只是一个很简单的中序遍历
5.无向图有()条边
A.n(n-1)/2 B.n(n-1) C.n(n+1)/2 D.(n-1)/2
二.名词解释(20,每个4分)
1.搜索二叉树 2.图的最小生成树 3.堆 4.线性结构 5.算法的时间复杂度
三.计算题 (10分)
散列表的地址区间为0-16, 散列函数为H(K)=K%17, 采用线性探查法处理冲突,请将关键码序列 26、25、72、38、8、18、59依次存储到散列表中
2016..
算法题
1) 长度为n的数组a[0...n-1], 编写一个算法在O(n)的时间复杂度内将数组中所有负数放在非负数前面 。 (我记得王道上面有这道题)
2) 已知first为不带表头结点的单链表的表头指针(如下图所示),链表中存储的都是整型数据,试写出求所有结点的data域平均值的递归函数。 (软院05年DS期末题)
3) 假设以数组Q[m]存放循环队列中的元素,同时以rear和length分别指示 环形队列中的队尾位置和队列中所含元素的个数,试用C++语言写出一个程序,给出该循环队列的类声明,给出队空条件和队满条件,并写出相应的插入元素(Add)和删除(Delete)元素的算法(用类模板,函数模板形式写) (软院04年考研原题)
2015..
A. 数据结构部分(45分,10道选择)
1. 最小生成树 10分
2. 写出一个树的类定义,包括成员属性和方法,用C++语言,并且写出求树高度的递归方法,15分。(这道题很多之前的年份考过)