基本概念:
广义表是一种非连续性的数据结构,又称列表。是线性表的推广。
广义表中既可以存储不可再分的数据(原子),也可以存储广义表(子表)。
除非广义表为空表,否则广义表一定有表头和表尾。
广义表表头和表尾:
如果广义表LS=(a1,a2...an)非空,则 a1是LS的表头,其余元素组成的表(a2,a3,..an)是称为LS的表尾。
即非空广义表的表头是一个元素,它可以是原子也可以是一个子表,而表尾则必定是表。例如:①LS=(a,b),表头为原子a,表尾是子表(b)而不是原子b.②LS=(a)的表头为a,表尾为空表().③LS=((a),b),表头是子表(a),表尾是子表(b)。④LS =(a, (b))。表头是原子a,表尾是子表((b)),不是子表(b)哦。
广义表的表头用head取,表尾用tail取。注意哦,表头是原子,表尾是子表。
head表示取表的第一个元素的值,
tail表示把表中除第一个元素外的所有元素组成一个新表。
例如:LS = (a,(b,c)),则head(LS) = a, tail(LS) = ((b, c))。
而LS = ((a,b),c)。则head(LS) = (a, b), tail(LS) = (c)。
广义表的深度和长度
深度:广义表中括号嵌套的最大层数(即嵌套的括号数)。如LS = (a,b,(c,(d)))深度为3(d在三层括号中)。
长度:广义表中所包含的元素(包括原子和子表)的个数。如LS = (a,(b,c))长度为2。