关于编译原理,以下文法中,是自顶向下分析的文法是哪几个?()
LR(0) SLR(1) LALR(1) LR(1) LL(1)
答案: LL(1)
网络协议的分类
数据链路层协议:PPP ARP MAC IEEE802.3
网络层协议:IP BGMP
传输层协议:TCP UDP
应用层协议:HTTP HTTPS FTP Telnet SMTP
进程间通信的方式——信号、管道、消息队列、共享内存
设哈希表长m=14,哈希函数H(key)=key%11。表中已有4个结点:addr(15)=4,addr(38)=5,addr(61)=6,addr(84)=7,其余地址为空。如果用二次探测再散列处理冲突,关键字为49的结点的地址是
参考答案 9
解析
插入前15,38,61,84的H(key)分别为:4,5,6,7 存放地址为4,5,6,7 49的H(key)为5,发生冲突. 进行二次探测,二次探测探测的是散列表,而不是在Hash值,也就是addr(n)=hash(n)+i^2 (i从0开始取),好像也有addr(n)=hash(n)±i^2
addr(46) = 46%11+1= 6 冲突
addr(46) = 46%11+2^2= 9 不冲突 所以是9
X=+0111001,Y=+1001101,求[X-Y]补=
11101100
这题涉及一个补码 。 介绍一下原码,反码,补码
首先要知道机器数和真值的概念 ,
机器数都是二进制的,有正负 ,由二进制的最高位表示,正为0,负为1
例如 +3 的机器数 00000011 -3的机器数 10000011
因为第一位是符号位,所以机器数的形式值就不等于真正的数值,
例如 0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –000 0001 = –1
原码
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值
[+1]原 = 0000 0001 [-1]原 = 1000 0001
反码
反码的表示方法是:正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
补码
补码的表示方法是:正数的补码就是其本身,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
以数据集{1,6,8,2,9,4}为权值构造一棵赫夫曼树,其带权路径长度为___?
一颗完全二叉树的节点数量为666,那么这棵树上的叶子节点数为___?
一般设度为零的节点为n0、度为1的节点为n1、度为2的节点为n2,那么有
n0+n1+n2 = 666
n0 = n2+1
n1 + 2*n2 = 665
因为完全二叉树度为1的节点数只能为0或1,所以n1=1
所以n0=333