数据结构28:广义表及M元多项式
广义表,又称为列表。记作: LS = (a 1 ,a 2 ,…,a n ) ;( LS 为广义表的名称, a n 表示广义表中的数据)。 广义表可以看作是线性表的推广。两者区别是:线性表中的数据元素只能表示单个数据元素;广义表中的单个数据元素 a i ,既可以是单个元素,也可以是广义表。 原子和子表 在广义表中,单个元素被称为 “原子”;包含的广义表被称为 “子表”。 例如: A = () :A 表示一个广义表,只不过表是空的,广义表 A 的长度为 0。 B = (e) :广义表 B 中只有一个原子 e ,长度为 1。 C = (a,(b,c,d)) :广义表 C 中有两个元素,原子 a 和子表 (b,c,d) ,广义表C的长度为 2。 D = (A,B,C) :广义表 D 中有三个元素:子表 A、B、C,长度为 3 ,这种表示方式等同于: D = ((),(e),(b,c,d)) 。 E = (a,E) :广义表 E 中有两个元素,原子 a 和它本身,长度为 2 。这是一个递归的表,等同于:E = (a,(a,(a,…)))。 A = () 和 A = (()) 是不一样的:前者是空表,长度为 0 ;后者表的长度为 1 ,包含的元素是一个子表,只不过这个子表是空表。 表头和表尾 当广义表不为空时,称表中的第一个元素为表的 “表头” ;剩余所有元素组成的表为 “表尾” 。