- Python數據結構與算法(視頻教學版)
- 孫玉勝 陳銳 張志鋒
- 1686字
- 2023-07-17 20:02:14
前言
數據結構是高等院校計算機科學與技術、軟件工程、大數據、人工智能等專業的一門重要的專業基礎課程,是算法設計與分析、人工智能、機器學習、編譯原理等眾多后續課程的重要基礎,它對軟件開發具有舉足輕重的作用。目前,在使用計算機的各種軟件時,都需要處理各種數據,而這些軟件的設計都需要研究數據之間關系的表示與處理,這正是數據結構的研究內容。數據結構是計算機、軟件工程大多數專業課程的核心基礎,直接決定著其他專業課程的學習效果。通過學習數據結構,可為算法設計和軟件開發等方面課程的學習打下堅實的知識基礎。
本書比較系統地介紹數據結構中的線性結構、樹結構、圖結構及查找、排序技術,闡述各種數據結構的邏輯關系,討論它們在計算機中的存儲表示及其運算。本書理論與實踐并重,結合教學工作實際,除了對數據結構中的抽象概念和數據類型的基本運算進行詳細講解外,還通過豐富的圖表和實例、完整的代碼講解算法的應用,幫助讀者理解每種數據類型常見的基本操作及其具體應用案例的算法思想,使其學會運用數據結構知識解決日常生活中的實際問題。本書主張通過算法實現來強化對算法的理解,因此,不僅精選了一些涵蓋知識點豐富且具有代表性的案例,還挑選了部分歷年考研試題作為課后習題,所有算法均采用Python語言給出完整實現,方便讀者學習和理解,從而鞏固所學知識點。
由于Python語言強大的第三方工具庫、開發快捷、擅長數據分析與處理等優勢,被廣泛應用于人工智能、機器學習、大數據分析與處理,且已成為最主流的開發語言之一,是數據分析與處理的首選工具。國內各高校均開設了Python語言程序設計課程,因此,本書采用Python語言作為描述語言,也為讀者學習人工智能、機器學習、大數據分析與處理打下牢固的基礎。
本書內容
本書共分為8章,內容分別為數據結構與算法概述,線性表,棧與隊列,串、數組與廣義表,樹,圖,查找和排序。
第1章:如果讀者剛接觸數據結構,這一章將告訴你數據結構是什么,以及本書的學習目標、學習方法和學習內容。另外,這一章還介紹了本書對算法的描述方法。
第2章:主要介紹線性表。首先講解線性表的邏輯結構,然后介紹線性表的各種常用存儲結構,在每一節均給出了算法的具體應用。通過學習本章內容,讀者可以掌握順序表、動態鏈表的基本操作及應用。
第3章:主要介紹操作受限的線性表—棧和隊列,內容包括棧的定義,棧的基本操作及棧與遞歸的轉化,隊列的概念,順序隊列和鏈式隊列的運算。
第4章:主要介紹串、數組與廣義表。串是另一種特殊的線性表,數組和隊列可看作線性表的推廣。首先介紹串的概念、串的各種存儲表示及串的模式匹配算法,然后介紹數組的概念、數組(矩陣)的存儲結構及運算、特殊矩陣,最后介紹廣義表的概念、表示與存儲方式。
第5章:主要介紹非線性數據結構—樹和二叉樹。首先介紹樹和二叉樹的概念,然后介紹樹和二叉樹的存儲表示、二叉樹的性質、二叉樹的遍歷和線索化、樹、森林與二叉樹的轉換及哈夫曼樹。
第6章:主要介紹非線性數據結構—圖。首先介紹圖的概念和存儲結構,然后介紹圖的遍歷、最小生成樹、拓撲排序、關鍵路徑及最短路徑。
第7章:主要介紹數據結構的常用技術—查找。首先介紹查找的概念,然后結合具體實例介紹各種查找算法,并給出完整的實現代碼。
第8章:主要介紹數據結構的常用技術—排序。首先介紹排序的相關概念,然后介紹各種排序技術,并給出具體的實現算法。
資源下載
本書提供配套的教學資源,包括示例源碼、PPT課件、教學視頻、教學大綱、作者QQ群答疑服務。讀者可用微信掃描右側二維碼下下。如果發現問題或者有任何建議,可通過郵件與作者聯系,電子郵箱為booksaga@163.com,郵件主題寫“Python數據結構與算法:視頻教學版”。

本書作者與鳴謝
參與本書編寫的有孫玉勝、陳銳、張志鋒、鄭倩、崔建濤、劉育熙、桑永宣。
在本書的出版過程中,得到了鄭州輕工業大學和清華大學出版社的大力支持,在此表示衷心感本。尤其感本清華大學出版社的編輯們對于本書順利出版所做的辛勤工作。
在本書編寫的過程中,參閱了大量的相關教材、著作,個別案例也參考了網絡資源,在此向各位原著者致敬!
由于作者水平有限,書中難免存在一些不足之處,懇請讀者批評指正。
編者
2022年9月
- Getting started with Google Guava
- GeoServer Beginner's Guide(Second Edition)
- 軟件品質之完美管理:實戰經典
- 青少年信息學競賽
- 匯編語言編程基礎:基于LoongArch
- Processing創意編程指南
- 快速入門與進階:Creo 4·0全實例精講
- Django 5企業級Web應用開發實戰(視頻教學版)
- Python青少年趣味編程
- NGUI for Unity
- Mastering SciPy
- Learning Kotlin by building Android Applications
- 深入理解Kafka:核心設計與實踐原理
- Java程序設計入門(第2版)
- 例說FPGA:可直接用于工程項目的第一手經驗