• 串和广义表


    串(字符串string):

      串中字符的数目n称为串的长度。0个字符的串称为空串,长度为0.   包含串中任意个连续字符的串称为子串,包含子串的串称为主串。

      如a="IBM",c="BM" 则a的长度为3,且c为a的子串    b="", 则b的长度为0

      在串的基本操作时候,通常是以“串的整体”作为操作对象。

    广义表:

      也成为列表,是线性表的一种扩展,也是数据元素的有限序列。

      记为:LS = (d0,d1,d2,d3……dn-1),其中di既可以是单个元素也可以是广义表。n 为表长。

    说明:

      广义表的定义为递归定义,在描述广义表时又出现广义表;

      广义表的数据元素成为原子(单个元素)或子表(广义表)

    举例:

    A=() 空表,表长为0
    B=(a,(b,c,d)) 表长为2,即a和子表(b,c,d)
    C=(e) 表长1
    D=(A,B,C,f) 表长为4,前三个元素A,B,C为广义表,第四个元素为单元素
    E=(a,E) 递归表,长度为2.E相当于一个无限的广义表,E=(a,(a,(a,……)))

    若广义表不空,则可分为表头和表尾,反之,一对表头和表尾可唯一确定广义表。

    对非空广义表:称第一个元素为表头,剩下的为表尾。

    如:

    B=(a,(b,c,d))

    表头为a,表尾为((b,c,d));

    (PS:表尾为拿掉表头和逗号后剩下的原封不动的写下来,所以有两个括号

    即Head(B)=a; Tail(B)=((b,c,d))

    C=(e) Head(C)=e; Tail(C)=()
    D=(A,B,C,f) Head(D)=A; Tail(D)=(B,C,f)

    此外,运算还可以嵌套:Head(Tail(B))=b;   Tail(Tail(B))=(c,d)

  • 相关阅读:
    dada的GCD
    涛神的城堡
    手机信号
    涛涛的Party
    壮壮的数组
    不安全字符串
    gdb core 调试多线程
    makefile $@, $^, $<, $? 表示的意义
    KMP算法的next[]数组通俗解释
    【原创】支持同时生成多个main函数 makefile 模板
  • 原文地址:https://www.cnblogs.com/DSYR/p/9134675.html
Copyright © 2020-2023  润新知