文先界定数据结构为数据逻辑与存储组织方式,以表、树、图实例说明其应用;梳理计算机发展催生数据结构学科的历程,阐明数据结构与算法相互依存;介绍算法定义,通过顺序、二分查找对比引入时间复杂度,讲解大 O 标记的评估方法与常见复杂度量级。
线性表是一种最常用且最简单的数据结构,它是由零个或多个数据元素构成的有限序列。线性表中所存储元素的具体含义,在不同的情况下可以不同,它可以是一个数,也可以是字符串,甚至是更复杂的信息。
图书馆的书目信息表就是一个线性表,表中的元素就是一条记录。记录由索引号、图书名称、作者、出版社等数据项构成。本文讨论了C语言和Pyhton语言如何定义一个顺序表,并实现了顺序表的插入、访问和删除运算。
本文以图书馆的书目信息表为例,讲解链表在C语言的实现。
栈结构是一种特殊的线性表,限定仅在表的一端进行元素的插入和删除。本文使用C语言利用栈结构实现表达式解析并求值功能。
在现实生活中,当人们去银行、行政大厅等企业和办事机构办理业务时,都需要从排队机领取排队号码,等待叫号。类似排队机这样的程序,其内部数据结构一般都会用到队列结构。
树结构是一种非常重要的数据结构,在计算机科学中广泛应用,它是一种一对多的非线性结构。
本文主要介绍了图的存储结构,包括邻接矩阵、邻接表、十字链表等存储结构。
本书应用与现实世界相关的问题场景案例,让学生从感性的角度来理解数据结构以及与其对应的算法,并使用C和Python两种编程语言来定义问题的数据结构和实现算法,使用C和Python两种编程语言,主要是考虑到一些C基础差的学生很难用C语言来实现算法,Python语言相对简单易掌握,这些学生可以使用Python语言来学习数据结构与算法。