[数据结构]-10广义表

本文介绍了广义表的基本概念,包括原子、子表、表头和表尾。广义表是由原子或子表组成的有序列表,长度和深度是其重要属性。通过举例说明了不同类型的广义表结构,帮助读者理解这一数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 什么是广义表?

n n n 个元素 a 0 , a 1 , a 2 , . . . a n − 1 ( n ≥ 0 ) a_0,a_1,a_2,...a_{n-1}(n\ge0) a0,a1,a2,...an1(n0) 组成的有序列表称为广义表

  • 什么是原子、子表?
    广义表中的元素类型可以不同,所以:
    • 若元素 a i a_i ai 为单个不可再分的元素,则称该元素为原子
    • 若元素 a i a_i ai 为广义表,则称该元素为子表

若用 L S = ( a 1 , a 2 , . . . a n ) ( n ≥ 0 ) LS=(a_1,a_2,...a_n)(n\ge 0) LS=(a1,a2,...an)(n0) 表示一个广义表,则:

  • L S LS LS 表示广义表的名称

  • n n n 表示广义表的长度

  • n = 0 n=0 n=0 时称为空表

  • 每个元素 a i a_i ai 可以为原子,也可以为一个广义表

  • 什么是表头、表尾?
    若广义表 L S = ( a 1 , a 2 , . . . a n ) ( n ≥ 0 ) LS=(a_1,a_2,...a_n)(n\ge 0) LS=(a1,a2,...an)(n0) 非空,则

    • 第一个元素 a 1 a_1 a1 称为表头。表头可以是原子也可以是子表;
    • 除表头外的其他元素组成的表称为表尾。即 t a i l ( L S ) = ( a 2 , . . . a n ) ( n ≥ 0 ) tail(LS)=(a_2,...a_n)(n\ge0) tail(LS)=(a2,...an)(n0) L S LS LS 的表尾。
  • 广义表示例
    若有 A , B , C , D , E A,B,C,D,E A,B,C,D,E 5 个广义表,其元素如下:
    A = ( ) B = ( e ) C = ( a , ( b , c , d ) ) D = ( A , B , C ) = ( ( ) , ( e ) , ( a , ( b , c , d ) ) ) E = ( ( a , ( a , b ) , ( ( a , b ) , c ) ) ) A=() \\ B=(e) \\ C=(a,(b,c,d)) \\ D=(A,B,C)=((),(e),(a,(b,c,d))) \\ E=((a,(a,b),((a,b),c))) A=()B=(e)C=(a,(b,c,d))D=(A,B,C)=((),(e),(a,(b,c,d)))E=((a,(a,b),((a,b),c)))
    则:

    • A A A 是一个空表,不含任何元素,其长度为 0。注意 A 1 = ( ) A_1 = () A1=() A 2 = ( ( ) ) A_2 = (()) A2=(()) 的不同:
      • A 1 = ( ) A_1 =() A1=() 是空表;
      • A 2 = ( ( ) ) A_2 = (()) A2=(()) 是长度为1的广义表,包含元素为一个空表的子表。
    • B B B 是一个只含有单元素 e e e 的表,其长度为 1;
    • C C C 中有两个元素,第 1 个元素是单元素 a a a,第 2 个元素是子表 ( a , b , c ) (a,b,c) (a,b,c) C C C 的长度为 2;
    • D D D 中有 3 个元素,其中每个元素又都是一个表, D D D 的长度为 3;
    • E E E 中只含有一个元素,该元素是一个表,该表中含 3 个元素,其中后两个元素又都是表。
  • 什么是广义表的长度和深度

    • 广义表最外层所包含的元素的个数称为广义表的长度
      • 如: C = ( a , ( b , c ) ) C=(a,(b,c)) C=(a,(b,c)) 的长度为 2。
    • 广义表展开后所含括号的重数称为广义表的深度
      • 如: C = ( f , ( ( b , c ) , d ) , h ) C=(f,((b,c),d),h) C=(f,((b,c),d),h) 的深度为 3。

参考资料:
[1] 《数据结构(C语言版)》 严魏敏、吴伟民著
[2] 《数据结构(第3版)》 刘大有等著

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值