广义表最基本的操作:取表头head(LS)与取表尾tail(LS)

牛客网考题:

已知广义表: A=(a,b), B=(A,A), C=(a,(b,A),B), 求下列运算的结果:

tail(head(tail(C))) =(  )

 

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

tail() 返回列表的删去第一个元素之后的剩余列表;

所以,

tail(C)=((b,A),B);

head(tail(C))=head(   ((b,A),B)   )=(b,A)

tail(head(tail(C)))=tail((b,A))=(A)

注意,head返回的是元素(去掉最外层括号),tail返回的是集合(保留括号)。

 

例:LS=(a,(b,c,d))
head(LS)=a
tail(LS)=((b,c,d))
head(tail(LS))=(b,c,d)
tail(tail(LS))=()
head(head(tail(LS)))=b
tail(head(tail(LS)))=(c,d)
head(tail(head(tail(LS))))=c
tail(tail(head(tail(LS))))=(d)
head(tail(tail(head(tail(LS)))))=d
tail(tail(tail(head(tail(LS)))))=()

转载地址:http://blog.sina.com.cn/s/blog_4d6e44860100c1fb.html

你可能感兴趣的:(广义表最基本的操作:取表头head(LS)与取表尾tail(LS))