首页 > 试题广场 >

广义表运算式 Tail(((a,b),(c,d)))的操作结

[单选题]
广义表运算式 Tail(((a,b),(c,d)))的操作结果是(        )。
  • (c,d)
  • c,d
  • ((c,d))
  • d
发表于 2017-06-18 22:19:55 回复(2)
有问题吧,我怎么觉得应该是((a,b),(c,d))
发表于 2017-10-21 13:05:42 回复(5)
取表尾tail表头head操作:
深度为1 head((a,b,c,d))=a;
深度为1 tail((a,b,c,d))=(b,c,d);
深度为2 head(((a,b),(c,d)))=(a,b)
深度为2 tail(((a,b),(c,d)))=((c,d))
这里的深度有个小技巧:从最右边看半括号个数(注意最外一层是不算的,它是作为head或者tail运算时整体的一部分的)。
如果计算的是head操作,会发现计算结果的右半括号个数是深度–1;
如果计算的是tail操作,会发现计算结果的右半括号个数是=深度;

发表于 2019-06-08 20:23:18 回复(0)
表头是元素,表尾是广义表,所以 (c,d) 需要加层括号,变为 ((c,d))
发表于 2022-05-07 08:54:25 回复(0)
这道题没有问题吗?
表里应该只有一个元素((a,b),(c,d)),同时也是一个表。
Tail(((a,b),(c,d)))=();Head(((a,b),(c,d)))=((a,b),(c,d))。
我的理解对嘛?
发表于 2018-10-19 17:44:46 回复(6)
广义表运算式 Tail(((a,b),(c,d)))的操作结果是(        )。
这个题目有个小陷阱,那就是tail()是个函数,题目最外面的括号是tail本身的,原广义表是((a,b),(c,d)),答案就显然易见是(c,d)了。
编辑于 2022-05-05 21:55:04 回复(2)
head()为取头元素,仅一个元素,不加括号;tail()取除了头元素以外的所有元素,是个表。
发表于 2022-02-22 18:23:56 回复(0)
设原广义表为A=((a,b),(c,d));
tail(A)=((c,d));
发表于 2018-01-15 09:47:38 回复(0)
Tail函数自带一个括号,其实没问题
发表于 2018-10-04 13:08:09 回复(0)
Tail(((a,b),(c,d)))=((c,d))
tail 只能是广义表  head可以是元素 也可以是广义表。A答案 和C 要区分下!
发表于 2018-06-18 19:48:11 回复(0)
表尾是指除了表头以外所有原子和子表组成的新表。
原表:((a,b),(c,d))
表头:(a,b)
表尾:((c,d))    // 表尾是新表所以多一层括号
发表于 2020-11-23 10:36:26 回复(0)
广义表的定义:
第一个元素成为表头,其余元素组成的表称为表尾。
所以,表头可以是一个元素,也可以是子表。而表尾一定是子表。
如:
Ls=( a1,a2,…,ai,…,an)
若广义表Ls非空(n≥1),则al是Ls的表头,其余元素组成的表(a2,a3,…,an)称为Ls的表尾。

所以改题:
Tail(((a,b),(c,d)))中,Ls=((a,b),(c,d)),Head(Ls)=(a,b),而Tail(Ls) = ((c,d)) 。tail要在(c,d)的基础上再加一个括号的原因就是:表尾为(c,d)这个元素组成的子表。
发表于 2020-06-27 11:04:14 回复(2)
广义表利用Tail提取后也一定还是一个广义表
发表于 2023-11-21 17:57:12 回复(0)
gethead是取广义表的第一个元素,第一个元素可以是原子,也可以是子表。 这道题的广义表是((a,b),(c,d)),所以广义表的第一个元素要去掉最外一层括号是(a,b) gettail是广义表除了第一个元素后再组成的广义表,这道题除了第一个元素是(c,d),再组成广义表是((c,d))
发表于 2022-08-11 12:02:03 回复(0)
这里的tail首先是一个函数 既然是函数就要使用括号进行传值,因此最外层的括号不算,那只是一个函数的引用形式,除去最外层括号便是((a,b),(c,d)) 进行取表尾运算便是(对除去表头节点的其余所有的元素构成的广义表) 便是((c,d)) 因此选择c
发表于 2021-10-13 09:29:14 回复(0)
Tail(((a,b),(c,d)))
发表于 2020-10-23 17:30:57 回复(0)
取表尾tail表头head操作: 深度为1 head((a,b,c,d))=a; 深度为1 tail((a,b,c,d))=(b,c,d); 深度为2 head(((a,b),(c,d)))=(a,b) 深度为2 tail(((a,b),(c,d)))=((c,d)) 这里的深度有个小技巧:从最右边看半括号个数(注意最外一层是不算的,它是作为head或者tail运算时整体的一部分的)。 如果计算的是head操作,会发现计算结果的右半括号个数是深度–1; 如果计算的是tail操作,会发现计算结果的右半括号个数是=深度;
发表于 2020-09-29 20:31:33 回复(0)
太容易引起歧义了 tail自带一对括号
发表于 2020-05-09 01:12:40 回复(0)
没错,刚问老师了,给他画成树的结构就好了。
发表于 2019-12-02 17:34:00 回复(0)
 Tail(((a,b),(c,d)))  ====> 广义表为((a,b),(c,d))
发表于 2019-03-20 10:09:08 回复(0)