新書推薦:

《
夏日蝉鸣时
》
售價:HK$
76.8

《
门罗主义:美国全球地缘战略的源起
》
售價:HK$
74.8

《
刻意练习成为讲话高手
》
售價:HK$
38.5

《
民艺之美
》
售價:HK$
96.8

《
肘后备急方 中医书全本校注与研究古代急救方剂临床急救手册中医入门肘后背疾方白话文
》
售價:HK$
63.8

《
精神的发现:欧洲思想在希腊的兴起
》
售價:HK$
140.8

《
走向现代:西方艺术1789—1914
》
售價:HK$
503.8

《
私募股权基金:价值、挑战与职业发展
》
售價:HK$
75.9
|
編輯推薦: |
用Python实现,在军队级获奖项目中运用数据结构知识实现加密。
|
內容簡介: |
本书主要内容包括数据结构绪论,线性表,栈与队列,串、数组和广义表,树,图,查找,排序,以及课程设计指导。在每章开始给出了本章导读和教学目标,使学生在学习之前就能明白要重点掌握的内容;部分章后附有习题及实训,以便学生巩固所学知识。“课程设计指导”一章给出了几种设计题目及设计思路供学生选择,有助于教师指导学生完成小型项目的设计任务。
來源:香港大書城megBookStore,http://www.megbook.com.hk 全书采用C语言作为数据结构和算法的描述语言,C语言具有灵活的数据类型和丰富的运算符,能够支持各种复杂数据结构的实现。此外,C语言编写的程序通常具有较高的执行效率,因为C语言接近硬件,能够生成高效的机器码,这对于需要处理大量数据和复杂计算的数据结构应用来说非常重要。书中的全部程序学生上机就可以按照操作步骤运行,全代码实现是考虑到程序设计语言学习环节相对薄弱的同学也能学会数据结构,而不会为编写程序所难倒。
本书可作为高等院校计算机类专业或信息类相关专业的教材,也可作为非计算机专业学生的选修教材,还可作为计算机应用人员和工程技术人员的自学参考书。
|
目錄:
|
第1章绪论1
1.1数据结构的基本概念1
1.1.1数据结构的定义1
1.1.2数据的逻辑结构及存储结构2
1.1.3数据结构有关概念及术语4
1.2算法和算法描述4
1.2.1什么是算法4
1.2.2算法描述5
1.3算法分析6
1.3.1空间复杂度6
1.3.2时间复杂度6
小结7
习题17
第2章线性表10
2.1线性表的逻辑结构10
2.1.1线性表的定义10
2.1.2线性表的基本操作11
2.2线性表的顺序存储结构11
2.2.1线性表的顺序存储——顺序表11
2.2.2顺序表基本操作的实现12
2.2.3顺序表的应用举例15
2.3线性表的链式存储结构17
2.3.1线性表的链式存储——链表17
2.3.2单链表19
2.3.3循环链表26
2.3.4双向链表26
2.3.5单链表应用举例28小结31
习题232
实训135
第3章栈与队列37
3.1栈37
3.1.1栈的定义37
3.1.2栈的顺序存储及其基本操作的实现38
3.1.3栈的链式存储及其基本操作的实现42
3.1.4栈的应用举例45
3.2队列47
3.2.1队列的定义47
3.2.2队列的顺序存储及其基本操作的实现48
3.2.3队列的链式存储及其基本操作的实现52
3.2.4队列的应用举例54
小结55
习题355
实训258
第4章串、数组和广义表65
4.1串65
4.1.1串的定义和特性65
4.1.2串的顺序存储及其基本操作实现66
4.1.3串的链式存储及其基本操作实现73
4.1.4串的应用举例73
4.2数组74
4.2.1数组的定义和运算74
4.2.2数组的顺序存储结构74
4.2.3矩阵的压缩存储75
4.2.4稀疏矩阵76
4.3广义表81
4.3.1广义表的定义和特性81
4.3.2广义表的存储结构及其基本操作实现82
小结83
习题483
实训385
第5章树88
5.1树的定义与表示88
5.1.1树的定义及基本术语88
5.1.2树的表示89
5.2二叉树及其遍历89
5.2.1二叉树的定义89
5.2.2二叉树的重要性质90
5.2.3二叉树的存储结构91
5.2.4二叉树的遍历92
5.3线索二叉树98
5.3.1线索二叉树的定义98
5.3.2线索二叉树的基本操作100
5.4树和森林101
5.4.1树的存储结构101
5.4.2二叉树与树之间的转换102
5.4.3森林与二叉树的转换103
5.4.4树与森林的遍历103
5.5二叉树应用实例104
5.5.1二叉排序树104
5.5.2平衡二叉树110
5.5.3B树112
5.5.4哈夫曼树114
小结116
习题5117
实训4121
实训4.1二叉树的操作121
实训4.2树的应用121
第6章图126
6.1图的基本概念126
6.1.1图的定义126
6.1.2图的基本术语127
6.2图的存储结构129
6.2.1邻接矩阵129
6.2.2邻接表130
6.3图的遍历132
6.3.1深度优先搜索132
6.3.2广度优先搜索134
6.4最小生成树136
6.4.1普里姆算法137
6.4.2克鲁斯卡尔算法139
6.5最短路径142
6.5.1单源最短路径142
6.5.2每对顶点之间的最短路径146
6.6拓扑排序149
6.6.1AOV网149
6.6.2拓扑排序的实现150
小结152
习题6153
实训5155
第7章查找158
7.1查找的基本概念158
7.2顺序查找159
7.3二分查找160
7.4分块查找162
7.5哈希表查找165
7.5.1哈希表查找的基本概念165
7.5.2构造哈希函数的方法165
7.5.3哈希冲突的解决方法167
7.5.4哈希查找效率的分析171
小结172
习题7172
实训6175
第8章排序177
8.1排序的基本概念177
8.2插入排序178
8.2.1直接插入排序178
8.2.2二分法插入排序180
8.2.3希尔排序181
8.3选择排序182
8.3.1简单选择排序182
8.3.2堆排序183
8.4交换排序186
8.4.1冒泡排序186
8.4.2快速排序188
8.5归并排序190
8.6基数排序192
小结195
习题8195
实训7198
第9章课程设计指导202
9.1课程设计大纲202
9.2课程设计题目及设计要求202
9.3飞机售票系统实例205
小结210
|
內容試閱:
|
“数据结构”是计算机学科的核心课程,也是计算机专业一门重要的专业基础课。这门课程主要研究如何合理地组织数据;如何在计算机中有效地表示数据和处理数据。学习这门课程的教学要求是: 使学生学会分析、研究计算机加工的数据结构的特性,以便选择适当的逻辑结构、存储结构及相应的算法,并初步掌握算法的时间分析和空间分析技术。另外,学习本课程也是复杂程序设计的训练过程,可以帮助学生编写结构清楚、正确易读、符合软件工程的规范的程序,为后继课程的学习打下良好的基础。在人工智能时代,数据结构的知识在各种知识图谱、算法模型设计中的作用越来越突出。
全书共9章。第1章介绍数据结构和算法的基本概念和常用术语;第2~6章介绍基本的数据结构,分别讨论线性表,栈与队列,串、数组和广义表,树和图几种结构类型数据的逻辑结构和存储结构,以及相应的算法;第7章和第8章介绍几种常用的查找和排序方法;第9章是本书的特色,增加了项目设计指导的内容,使学生在学完基本知识的同时,能够综合利用所学知识完成一些实际课题的设计与制作。另外,为便于教学,第2~8章后面还配有习题和实训,并提供了实训练习题的相应参考答案。全书概念表述清楚、简洁,内容由浅入深,强调实践环节,有利于教学和自学。
全书采用C语言作为数据结构和算法的描述语言,之所以选择C语言作为全书的描述语言,是因为C语言对于底层逻辑的描述更清晰,C语言具有灵活的数据类型和丰富的运算符,能够支持各种复杂数据结构的实现。此外,C语言编写的程序通常具有较高的执行效率,因为C语言接近硬件,能够生成高效的机器码。这对于需要处理大量数据和复杂计算的数据结构应用来说非常重要。C语言中的结构体(struct)可以用来定义复杂的数据类型,这些数据类型可以表示数据结构中的结点和元素。指针(pointer)则用来实现数据元素之间的链接关系,构建出各种复杂的数据结构,如链表、树、图等。结构体和指针的结合使用使得C语言在实现数据结构时具有强大的表达能力。本书由乔国荣负责全书的编写,牟田宇负责实训、习题及答案编写,本书作者乔国荣讲授的“数据结构”课程在2009年获评辽宁省精品课。
在本书的编写过程中,编者得到了所在单位领导与同事的大力支持,在此一并表示衷心的感谢。
由于编者水平有限,书中难免有一些不足之处,恳请读者批评指正。
编者2025年4月
|
|