【数据结构】考点十五:广义表的表头和表尾

【考试临时抱佛脚】系列文章针对于<学习时间少>、<时间紧迫>、<想短时间提升成绩>的考生打造。无论你是<自考>、<专升本>还是<考研>这个专栏都适合你,Let’s go!

一、方法

解题步骤

第一个元素为【表头】(只剥开一层),去掉表头其余照写为【表尾】

二、考察形式1

1、问题

广义表( ((a,b), (c,d,e)), (f, g), h ) 的表头是 ()

2、解析&回答

解析: 剥开第一个括号后的第一组括号即表头。

答案: ((a,b), (c,d,e))

三、考察形式2

1、问题

广义表((a), (b,c), (d,e, (f, g, h) ) ) 的表尾是 ()

2、解析&回答

解析:

① 去掉一层括号,(a), (b,c), (d,e, (f, g, h) )

② 那么去掉表头(a),剩余的就是表尾:( (b,c), (d,e, ( f, g, h) ) )

③ 特别注意的是:表尾外层还有个括号

答案: ( (b,c), (d,e, (f, g, h) ) )

四、考察形式3

1、问题

广义表((a,b), (c,d), e ) 的表尾是 ()

2、解析&回答

解析:

。表尾则是剩下的部分,也就是 ((c,d), e)。

① 去掉一层括号,(a,b), (c,d), e

② 去掉表头第一个元素,即子表 (a,b),剩余的即表尾((c,d), e )

答案: ((c,d), e )

五、考察形式4

1、问题

广义表( (a,b), (c, d), ((e, f ), (g, h)) )的表尾 ()

2、解析&回答

解析:

① 就是去掉一层括号,然后去掉第一个元素即表头,剩余的就是表尾

② 注意:最后别忘记加最外层的括号

答案:(c, d), ((e, f ), (g, h))

六、考察形式5

1、问题

已知广义表L= ( ( ( l, i ), h), (x, i, a, o) ), 下列运算中,结果得到h的是 ( )

A. head( tail (L) )

B. head( tail ( head(L) ) )

C. head ( head( tail (L) ) )

D. head ( head( tail (tail (L) )) )

2、解析&回答

解析:

① 要想得到h那么肯定是先计算表头,那么只有B选项是计算表头:head(L)

② 计算步骤:

head( tail ( head(L) ) ) 是从内向外运算:

第一步:head(L) ==> 得到 ( ( l, i ), h)

第二步:tail ( head(L) ) ==> 得到 (h)

第三步:head( tail ( head(L) ) ) ===> 得到 h (只有h了所以取表头就是h)

答案: B

七、考察形式6

1、问题

已知广义表LS =(((c, (d)), (e,(f))), (g, h), ((m, n))), head(LS) 是 ( )

A. c

B. ( c )

C. (c, (d))

D. ((c, (d)), (e, (f) ))

2、解析&回答

解析:

① 先去掉一层括号:( (c, (d)), (e,(f))), (g, h), ((m, n)) 这时是分为3个部分

② 那么第一部分就是表头:( (c, (d)), (e,(f)))

③ 表尾:( (g, h), ((m, n)) )

答案: D