广义表

广义表

是一种扩展线性表,又称为列表(Lists),是n(n>=0)个元素的有限序列,其中每一个ai是一个原子或广义表


一般用大写字母表示广义表,小写字母表示原子
记为LS=(a1,a2,...,an);其中LS为表名,n为表长,ai为表的元素

广义表中的数据元素有相对次序,一个直接前驱和一个直接后继


  • 表头:若LS非空,则其第一个元素a1就是表头(表头可以是原子也可以是字表)

    记为:head(LS)=a1

  • 表尾:除表头之外的其他元素组成的表 (表尾是一个字表)

    记为:tail(LS)=(a2,...,an)


  • 广义表的长度:最外层所包含元素个数

  • 广义表的深度:广义表展开后所包含的括号重数

  • 广义表可以为其他广义表所共享,如广义表B共享广义表A:B=(A)通过名称引用

  • 递归表的长度有限,深度无穷

例:

  • A=() 空表,长度为0
  • B=(()) 长度为1,表头表尾都是空表()
  • C=((a,(b,c)) 长度为1,表头为a表尾为((b,c))
  • D=(x,y,z) 长度为3,表头为x表尾为(y,z)
  • E=((b,c)) 长度为1,表头为(b,c)表尾为()
  • F=(a) 长度为1,表头为a表尾为()
  • 共享广义表E=(C,D) 长度为2,表头为C表尾为(D)
  • 嵌套广义表F=(a,F)/F=(a,(a,(a,...))) 长度为2,表头为a表尾为(F)

广义表可用图形象表示:

image

posted @ 2023-02-03 20:48  原语  阅读(164)  评论(0编辑  收藏  举报