duckflew
duckflew
Published on 2020-12-29 / 215 Visits
0
0

广义表

广义表的两个操作容易弄错 在这里记录一下

首先明确定义 广义表分两种 一种是普通表 一种是原子表

  • 普通表结构为 一个表头 一个表尾
    • 表尾一定指向另一张表 这张表包含一个元素 这个元素可以是原子 也可以是表 这就是为什么tail操作要加括号的原因 总之取到的一定是一张表
    • 而表头 就是直接取对应的元素 这个元素同样可以是表也可以是原子 不需要加括号
  • 原子表没有表尾 就只包含一个单独的原子元素

例题

A=(a,b,(c,d),(e,(f,g)))

head(tail(head(tail(tail(A)))))=d

过程如下 从里到外 tail A 就是取A的表尾 所以取到的是包含b的一张表 (a是A表头 为原子表) 所以取到的是(b)又取表尾 所以取到的是 ((c,d)) 然后head 取到的是表头元素 就是(c,d) 又tail 取到的是 包含d的表 因为此时c在表头上

所以是(d) 然后再head 去括号 所以是 d


Comment