前言Foreword
“数据结构”是计算机学科的核心课程,也是计算机专业一门重要的专业基础课。这门课程主要研究如何合理地组织数据;如何在计算机中有效地表示数据和处理数据。学习这门课程的教学要求是: 使学生学会分析、研究计算机加工的数据结构的特性,以便选择适当的逻辑结构、存储结构及相应的算法,并初步掌握算法的时间分析和空间分析技术。另外,学习本课程也是复杂程序设计的训练过程,可以帮助学生编写结构清楚、正确易读、符合软件工程的规范的程序,为后继课程的学习打下良好的基础。在人工智能时代,数据结构的知识在各种知识图谱、算法模型设计中的作用越来越突出。
全书共9章。第1章介绍数据结构和算法的基本概念和常用术语;第2~6章介绍基本的数据结构,分别讨论线性表,栈与队列,串、数组和广义表,树和图几种结构类型数据的逻辑结构和存储结构,以及相应的算法;第7章和第8章介绍几种常用的查找和排序方法;第9章是本书的特色,增加了项目设计指导的内容,使学生在学完基本知识的同时,能够综合利用所学知识完成一些实际课题的设计与制作。另外,为便于教学,第2~8章后面还配有习题和实训,并提供了实训练习题的相应参考答案。全书概念表述清楚、简洁,内容由浅入深,强调实践环节,有利于教学和自学。
全书采用C语言作为数据结构和算法的描述语言,之所以选择C语言作为全书的描述语言,是因为C语言对于底层逻辑的描述更清晰,C语言具有灵活的数据类型和丰富的运算符,能够支持各种复杂数据结构的实现。此外,C语言编写的程序通常具有较高的执行效率,因为C语言接近硬件,能够生成高效的机器码。这对于需要处理大量数据和复杂计算的数据结构应用来说非常重要。C语言中的结构体(struct)可以用来定义复杂的数据类型,这些数据类型可以表示数据结构中的结点和元素。指针(pointer)则用来实现数据元素之间的链接关系,构建出各种复杂的数据结构,如链表、树、图等。结构体和指针的结合使用使得C语言在实现数据结构时具有强大的表达能力。本书由乔国荣负责全书的编写,牟田宇负责实训、习题及答案编写,本书作者乔国荣讲授的“数据结构”课程在2009年获评辽宁省精品课。
在本书的编写过程中,编者得到了所在单位领导与同事的大力支持,在此一并表示衷心的感谢。
由于编者水平有限,书中难免有一些不足之处,恳请读者批评指正。
编者2025年4月