莱昂哈德·欧拉(Leonhard Euler)在1736年发表的《关于哥尼斯堡七桥的解法》论文中,首次系统地研究了如何在图中访问所有顶点的问题。当时的哥尼斯堡(今日俄罗斯加里宁格勒)是普鲁士王国的一座城市,普雷格尔河将城市分成四个区域,这些区域之间由七座桥连接。城市居民经常讨论一个有趣的问题:能否从某个地方出发,恰好走过每座桥一次,最后回到出发点?欧拉通过将陆地抽象为点,桥梁抽象为线,首次将这个实际问题转化为数学问题。他发现,要解决这个问题,关键在于系统地考察每个陆地(顶点)相连的桥梁(边)数量。欧拉证明,如果要完成这样的行走,每个陆地相连的桥梁数量必须是偶数,因为每次进入一个陆地区域都需要一座桥,离开时还需要另一座桥。
欧拉的分析方法开创性地引入了一种系统访问图中顶点的思路。他首先将问题简化,把复杂的地理环境转化为简单的点和线关系。在这个过程中,欧拉特别注意到了顶点的"度"这个概念,即与每个顶点相连的边的数量。他通过详细的数学推导证明,在哥尼斯堡的实际情况下,由于四个区域相连的桥梁数量分别为5、3、3、3,都是奇数,所以不可能完成这样的行走。这种将具体问题抽象化,然后通过分析图中顶点性质来解决问题的方法,为后来的图论研究提供了重要的思路。欧拉还特别指出,如果要使这样的行走成为可能,图中至多只能有两个奇度顶点(与奇数条边相连的顶点)。这些顶点必须是行走的起点或终点,因为只有这样才能保证进出次数的平衡。
在这项研究中,欧拉实际上隐含地提出了一种遍历图的方法。他考虑了如何系统地访问图中的每条边,这种思路后来发展成为了欧拉通路和欧拉回路的概念。欧拉通路是指在图中恰好经过每条边一次的路径,如果这条路径的起点和终点相同,则称为欧拉回路。为了判断图中是否存在欧拉通路或回路,欧拉提出了一个简单而有效的判断方法:对于无向图,存在欧拉回路的充要条件是图是连通的且所有顶点度数为偶数;存在欧拉通路的充要条件是图是连通的且恰好有两个奇度顶点。这个判断方法不仅解决了哥尼斯堡七桥问题,也为后来的图遍历研究奠定了基础。
而真正系统化的遍历研究开始于德国数学家卡尔·希尔伯特(Carl Hilbert)和汉斯·冯·科霍(Hans von Koch)在1890年代对树形结构的研究。他们发现,要系统地访问树中的每个节点,需要建立严格的访问规则。这些规则包括从根节点开始,按照固定的模式移动到每个子节点,确保不重不漏地覆盖所有节点。这种思想后来被概括为"树的遍历",成为了现代遍历理论的基石。在树的遍历中,他们定义了三种基本方式:前序遍历(先访问根节点,然后遍历左子树,最后遍历右子树)、中序遍历(先遍历左子树,然后访问根节点,最后遍历右子树)和后序遍历(先遍历左子树,然后遍历右子树,最后访问根节点)。
第一个关键时期是1968-1972年。这一时期的标志性事件是唐纳德·克努特(Donald Knuth)的《计算机程序设计艺术》(The Art of Computer Programming)第一卷的出版。克努特在这部开创性著作中,专门用一章的篇幅讨论了树的遍历算法。他系统地介绍了前序、中序和后序三种遍历方式,并给出了详细的递归实现方法。这本书很快成为计算机科学的经典教材,在斯坦福大学等多所大学被采用。同期,纽约大学的杰弗里·乌尔曼(Jeffrey D. Ullman)编写的《形式语言与自动机理论》教材中,也开始使用遍历概念来解释语法分析树的处理过程。
1973-1976年是第二个重要时期。这一时期的特征是遍历概念从理论研究转向实践教学。尼古拉斯·维尔特(Niklaus Wirth)1973年在苏黎世联邦理工学院开设的"算法与数据结构"课程,首次将遍历算法作为独立的教学单元。他于1976年出版的教材《算法+数据结构=程序》,不仅详细讲解了树的遍历,还将遍历的概念扩展到了其他数据结构。这本教材采用Pascal语言作为示例,很快在欧洲各大学推广开来。同时期,麻省理工学院的约翰·麦卡锡(John McCarthy)在LISP语言教学中,也开始强调遍历在列表处理中的重要性。
1977-1980年是第三个关键时期。这一时期的主要特点是遍历概念在数据库教学中的普及。IBM公司的埃德加·科德(Edgar F. Codd)在开发关系数据库理论时,将遍历作为数据库操作的基础概念之一。加州大学伯克利分校的迈克尔·斯通布雷克(Michael Stonebraker)编写的数据库教材,专门增加了一章来讨论数据库的遍历算法。这一时期,遍历不再局限于内存数据结构,而是扩展到了外部存储设备的访问方式。
1981-1985年是第四个重要时期。这一时期的显著特征是遍历概念在算法分析课程中的规范化。罗伯特·塞奇威克(Robert Sedgewick)1983年出版的《算法》教材,首次系统地分析了各种遍历算法的时间复杂度和空间复杂度。这本书在普林斯顿大学使用后,很快被其他高校采用。同时,阿尔弗雷德·阿霍(Alfred V. Aho)等人编写的《数据结构与算法分析》,将遍历算法的讨论扩展到了图结构,并详细分析了深度优先搜索和广度优先搜索的实现细节。
1986-1990年是最后一个关键时期,这一时期遍历概念在计算机教材中得到全面普及。统计显示,到1990年,美国计算机科学专业使用的数据结构教材中,超过95%都将遍历作为必讲内容。这个时期的特点是教材开始采用标准化的遍历算法描述方式。托马斯·科尔曼(Thomas H. Cormen)等人1990年出版的《算法导论》,确立了遍历算法的标准表述形式,这种表述方式一直沿用至今。该书将遍历算法分为递归实现和迭代实现两种方式,并详细讨论了它们的优缺点,这种讲解方式被后来的教材广泛借鉴。
阿尔萨斯(Espen Aarseth)在1997年出版的《赛博文本:关于人机交互文学的视角》(Cybertext: Perspectives on Ergodic Literature)一书中,首次将"遍历"(ergodic)这一概念引入文学研究领域。阿尔萨斯巧妙地将这一概念迁移到文本研究中,用来描述一种需要读者付出"非琐碎努力"(non-trivial effort)才能穿行通过的文本类型。在他的理论框架中,"非琐碎努力"指的是超越简单的眼球移动和翻页行为的主动参与。这种参与可能包括做出选择、执行特定操作、解决谜题,或者按照特定规则重组文本等。阿尔萨斯特别强调,遍历文学并非一个全新的现象,而是贯穿人类文明史的一种持续存在的文本类型,只是在数字时代获得了新的表现形式和更广泛的应用。
在详细阐述遍历文本的具体特征时,阿尔萨斯提供了大量历史案例来支撑其理论。他追溯到古代美索不达米亚的泥板占卜文本,这些文本要求使用者通过特定仪式和操作来获取信息。中国《周易》的使用方式也是一个典型案例:占卜者需要通过投掷铜钱或使用蓍草获得卦象,然后根据特定规则查找和解读相应的文本内容。这个过程体现了典型的遍历特征:读者无法直接获取文本的全部内容,而必须通过一系列操作来确定实际要读取的部分。中世纪的转盘诗(Rota Poems)是另一个有趣的例子,这种诗歌被写在可旋转的同心圆盘上,读者通过旋转不同的圆盘层可以产生不同的诗句组合。阿尔萨斯认为,这些早期的遍历文本实践,展示了人类对非线性阅读和互动性文本的持久探索。
阿尔萨斯在书中提出了"文本机器"(textual machine)的重要概念,用以分析遍历文本的运作机制。这个概念包含三个核心要素:符号系统(sign system)、物质媒介(material medium)和操作者(operator)。符号系统指文本使用的各种符号和规则,不仅包括语言文字,还包括视觉符号、声音信号等;物质媒介是承载这些符号的具体载体,可以是纸张、数字设备,或其他物理形式;操作者则是参与文本实现过程的人,包括读者、玩家或使用者。以一个现代文字冒险游戏为例,符号系统包括游戏中的文本描述、命令语法和游戏规则,物质媒介是运行游戏的计算机系统,而操作者则是通过输入命令来探索游戏世界的玩家。这三个要素不是孤立的,而是通过复杂的反馈机制相互作用:操作者的行为会通过物质媒介改变符号系统的状态,这种改变又会影响操作者的后续选择。
在探讨遍历文本的多样性时,阿尔萨斯建立了一个详细的分类系统。他首先区分了显性遍历和隐性遍历两种基本类型。显性遍历要求读者进行物理层面的明确操作,如古老的占卜书要求使用者投掷骰子或铜钱,互动小说要求读者在分支点做出选择,电子游戏要求玩家输入指令或操作控制器。隐性遍历则体现在那些需要读者进行特殊解码或重组的文本中,例如法国文学实验组"潜在文学工场"(OULIPO)成员们创作的作品。其中最著名的是雷蒙·格诺(Raymond Queneau)的《十万亿首诗》,这部作品将十首十四行诗的每一行印刷在独立的纸条上,读者可以通过翻动这些纸条来组合出不同的诗歌。虽然读者在物理上只是进行简单的翻页动作,但要理解和欣赏这些组合产生的诗意,需要投入大量的认知努力。
阿尔萨斯还特别关注了遍历文本中的时间维度。他指出,传统的线性文本通常具有固定的时序结构,而遍历文本则常常打破这种时序,创造出多重的时间线或循环的时间结构。例如,他分析了绪尔热·布托(Michel Butor)的小说《变化》(Modification),这部作品使用第二人称叙述,要求读者在不同的时间维度之间跳转,重构故事的时间序列。在电子文学作品中,这种时间的多重性表现得更为明显。如美国作家迈克尔·乔伊斯(Michael Joyce)的超文本小说《午后,一个故事》允许读者通过不同的链接路径来探索故事,每条路径都可能揭示不同的时间片段,读者需要通过多次阅读才能拼凑出完整的故事时间线。
在分析遍历文本的空间结构时,阿尔萨斯提出了三种基本的迷宫模型。第一种是单一路径型(unicursal),如古典迷宫,虽然路径曲折,但只有一条通向目标的道路,读者的选择仅在于是否继续前进;第二种是多路径型(multicursal),包含多个分叉点和可能的路径,读者需要在每个分叉点做出选择;第三种是网络型(network),没有固定的中心和边界,各个节点之间可以自由连接。他用这个分类来分析不同类型的遍历文本:例如,传统的"选择你自己的冒险"系列书籍属于多路径型,它们在特定点提供明确的选项;而现代超文本作品更接近网络型,允许读者在文本片段之间自由跳转。阿尔萨斯强调,这些空间结构不仅影响读者的阅读路径,也塑造了文本的意义生成方式。
阿尔萨斯还详细讨论了遍历文本中的视觉元素和界面设计。他认为,在遍历文本中,视觉设计不仅具有装饰功能,更是信息传递和互动实现的重要载体。例如,他分析了威廉·吉布森(William Gibson)的诗集《农神》(Agrippa),这是一个只能阅读一次的电子文本,当读者翻到下一页时,前面的内容就会永久消失。这种特殊的界面设计创造了独特的阅读体验,使文本本身成为一次性的表演。在分析早期超文本作品时,他特别关注了"链接"这一视觉元素的作用,认为可见的链接不仅提供了导航功能,也暗示了潜在的叙事路径,影响读者的期待和选择。
最后,阿尔萨斯探讨了遍历文本中的用户角色。他指出,与传统文本相比,遍历文本中的读者具有更复杂的身份:他们既是文本的接收者,也是文本实现过程的参与者,有时甚至成为文本的共同创作者。例如,在一些多人在线角色扮演游戏中,玩家不仅需要解读和理解游戏文本,还需要通过对话和行动参与故事的创作。