首页 > 试题广场 >

广义表K=(m,n,(p,(q,s)),(h,f)),则he

[单选题]
广义表K=(m,n,(p,(q,s)),(h,f)),则head[tail[head[tail[tail(K)]]]]的值为(      )
  • s
  • q
  • p
  • h

head() 返回列表的第一个元素;

tail() 返回列表的删去第一个元素之后的剩余列表;
K=(m,n,(p,(q,s)),(h,f)),
head[tail[head[tail[tail(K)]]]]
tail(K)-------(n,(p,(q,s)),(h,f))
tail[tail[K]]--------((p,(q,s)),(h,f))
head()-----((p,(q,s))
tail()-----(q,s)
head()-------q
发表于 2019-06-01 19:30:59 回复(10)
从最里层括号一直向外计算。
head(a,b):保留括号第一个元素a,去除其余
tail(a,b):去除第一个元素a,保留其余
发表于 2019-05-30 14:16:30 回复(0)
我为什么觉得是(p,s)啊,前面的tail也是按照这个思路来的。取到最后两个的时候是(p,(q,s))。 tail一次 不应该是((q,s))吗
发表于 2019-12-06 23:33:27 回复(2)
答案应该确实是错了;
  • K = (m,n,(p,(q,s)),(h,f))
  • tail(K) = (n,(p,(q,s)),(h,f))
  • tail[tail(K)] = ((p,(q,s)),(h,f))
  • head[tail[tail(K)]] = (p,(q,s))
  • tail[head[tail[tail(K)]]] = ((q,s))
  • head[tail[head[tail[tail(K)]]]] = (q,s)
大家产生异或的部分就在倒数第二步:tail((p,(q,s)))到底应该等啥;可以看严书中已经给出的栗子下图的红圈部分所以是会带有括号的;

发表于 2022-08-27 14:41:51 回复(1)
我们要先知道的定义是 
head是取第一个元素,tail是取除第一元素以外的所以元素
第一个tail(K)取得的是m以外的元素为 n, (p,(q,s)) ,(h,f)这三个元素 括号本体里面为一个元数素
第二个便是tail(tail(K))取的是n以外的元素为(p,(q,s)) ,(h,f)这两个元素,括号为一个整体
第三个是head(tail(tail(k)))取的是第一个元素,即为(p,(q,s)) 我们拆分开来看 也就是两个元素p和(q,s)
第四个为tail(head(tail(tail(k)))取的是p以外的元素,即为(q,s)
第五个head取得是第一个元素q
所以整体取出来,答案为q
发表于 2023-07-11 19:53:57 回复(0)
表头:非空广义表中的第一个元素称为表头,可以是一个原子,也可以是一个子表。
表尾:除表头元素之外,剩下的元素所构成的表称为表尾,即在所有元素最外层加一对括号。所以非空广义表的表尾一定是一个表。
  • K = (m,n,(p,(q,s)),(h,f))
  • tail(K) = (n,(p,(q,s)),(h,f))
  • tail[tail(K)] = ((p,(q,s)),(h,f))
  • head[tail[tail(K)]] = (p,(q,s))
  • tail[head[tail[tail(K)]]] = ((q,s))
  • head[tail[head[tail[tail(K)]]]] = (q,s)
发表于 2021-10-31 17:31:30 回复(0)
head()  返回列表的第一个元素;
tail() 返回列表的删去第一个元素之后的剩余列表
K=(m,n,(p,(q,s)),(h,f)),
head[tail[head[tail[tail[K]]]]]
tail[K]---(n,(p,(q,s)),(h,f))
tail[tail[K]]---((p,(q,s)),(h,f))
head()---((p,(q,s)))
tail()---(q,s)
head()---q
发表于 2021-03-19 19:42:46 回复(0)
看傻了

发表于 2023-04-29 21:12:06 回复(1)
我认为答案是(q,s)
发表于 2023-02-02 22:57:38 回复(1)
按照其他题目,head取头元素,tail为去掉头元素剩余元素组成的表 【大部分流程复习“冲上顶峰”同学的答案,就改了最后一点】 K=(m,n,(p,(q,s)),(h,f)), head[tail[head[tail[tail(K)]]]] tail(K)-------(n,(p,(q,s)),(h,f)) tail[tail[K]]--------((p,(q,s)),(h,f)) head()-----(p,(q,s))【这里头元素】 tail()-----((q,s))【题目的正确答案流程下,这里少了一对括号】 head()-------(q,s)【如果加上,就应该是(q,s)】
发表于 2022-06-18 21:28:00 回复(0)
K=(m,n,(p,(q,s)),(h,f))
   head[tail[head[tail[tail(K)]]]]
head[tail[head[tail(n,(p,(q,s)),(h,f))]]]
= head[tail[head((p,(q,s)),(h,f))]]
head[tail(p,(q,s))]
= head(q,s)
= q
发表于 2021-08-23 19:06:05 回复(0)
首先,广义表的表头是广义表的第一个元素,可以是一个特定的类型,也可以是一个广义表。另外, 广义表的表尾是广义表中将除了第一个元素之外的所有元素看做一个广义表
编辑于 2019-11-21 15:03:05 回复(0)