笔试0324

一、选择题

1、  在一个单链表中,若p所指的结点不是最后结点,在p所指节点之后插进s所指结点,则应执行操纵(s->next=p->next;p->next=s

2、  在下列排序方法中,不稳定的方法有(堆排、快排

3、  深度为6(根的层次为1)的二叉树至多有(63)节点

二叉树:每个结点至多有两个子树的树结构。不存在度大于2的结点。二叉树是递归定义的。

基本概念:结点层:根结点的层定义为1;根的孩子为第二层结点,依此类推;
                 树的深度:树中最大的结点层
                 结点的度:结点子树的个数

                 树的度: 树中最大的结点度。

主要性质:(1) 在非空二叉树中,第i层的结点总数不超过 2^(i-1) , i>=1;
                 (2) 深度为h的二叉树最多有2^h-1 个结点(h>=1),最少有h个结点;
                 (3) 对于任意一棵二叉树,度为0的节点(叶子节点)总比度为2的节点多一个,即N0=N2+1
                 (4) 具有n个结点的二叉树,其深度至少为 [longn/long2]+1 (注:[ ]表示向下取整)

类型:(1)满二叉树:除了叶子结点,每个结点都有两个子结点。
          (2)完全二叉树:除了最后一层外,其他各层节点数都达到了最大,最后一层的叶子结点从左往右依次排列
          (3)二叉排序树:值(左子树的所有结点)<值(根结点),值(右)>值(根)。左、右子树分别也都是二叉排序树。

          (4) 平衡二叉树:又被称为AVL树(区别于AVL算法),它是一棵二叉排序树,且具有以下性质:它是一棵空树或它的左                                        右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。      

          (5) 哈夫曼树:只有叶子和度为2的结点的二叉树

二叉树的遍历:(1) 前序:根--左--右
                        (2) 中序: ----右
                        (3) 后序: 左--右--

4、  在需要经常查找节点的先驱与后继的场合中,使用(双向链表)比较合适

5、  带头结点的单链表head为空的判定条件(head->next==NULL

6、  将一个递归算法改为非递归算法时,通常需要使用(

7、下列描述不是链表的优点的是(C

A、逻辑上相邻的结点物理上不必邻接

B、插进、删除运算操作方便,不必移动结点

C、所需存储空间比线性表节省

D、无需事先估计存储空间的大小

8、SQL语言集数据查询、数据操纵、数据定义、数据控制功能于一体,语句INSERT、DELETE、UPDATE实现(数据操纵)功能

数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。
数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。
数据查询语言(DQL),例如:SELECT语句。(一般不会单独归于一类,因为只有一个语句)。
数据控制语言(DCL),例如:GRANT、REVOKE、DENY等语句。


9、设某二叉树有如下特点:每个结点要么是叶子结点,要么有2棵子树。假如一棵这样的二叉树中有m(m&gt;0)个叶子结点,那么该二叉树的结点总数为(2m-1

10、TCP/IP协议栈的网络层的主要功能是通过(IP协议)来完成的

11、一棵完全二叉树上由1001个结点,其中叶子结点的个数是(501

12、下面关于编译系统和解释系统的观点中,错误的是(A

A、解释程序不产生目标代码,它直接执行源程序或源程序的内部形式

B、使用编译系统时会区分编译阶段和运行阶段

C、一般来说,解释系统比编译系统复杂,但是可移植性好

D、一般来说,建立在编译基础上的系统在执行速度上要优于建立在解释执行基础上的系统

13、设j 和k都是int类型,则for循环语句

for(j=0,k=-1;k=1;j++,k++)

printf("****\n");

是无限循环

14、衡量查找算法效率的主要标准是(平均查找长度

评价一个算法的优劣主要就看两方面:算法的时间复杂度和算法的空间复杂度
1:算法的时间复杂度一般用于衡量一个算法的运行效率(平均查找长度)
2:算法的空间复杂度指的是算法运行过程中对资源的消耗情况

15、已知有向图G=(V,E):V={V1,V2,V3,V4,V5,V6,V7},E={(V1,V2),(V1,V3),(V1,V4),(V2,V5),(V3,V5),(V3,V6),(V4,V6),(V5,V7),(V6,V7)},G的拓扑序列是(A项 V 1 ,V 3 ,V 4 ,V 6 ,V 2 ,V 5 ,V 7 )

结合图进行拓扑排序,满足下面条件即可:
V1在V2,V3,V4前面
V2,V3均在V5前面
V3,V4均在V6前面

V5,V6均在V7前面

拓扑序列不是唯一的

16、类定义的外部,可以被访问的成员有(public的类成员

17、下列模版说明中,正确的有(A.template <typename T1, typename T2> C.template <class T1, class T2>

18、以30位基准,设一组初始记录关键字序列为{30,15,40,28,50,10,70},则 第一趟快速排序结果为(10,15,28,30,40,50,70)

快速排序:

19、(封装性,继承性,多态性)面向对象程序设计语言不同于其他语言的主要特点

20、TCP/IP模型的体系结构中,ICMP协议属于(网络层

二、简答题

1、已知某二叉树的后序遍历和中序遍历 ,构造该二叉树,并写出前序遍历的结果

有二叉树的前序和后序遍历结果能唯一确认一棵二叉树吗?为什么?

(1)给定:前序序列+中序序列——可以唯一确定该二叉树

(2)给定:先序序列+后序序列——不能唯一确定一棵二叉树。

                因无法确定左右子树两部分            

(3)给定:中序序列+后序序列——可以唯一确定一棵二叉树

2、简述你对人工智能在工业化制造中应用的看法

三、编程题

1、输出公元1500年至2500年所有闰年的年号

公历纪年法中,能被4整除的大多是闰年,但能被100整除而不能被400整除的年份不是闰年, 能被3200整除的也不是闰年,如1900年是平年,2000年是闰年,3200年不是闰年。 

判定条件:能被4整除但不能被100整除,或者能被400整除

package com.jhff.demo;
import java.util.*;

public class LeapYear {
    public static void main(String[] args){
        //int year = 2006;
        Scanner input = new Scanner(System.in);
        System.out.println("输入年份:");
        2000int year = input.nextInt();
        if((year%4==0&&year%100!=0)||year%400==0){
            System.out.println(year+"是闰年");
        }
        else
            System.out.println(year+"是平年");
    }
}

2、N个人参加比赛,进行排名,每个名次都可以并列,总共有多少种排列方法。例如:ABC三个人参加比赛,比赛名次可以如下:1)A第一名、B第二名、C第三名2)AB并列第一名,C第二名,等等。总共有13种排列方法。

输入,例如

2 //第一行为测试用例数目

1//参加的人数1

3//参加的人数3

输出(结果对10000取模)

1

13



四、算法题

“背包题目”的描述基本是:有一个背包,能盛放的物品总重量为S,设有N键物品,其重量分别为w1,w2,……,wn.从N键物品中选择若干物品,所选物品的重量之和恰能放进该背包,即所选物品的重量之和即是S。递归和非递归解法都能求得“背包题目”的一组解,试写出“背包题目”的非递归解法 。

背包问题九讲

动态规划

动态规划解决问题的基本步骤,根据算法导论(第三版):

1. 描述最优解的结构 
2. 递归定义最优解的值 
3. 按自底向上的方式计算最优解的值 
4. 由计算出的结果构造一个最优解
对于这四点,我是这么理解的:

1. “最优解的结构”我们可以理解为一个“状态函数”,每一个函数都有自己的自变量与变量,且这些变量都来自于问题本身。 
2. 寻找这些状态函数的递推关系,而且是由小问题退出大问题的递推关系,称之为“状态转移函数” 

3. 动态规划与分治法的一大区别就是对子问题的存储以及重复利用从而减少了计算量。所以利用状态转移函数,所有的状态的解存放在表里,自底向上地求出最终解。

dp[i][j]表示用i种物品,重量为j表示所取得的价值

dp[i][j]=Math.max(dp[i-1][j-weight]+value,dp[i-1][j])



  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值