C/C++及其相关
-
C++数值算法(美国)普雷斯等著、胡健伟等译;胡健伟译本书由美国洛斯阿拉莫斯国家实验室(LosAlamosNationalLaboratory)主任WilliamH.Press和其他三位从事科学计算的学者合著。本书及其姊妹篇(C版、FORTRAN版以及Pascal版)已被美国哈佛大学、美国康奈尔大学、英国剑桥大学等国际著名大学选为本科生和研究生数值计算课程的教材。本书主要特点:·选材内容丰富。包含了当代科学计算过程中涉及的大量内容:求特殊函数值、随机数、排序、最优化、快速傅里叶变换、谱分析、小波变换、统计描述和数据建模、偏微分方程数值解、若干编码算法和任意精度计算等。·科学性和实用性统一。不仅对每种算法进行了数学分析和比较,而且根据作者经验对算法给出了评论和建议,并在此基础上提供了用C++语言编写的实用程序。本书选材内容丰富,除了通常数值方法课程的内容外,还包含当代科学计算大量用到的专题,如求特殊函数值、随机数、排序、最优化、快速傅里叶变换、谱分析、小波变换、统计描述和数据建模、常微分方程和偏微分方程数值解、若干编码算法和任意精度的计算等。本书科学性和实用性统一。每个专题中,不仅对每种算法给出了数学分析和比较,而且根据作者的经验对算法做出了评论和建议,并在此基础上给出了用C++语言编写的实用程序。读者可以很方便地直接套用这些程序,还可以结合特定的需要进行修改。本书中包含的345个程序构成了C++语言的数值计算程序库。本书可以作为大学本科生和研究生的教材或参考书,也可以作为从事科学计算的科技工作者的工具书、计算机软件开发者的参考书。 -
C语言与数据结构实习指导与模拟试题边奠英编本书是天津市高等教育自学考试委员会组编的《C语言程序设计》和《数据结构导论》的配套教材。依据《C语言和数据结构自学考试大纲》的要求,参考实际考试的范围和题型,系统介绍了这两门课程的主要知识点、重点和难点,精心安排了上机实习及必要的指导,提供了大量的笔试和上机考试模拟试题,读者可将本书作为上机实习指导书和考前复习的主要参考书。 -
程序设计基础教程许秀林、董杨琴《高等学校精品教材建设工程:程序设计基础教程(C语言与数据结构)》是一本C语言程序设计和数据结构相结合的计算机专业基础课程。《高等学校精品教材建设工程:程序设计基础教程(C语言与数据结构)》分为C语言程序设计基础篇、数据结构基础篇和数据结构提高篇等3个部分。分别讲解了C语言的主要语法及编程的基本知识、数据的逻辑结构及相关算法等。本书将两门课程中的内容进行了有机整合,着重于C语言的编程知识和编程规范及利用数据结构知识实现任务的编程,以达到培养读者基础编程能力的效果。本书重点突出,结构严谨,语言通俗易懂,讲解详细,特别适合高职高专计算机及相关专业的学生使用。 -
数据结构与程序设计(美)克鲁斯等编本书以C++为描述语言,系统介绍数据结构的有关内容及程序设计方法。每章都是先引入实例,然后结合实例讲解知识点,每章后都附有指针和陷阱的内容,还配有复习思考题,以检验读者的学习效果和培养读者的程序设计能力。此外,每章后还有深入学习本章知识点的阅读参考资料,有利于读者加深对本章知识点的理解。书后附录包括算法分析中的数学结论、随机数、程序包和实用函数,以及零散分布在书中的所有程序规则、指针和陷阱等。全书既注重原理又重视实践,内容叙述详细,并配有大量的实例和习题。书中所有算法均在计算机上运行通过,且程序中做了较详细的注解,有利于读者理解算法的实质和编程思想。本书既可作为高等学校计算机及相关专业学生的教材,亦可供从事计算机应用的工程技术人员参考,尤其适合那些使用C++语言编程的科技人员。内容:1.程序设计原理2.栈的介绍3.队列4.链式栈和队列5.递归6.表和串7.查找8.排序9.数据表和信息检索10.二叉树11.多叉树12.图13.案例学习——波兰表示法 -
常用算法程序集徐士良编本书针对工程中常用的行之有效的算法而编写,其主要内容包括多项式的计算、复数运算、随机数的产生、矩阵运算、矩阵特征值与特征向量的计算、线性代数方程组的求解、非线性方程与方程组的求解、插值与逼近、数值积分、常微分方程组的求解、数据处理、极值问题的求解、数学变换与滤波、特殊函数的计算、排序和查找。书中所有算法均用C语言描述,并存放在一张光盘上。本书可供广大科研人员、工程技术人员以及管理工作者阅读使用,也可作为高等院校师生的参考书。 -
算法Ⅰ-Ⅳ/国外优秀信息科学与技术系列教学用(美国)塞奇威克著本书通过C++实现方案以简洁、直接的方式对书中的算法和数据结构进行表述,并向学生提供在实际应用中验证这种方法的手段。本书广泛地论述了与排序、搜索及相关应用有关的基本数据结构和算法。覆盖了数组、链表、串、树和其他基本数据结构,更多地强调抽象数据类型(ADT)、模块化程序设计、面向对象程序设计和C++类。本书包括排序、选择、优先队列ADT实现和符号表ADT(搜索)实现,配有帮助学生学习计算机算法特性的1000多种新练习、100多个图表以及大量的程序例子。RobertSedgewick完全重定了他的著作,对它进行了充分的扩展和更新,涵盖了目前重要的算法和数据结构。ChristopherVanWyk和Sedgewick开发的新实现采用的是C++语言,这种实现不仅能简洁直接地表达算法,而且给编程者提供了实践的方法,以便在真正的应用中测试这些算法。新的版本提供了很多新算法,而且对每个算法的解释也比以前的版本详细得多。新的版面设计以及详细、富有创意并且具有注释的插图,使本书的表达能力大大地提高了。第三版保留了将理论和实践成功混合在一起的特点,正是这一点,使Sedgewick的著作成为25万多名程序员无价的参考资源。本书是全卷的前半部分,涵盖了基本的数据结构、排序算法、搜索算法以及它们的相关应用。虽然本书实质上可以用于各种语言的程序设计,ChristopherVanWyk和Sedgewick的实现都采用了C++类和ADT实现的自然对应。本书的精彩内容包括:·扩展了对数组、链表、字符串树及其他基本数据结构的介绍。·比以前的版本更中着重于抽象数据类型(ADT)、模块化程序设计方法、面向对象的程序设计方法和C++类。·有关排序、选择、优先级队列ADT实现和符号表ADT(搜索)实现的算法,超过100个。·关于二项式队列、多路基数排序、随机化BST、发散树、跳跃表、多叉线索、B树、可扩充散列等,采用了新的实现。·关于算法的量化分析,是比较算法的依据。·1000多条新的练习,帮助读者学习算法。无论是你初学算法,还是想找一本将最新C++经典算法和新算法融入程序设计的参考手册,你都会发现本书提供了丰富的有用信息。 -
数据结构张乃孝、裘宗燕《数据结构:C++与面向对象的途径(修订版)》是1998年6月出版的《数据结构——C++与面向对象的途径》一书的修订版.它采用面向对象的思想组织数据结构的内容,运用C什语言作为讨论数据结构的工作语言。在第一版的基础上,除对各章的顺序及内容安排进行了进一步的调整之外,还补充了各章的例子、习题,并增加了若干上机实习题,使读者可以更好地对数据结构进行学习、实践.在《数据结构:C++与面向对象的途径(修订版)》的最后还附加了一个上机实习报告的例子,使其具有较强的实用性。《数据结构:C++与面向对象的途径(修订版)》除延续了第一版的风格外,内容更加充实、完整,,讲解更加清楚、透彻。可作为本科计算机专业或相关专业数据结构课程教材,也可作为面向对象程序设计课程或C++程序设计实践课程的教材和参考书。 -
数据结构杨正宏编以合适的算法来设计程序,采用简洁适用的数据结构来表示程序中的数据和变量是数据结构包含的主要内容。它是对程序设计者最基本的要求,也是计算机程序设计的重要理论基础。本书循序渐进地引导读者掌握数组结构,链表结构,推栈结构,队列结构,树状结构,图强构等不同的数据结构,以及递归、排序和查找等程序设计方法。全书文字浅显易懂,程序示例简洁明了,是程序设计人员的入门参考书。本书融合了作者十多年的教学经验及对现代数据结构的体会,十分适合高职高专及大专以上的学生和对电脑有浓厚兴趣的人员阅读。 -
数据结构学习辅导与实验指导王红梅、胡明、王涛《数据结构(C++版)学习辅导与实验指导》是作者积多年讲授“数据结构”课程及指导学生实验的教学经验编写而成的,与清华大学出版社出版的《数据结构(C++版)》教材相配套,主要内容由3个模块组成:第一个模块是本章导学,包括知识结构图、学习要点、本章重点、本章难点、重点整理和重点难点释疑6个子模块;第二个模块是习题解析,包括课后习题讲解和学习自测两个子模块;第三个模块是实验指导,包括验证实验、设计实验和综合实验3个子模块。最后在附录中给出了实验报告和课程设计报告的一般格式。本书可以配合《数据结构(C++版)》教材使用,起到衔接课堂教学和指导实验教学的作用,可作为高等院校本专科学生学习“数据结构”课程的参考教材,也可作为研究生入学考试的辅导教材,对于从事计算机软件开发和应用的工程技术人员也具有一定的参考价值。 -
数据结构金远平本书系统、全面地论述数据结构的重要内容,包括基本概念和方法、线性表、链表、树、堆结构、图、排序和搜索结构。在充分继承国内外经典教材的合理体系结构和优秀内容的基础上,结合国内实际教学情况编写,内容系统、精炼,且经过优化整合,在深度和广度上有明显增强;突出重点、难点,强调分析问题和解决问题的方法,以及产生这些方法的背景。书中内容都经过编者深入研究,且在教学实践中反复验证,因而较易理解。本书注重启发创新思维,培养能力;概念准确,逻辑性强;自然引用面向对象设计思想,用C++语言描述算法。本书适于作为计算机科学与技术、软件工程以及相关专业的教材,也可供从事相关工作的科技与工程人员参考。本书前言设计解决实际问题的计算机软件系统,首先需要建立被处理对象的数据模型。数据和世上万物一样,都是具有结构的。因此,人们很自然地用数据结构表示应用领域的被处理对象。为了模拟实际问题的求解过程和现实对象的行为,还必须提供对数据结构的相应操作。数据结构的实现是由下一层数据结构表示上一层数据结构,直至由程序设计语言提供的基本数据类型表示的过程。评价数据结构表示优劣的标准主要是其能否方便且有效地实现需要的操作,而实现操作的算法设计及其效率高低也依赖于数据结构表示。因此,数据结构的定义、表示以及操作的实现相互关联,都是数据结构研究的重要内容。计算机软件系统可看成是通过不同层次的数据结构及其操作实现的。通过多层表示,完成计算机对应用领域问题的求解过程。在此,中间层数据结构起着核心作用。数据结构的研究产生了一批通用性强、具有很高实用价值的中间层数据结构,如数组、字符串、集合、线性表、栈、队列、链表、树、图、符号表等。这些结构不仅为我们提供了设计软件系统的有用工具,而且向我们展示了在广泛的应用领域表示与解决问题的精巧思路和技术。系统地学习和掌握数据结构知识和方法,对于提高设计与开发软件系统尤其是复杂软件系统的能力,无疑是十分重要的。因此,数据结构早已成为计算机科学与技术和软件工程等专业的核心课程。数据结构课程内容丰富,涵盖了计算机科学与技术的许多重要的成果,分析问题和解决问题的思路和方法新颖,创新点多,技巧性强,对学生专业素质的培养作用明显,但同时也是一门较难学习的课程。我校计算机科学与工程系开设的"数据结构"课程一直采用美国南加州大学教授E.Horowitz等编著的《数据结构基础》作为教材。该书注重培养学生分析问题、解决问题的能力,在数据结构和算法设计以及时空复杂性分析的深度和广度方面特色明显。但在教学中也感到该书内容的表达形式学生较难理解,方法和技术的论述还不够简明扼要,有的内容不够精炼,部分章节存在一些小错误,教学效果较多依赖于教师的讲解。为此,编者在充分继承该书体系结构和内容优点的基础上,吸收其他教材长处,进行优化整合,并结合自身多年的教学改革与实践经验,编写了这本教材,力图使其系统全面,内容深刻,表达简洁,易于理解,以适应计算机科学与技术及相关专业的教学需要。本书共分为8章。第1章论述数据结构的基本概念和方法,包括数据结构与软件系统,数据抽象与封装,算法,递归,性能分析、性能测量,以及效率与权衡等。特别引入了代价分摊分析方法,将相关的操作序列联系起来分析,从而得到更接近实际代价的结果。此外,还从软件重用的角度描述了C++的模板机制。第2章介绍线性表的概念及其顺序表示方法,讨论了通过线性表表示的多项式、稀疏矩阵和字符串等结构。在描述著名的字符串模式匹配算法KMP时,采用了简明易懂的图示方法。还通过两个字符串的最长公共子序列问题的求解,展示了利用动态规划改进算法效率的方法。由于栈和队列是受限的线性表,因此也被整合到这一章。此章不仅给出了通用栈和队列的实现方法,还分别通过求解迷宫问题、表达式计算以及机场模拟问题描述了栈和队列的应用。第3章论述以链表形式实现线性表的方法和技术,讨论了遍历通用模板类容器对象的游标技术。还介绍了广义表的功能及其实现方法,并结合C++的动态类型,讨论了异构表的实现方法。第4章介绍最基本的非线性结构:树,包括树和森林的概念、二叉树、二叉树的遍历及应用、线索二叉树、胜者树、败者树、森林的二叉树表示及遍历、树在并查集问题中的应用和二叉树计数等。特别给出了有一定难度的中序线索二叉树的后序遍历算法,还给出了生成所有可能的二叉树的算法。第5章介绍支持各种优先队列的堆结构,包括最大堆、最大最小堆、双堆、左偏树、二项式堆和斐波纳契堆。在分析二项式堆和斐波纳契堆的性能时,采用了代价分摊方法。第6章介绍更普遍的非线性结构:图,包括图的定义和表示方法、图的遍历、图的连通性、最小代价生成树、最短路径和传递闭包以及活动网络等。特别讨论了应用斐波纳契堆改进最短路径算法性能的技术。在数据结构中,数据元素之间的次序是一种重要的关系。按照数据元素的特定属性对其进行排序是最频繁的计算任务之一。第7章介绍各种典型的排序方法,包括插入排序、希尔排序、快速排序、归并排序、堆排序、基数排序、基于链表和映射表排序结果的顺序化以及外排序。第8章介绍符号表概念以及实现符号表的各种结构,包括二叉查找树、AVL树、2-3树、Splay树、B树、B+树、Trie、静态散列和动态散列等,特别分析了二叉查找树的平均性能。在分析Splay树的性能时,采用了代价分摊方法。此外,还论述了上述结构的演变关系,帮助读者理解其设计思想。本书可供各种层次的读者选用,既适用于教学,也可供从事相关工作的科技与工程人员参考。可以按"数据结构基础"(64学时,必修)和"高级数据结构"(24~32学时,选修)两门课组织教学。本书的2.4、2.9、3.10、4.5、4.8、4.9、5.2~5.6、6.4、7.8、8.4、8.5、8.7和8.9节可作为"高级数据结构"课程的内容,其余作为"数据结构基础"课程的内容。本书引用了数据结构研究的大量先进成果,在此,作者谨向这些成果的原创者表示崇高的敬意和衷心的感谢。同时,对本书所引用的参考文献的作者也表示衷心的感谢。在本书的写作过程中,作者与徐宝文、孙志挥、王茜、徐冬梅、王树梅、吉根林和张丽晖老师开展了卓有成效的讨论,并由此得到很多启发。南京大学计算机科学与技术系陈道蓄教授认真审读了全部书稿,并提出了十分宝贵的修改意见,在此对他们表示最诚挚的谢意。感谢清华大学出版社的鼓励与支持。感谢东南大学教学改革基金的资助。还要感谢作者的众多学生,他们在数据结构课程学习过程中表现出的热情与执着给了作者很大的鼓励,与他们的讨论和交流使作者对教学内容和教学方法的改进有了更深刻的认识。
