05 数组和广义表.pptVIP

  • 1
  • 0
  • 约1.63万字
  • 约 95页
  • 2018-05-18 发布于四川
  • 举报
? 相关网站 LISP语言发明人--John McCarthy John McCarthy (1927.9.4-, USA) LISP, Time-sharing, AI, Algol, Nonmonotonic logic Turing Award(1971) LISP语言发明人--John McCarthy 除了获得计算机先驱奖外,还在1971年获得ACM图灵奖,1988年获得由日本INAMORI基金会所设立的KYOTO奖。1990年获得美国National Medal of Science。 1958年,与L. Minsky(1995年计算机先驱奖获得者)一起组建了世界上第一个人工智能实验室,并第一个提出了将计算机的批处理方式改造成为能同时允许多用户使用的分时方式(time-sharing)的建议,并推动MIT成立组织开展研究。其结果就是实现了世界上最早的分时系统——基于IBM 7094的CTSS和其后的MULTICS。 LISP语言发明人--John McCarthy 1959年,基于Alonzo Church的λ-演算和H.A. Simon 、A. Newell首创的“表结构”,开发了著名的LISP语言(List Processing Language),成为人工智能界第一个最广泛流行的语言。它和后来由英国伦敦大学的青年学生 R. Kowaliski提出、由法国马赛大学的A.Colmerauer所领导的研究小组于1973年首先实现的逻辑式语言PROLOG (Programming Logic)并称为人工智能的两大语言。 线性结构分类 1、广义表(Generalized lists)的概念 例如,中国举办的某体育项目国际邀请赛,参赛队清单可采用如下的表示形式: (俄罗斯,巴西,(国家,河北,四川),古巴,美国,(),日本) 在这个拓宽了的线性表中,韩国队应排在美国队的后面,但由于某种原因未参加,成为空表。国家队、河北队、四川队均作为东道主的参赛队参加,构成一个小的线性表,成为原线性表的一个数据项。这种拓宽了的线性表就是广义表。 广义表(Generalized lists) 广义表是n个数据元素(d1,d2,d3,…,dn)的有限序列,di既可以是单个元素,还可以是一个广义表,因此广义表的定义是递归定义的。通常记作: GL= (d1,d2,d3,…,dn) 。 GL是广义表的名字,通常广义表的名字用大写字母表示。 n是广义表的长度。 d1是广义表GL的表头,而广义表GL其余部分组成的表(d2,d3,…,dn)称为广义表的表尾。 若其中di是一个广义表,则称di是广义表GL的子表。 广义表(Generalized lists) D=()空表;其长度为零。 A=(a, (b, c))是表长度为2的广义表,其中第一个元素是单个数据a,第二个元素是一个子表(b, c)。 head(A)=a,表A的表头是a。 tail(A) = ((b, c)) ,表A的表尾是((b, c)) 。 B=(A, A, D)长度为3的广义表,其前两个元素为表A,第三个元素为空表D。 C=(a, C)长度为2递归定义的广义表,C相当于无穷表C=(a, (a, (a, (…))))。 广义表的深度 广义表也是一种多层次结构,广义表的深度定义为所含括号的重数。因此,对广义表而言,“空表”的深度为1,而“原子”的深度为“0”。 例如: C= (a, (b, c)) D =(A, B, C) =((), (d, e), (a, (b, c))) 则广义表C的深度为2,广义表D的深度都为3。 小 结 广义表的定义是递归定义的。 广义表的元素可以是子表,而子表还可以是子表……,由此可见,广义表是一个多层的结构。 广义表可以被其它广义表共享。  广义表具有递归性。 广义表的表尾一定是一个表。 ?2、广义表的存储结构 由于广义表GL= (d1, d2, d3, …, dn)中的数据元素既可以是单个元素,也可以是子表,因此广义表难以用顺序存储结构来表示它,通常用链式存储结构来表示。 (1)广义表的头尾链表存储结构 由于任何一个非空的广义表都可以将其分解成表头和表尾两部分,反之,一对确定的表头和表尾可以唯一地确定一个广义表。 广义表中有两类结点: 单个元素结点 子表结点 tag=0 atom tag=1 hp tp 表结点 原子结点 一个表结点可由三个域构成: 标志域 指向表头的指针域 指向表尾的指针域 一个元素结点(原子结点)可由两个域构成: 标志域 值域 广义表的头尾链表存储结构类型定义 /*ATOM=0, 表示原子; LIST=1, 表示子表*/ typedef enum{ATOM, LIST}ElemTag; typedef struct GL

文档评论(0)

1亿VIP精品文档

相关文档