数据结构是计算机学科各专业的一门重要的专业基础课。本书系统地介绍了各种典型的数据结构,以及递归、查找和排序的方法。本书采用理论叙述简洁准确、实践应用举例丰富完整的方法编写,从而达到理论和实践密切结合的教学目的。本书采用C语言描述算法。
本书内容丰富,难度适中,文字简洁准确,图文并茂,应用实例多,教学参考资料丰富。
本书既可作为计算机本科、专科学生的教材,也可供从事计算机工程和应用工作的科技工作者参考。
《数据结构—使用C语言(第4版)》包含了2009年研究生入学统考大纲的全部内容。《数据结构—使用C语言(第4版)》讨论的典型数据结构问题。对于线性表、堆栈、队列、串、数组、广义表、树、二叉树和图等基本数据结构问题,都详细讨论了各自的逻辑结构、存储结构以及各种算法的设计方法。排序和查找是两个应用广泛的算法设计问题,《数据结构—使用C语言(第4版)》讨论了几种典型的排序算法,讨论了静态查找、动态查找和哈希查找的存储结构和查找方法。广义表、树、二又树和图这些非线性结构的算法经常要设计成递归算法,《数据结构—使用C语言(第4版)》专设一章讨论递归算法的设计方法等问题。
【问题分析】 迷宫问题中包括有很多路口,每个路口最多有三个搜索分支,把算法设计为如下的搜索过程:把整个搜索分解为向左、向前和向右三个方向上子问题的搜索。当搜索到某个路口(设该路口为c)、发现该路口没有可搜索方向时,就让搜索过程回溯退到该路口的前一路口(设该路口为B),然后搜索这个路口(即路口B)的其他尚未搜索过的搜索方向;如果发现这个路口(即路口B)也没有可搜索方向时,就让搜索过程继续回溯退到这个路口的前一路口(设该路口为A)继续这样的搜索过程。这样的搜索过程一直进行到找到出口或搜索完了全部可连通的路口的可能搜索方向没有找到出口为止。
【数据结构设计】 要用计算机模仿迷宫问题,首先要把迷宫问题数值化。把每个路口定义成一个包括lefc、forward和right三个域的结构体,分别表示向左、向前和向右的搜索方向。如果某个域的值x为非0,则表示该方向上可到路口x;如果某个域的值x为0,则表示该方向上是死路。
插图:
