-
>
闖進數學世界――探秘歷史名題
-
>
中醫基礎理論
-
>
當代中國政府與政治(新編21世紀公共管理系列教材)
-
>
高校軍事課教程
-
>
思想道德與法治(2021年版)
-
>
毛澤東思想和中國特色社會主義理論體系概論(2021年版)
-
>
中醫內科學·全國中醫藥行業高等教育“十四五”規劃教材
數據結構(C語言版)((第2版·微課版))(高等院校信息技術系列教材) 版權信息
- ISBN:9787302596189
- 條形碼:9787302596189 ; 978-7-302-59618-9
- 裝幀:70g膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
數據結構(C語言版)((第2版·微課版))(高等院校信息技術系列教材) 本書特色
本書在省級精品課程建設基礎上編寫,難度適中,適合本科院校教學要求。算法設計簡明,敘述精練,案例豐富。配套資源齊全,包括微視頻、課件、源代碼、題庫等。本書內容共10章,從第2~9章,以案例導引的方式引入相關數據結構的基本概念;在具體內容組織上,側重求解問題的思路導引和具體算法的設計分析,并且在每章實例應用部分給出了導入案例的詳細求解過程及其算法實現。
數據結構(C語言版)((第2版·微課版))(高等院校信息技術系列教材) 內容簡介
本書通過案例導引,結合各種數據結構基本算法,配合微課視頻的講解,全面介紹了線性表、隊列、堆棧、樹、圖等基本數據結構的概念、存儲及算法實現,系統說明了各種查找及排序算法的實現和效率分析,在第10章給出了數據結構綜合應用實例。書中各種算法采用C語言描述,注重程序設計風格。 本書語言流暢,內容通俗易懂,算法描述力求精練易讀;同時為了適應當前互聯網學習、移動學習新浪潮,編者對本書中所描述的各種數據結構核心算法和部分案例錄制了微課講解視頻,便于學生自學參考,幫助讀者實現隨時隨地學習。本書可以作為計算機、信息等專業本科生數據結構課程的教材,也可作為廣大計算機愛好者或軟件開發人員的參考書。
數據結構(C語言版)((第2版·微課版))(高等院校信息技術系列教材) 目錄
第1章 緒論
1.1 什么是數據結構
1.1.1 數據結構的定義
1.1.2 學習數據結構的意義
1.2 基本概念和術語
1.2.1 數據與數據元素
1.2.2 數據的邏輯結構與存儲結構
1.2.3 數據運算
1.2.4 數據類型與抽象數據類型
1.3 算法和算法描述語言
1.4 算法分析
1.4.1 算法評價
1.4.2 算法性能分析與度量
本章小結
習題
第2章 線性表
2.1 案例導引
2.2 線性表的邏輯結構
2.2.1 線性表的定義
2.2.2 線性表的基本操作
2.3 線性表的順序存儲及運算實現
2.3.1 順序表
2.3.2 順序表上基本運算的實現
2.4 順序表應用舉例
2.5 線性表的鏈式存儲和運算實現
2.5.1 單鏈表
2.5.2單鏈表基本運算的實現352.5.3循環鏈表
2.5.4 雙向鏈表
2.5.5 靜態鏈表
2.6 單鏈表應用舉例
2.7 順序表和鏈表的比較
2.8 案例分析與實現
本章小結
習題
◆數據結構(C語言版)(第2版·微課版)目錄第3章 棧和隊列
3.1 案例導引
3.2 棧
3.2.1 棧的定義及基本操作
3.2.2 棧的順序存儲及操作實現
3.2.3 棧的鏈式存儲及操作實現
3.3 棧的應用舉例
3.4 遞歸
3.4.1 遞歸定義
3.4.2 遞歸和棧的關系
3.4.3 遞歸算法實例
3.5 隊列
3.5.1 隊列的定義及基本操作
3.5.2 隊列的順序存儲實現及操作實現
3.5.3 隊列的鏈式存儲實現及操作實現
3.6 隊列應用舉例
3.7 案例分析與實現
本章小結
習題
第4章 串
4.1 案例導引
4.2 串及其基本運算
4.2.1 串的基本概念
4.2.2 串的基本運算
4.3 串的順序存儲及基本運算
4.3.1 串的定長順序存儲
4.3.2 定長順序串的基本運算
4.4 模式匹配
4.4.1 簡單的模式匹配算法
4.4.2 KMP算法
4.5 串的堆存儲結構
4.5.1 動態堆存儲
4.5.2 靜態堆存儲
4.6 串的鏈式存儲結構
4.7 案例分析與實現
本章小結
習題
第5章 數組和廣義表
5.1 案例導引
5.2 數組
5.2.1 數組的定義
5.2.2 數組的內存映像
5.3 特殊矩陣的壓縮存儲
5.3.1 對稱矩陣
5.3.2 三角矩陣
5.3.3 稀疏矩陣
5.4 廣義表
5.4.1 廣義表的定義
5.4.2 廣義表的存儲
5.4.3 廣義表基本操作的實現
5.5 案例分析與實現
本章小結
習題
第6章 樹和二叉樹
6.1 案例導引
6.2 樹的基本概念
6.2.1 樹的定義及其表示
6.2.2 基本術語
6.3 二叉樹
6.3.1 二叉樹的定義
6.3.2 二叉樹的性質
6.3.3 二叉樹的存儲結構
6.4 遍歷二叉樹
6.4.1 先序遍歷
6.4.2 中序遍歷
6.4.3 后序遍歷
6.4.4 按層次遍歷二叉樹
6.4.5 遍歷算法的應用舉例
6.5 線索二叉樹
6.5.1 線索的概念
6.5.2 線索的算法實現
6.5.3 線索二叉樹上的運算
6.6 樹與森林
6.6.1 樹的存儲結構
6.6.2 樹、森林和二叉樹的轉換
6.6.3 樹和森林的遍歷
6.7 哈夫曼樹
6.7.1 基本術語
6.7.2 哈夫曼樹的建立
6.8 案例分析與實現
本章小結
習題
第7章 圖
7.1 案例導引
7.2 圖的基本概念
7.2.1 圖的定義和術語
7.2.2 圖的基本操作
7.3 圖的存儲結構
7.3.1 鄰接矩陣
7.3.2 鄰接表
7.3.3 十字鏈表
7.3.4 鄰接多重表
7.4 圖的遍歷
7.4.1 深度優先搜索
7.4.2 廣度優先搜索
7.4.3 應用圖的遍歷判定圖的連通性
7.4.4 圖的遍歷的其他應用
7.5 *小生成樹
7.5.1 生成樹及生成森林
7.5.2 *小生成樹的概念
7.5.3 構造*小生成樹的Prim算法
7.5.4 構造*小生成樹的Kruskal算法
7.6 *短路徑
7.6.1 從一個源點到其他各點的*短路徑
7.6.2 每一對頂點之間的*短路徑
7.7 有向無環圖及其應用
7.7.1 有向無環圖的概念
7.7.2 AOV網與拓撲排序
7.7.3 AOE圖與關鍵路徑
7.8 案例分析與實現
本章小結
習題
第8章 查找
8.1 案例導引
8.2 基本概念
8.3 線性表的查找
8.3.1 順序查找
8.3.2 折半查找
8.3.3 分塊查找
8.4 樹表查找
8.4.1 二叉排序樹
8.4.2 平衡二叉樹
8.4.3 平衡二叉樹的建立
8.4.4 B樹和B+樹
8.5 哈希表查找
8.5.1 哈希表與哈希方法
8.5.2 常用的哈希方法
8.5.3 處理沖突的方法
8.5.4 哈希表的操作
8.5.5 哈希表查找及其分析
8.6 案例分析與實現
本章小結
習題
第9章 排序
9.1 案例導引
9.2 插入排序
9.2.1 直接插入排序
9.2.2 折半插入排序
9.2.3 希爾排序
9.3 交換排序
數據結構(C語言版)((第2版·微課版))(高等院校信息技術系列教材) 節選
第3 章 chapter3棧和隊列棧和隊列廣泛應用于計算機軟硬件系統中。在編譯系統、操作系統等系統軟件和各類應用軟件中經常需要使用棧和隊列完成特定的算法設計。它們的邏輯結構和線性表相同,但它們是一種特殊的線性表。其特殊性在于運算操作受到了一定限制,因此棧和隊列又被稱為操作受限的線性表。棧按“后進先出”的規則進行操作,隊列則按“先進先出”的規則進行操作。【本章學習要求】掌握:棧的基本概念,存儲結構以及入棧、出棧等基本操作。掌握:在處理實際問題中如何運用棧特點解決問題。了解:棧在遞歸實現過程中的作用。掌握:隊列的基本概念,存儲結構和入隊、出隊等基本操作。了解:如何運用隊列解決實際問題。3.1案例導引什么是棧,什么是隊列? 可以用一句話描述:如果物品(數據結構里是數據)存放的順序和取用的順序一致,是隊列,反之,物品存放的順序和取用順序相反,是棧。廚房中碗碟的壘放順序是自下而上,取用的順序是自上而下,這是生活中的棧式存取結構。車站的購票通道中,旅客窗口購票的順序是旅客排隊加入購票通道的順序,先圖3.1 彈匣來先購票,顧客按照排隊順序依次進行購票,這是生活中隊列式存取結構。再如,槍械是士兵的**武器,有兩種很有代表性的槍械,手槍和重機槍,這兩種槍械通過發射子彈進行射擊,一般手槍使用彈匣,配備數發子彈的彈匣,如圖3.1所示。手槍射擊的過程中,會從彈匣中提取子彈,提取子彈的順序和壓入子彈的順序是恰好相反的。而重機槍一般采用彈鏈進行供彈,如圖3.2所示。◆62數據結構(C語言版)(第 2版·微課版)彈鏈中,子彈按照線性方式順序依次排列,機槍在射擊的過程中,子彈按照排列的順序依次被射出槍管,這種存、取子彈的方式符合隊列的模式。數據結構課程中,不僅可以用棧和隊列處理類似的簡單問題;還有一些較復雜問題的求解,同樣需要棧和隊列這兩種特殊的數據結構。一般的方法是,找出問題自身隱含的與某種數據結構的內在聯系,再設計算法進行求解,下面舉例說明。1】【案例3.迷宮問題。迷宮問題是一個經典的問題,要求游戲者從迷宮入口開始,找出一條路徑到達迷宮的出口,游戲愛好者在一些探險類游戲里會經常遇到設置了復雜路徑或者通道的迷宮,掌握走迷宮的技巧是迷宮通關游戲的基本要求,圖3.3是一個游戲迷宮。圖3.彈鏈圖3.迷宮23如何設計算法求解迷宮問題呢? 在迷宮存在路徑的前提下,求解迷宮問題的要點有兩方面:一是要記住曾經走過的路徑或者位置點;二是當遇到走不通的情形時,從當前位置回退到*近一個曾經走過的位置,并重新尋找新的路徑去走迷宮。如果從*近的回退位置找不出走出迷宮的路徑,從該位置繼續回退至上一個位置,繼續搜索路徑,重復這樣的過程直至走出迷宮。這兩點綜合在一起正好可以利用棧來實現迷宮的路徑搜索,因為棧是后進先出的數據結構,*后保存在棧里的位置點,是*新剛走過的位置點,讓它*先出棧,正好滿足了回退重新搜索路徑的需要。2】We【案例3.b導航。標準的Web瀏覽器包含前后翻頁的功能,使用者在瀏覽網頁的時候,可以根據當時訪問的需要,對曾經訪問過的頁面,進行回退或者前進恢復訪問,方便了用戶的使用。瀏覽器是如何支持這樣的功能的實現呢?一般情況下,棧可以保存曾經走過的路徑結點,可以用一個棧back_Stack來保存向前瀏覽網頁過程中所訪問過的頁面,當需要回退時,從棧里取出之前每一步訪問過的頁面地址,重新讓瀏覽器去解析,就可以實現訪問路徑的回退功能。 }S=Init_SeqStack(); /*初始化棧*/if (!S){printf("棧初始化失敗");return(0);}while (n){Push_SeqStack(S,n%r); /*余數入棧*/n=n/ r; /*商作為被除數繼續*/}while (!Empty_SeqStack(S)) /*直到棧空退出循環*/{ Pop_SeqStack(S,&x); /*彈出棧頂元素*/printf("%d ",x); /*輸出棧頂元素*/}Destroy_ SeqStack(&S); /*銷毀棧*/}當應用程序中需要一個與數據保存時順序相反的數據時,通常使用棧。用順序棧的情況較多。【例3.2】 利用棧實現迷宮的求解。問題:這是實驗心理學中的一個經典問題,心理學家把一只老鼠從一個無頂蓋的大7 2 ◆數據結構(C 語言版)(第2 版·微課版)盒子的入口處趕進迷宮。迷宮中設置很多隔壁,對前進方向形成了多處障礙,心理學家在迷宮的唯一出口處放置了一塊奶酪,吸引老鼠在迷宮中尋找通路以到達出口。求解思想:回溯法是一種不斷試探且及時糾正錯誤的搜索方法。下面的求解過
數據結構(C語言版)((第2版·微課版))(高等院校信息技術系列教材) 作者簡介
秦鋒,安徽工業大學教授,安徽省人大代表。長期從事機器學習方向的科研及計算機教學工作,發表學術論文40余篇,主持參加省部級以上科研項目10余項。獲安徽省教學名師、安徽省優秀教師、寶鋼教育基金優秀 教師、全國大學生科技作品優秀指導教師等榮譽稱號。是省級教學團隊負責人;省級 教學名師工作室負責人。主編出版系列教材6部,獲安徽省教學成果一等獎1 次,二等獎1次,三等獎1次。指導學生五次獲‘挑戰杯’全國大學生課外科技 作品競賽獎,其中一等獎1次,二等獎1次,三等獎三次。
- >
我與地壇
- >
中國人在烏蘇里邊疆區:歷史與人類學概述
- >
【精裝繪本】畫給孩子的中國神話
- >
龍榆生:詞曲概論/大家小書
- >
隨園食單
- >
苦雨齋序跋文-周作人自編集
- >
名家帶你讀魯迅:朝花夕拾
- >
唐代進士錄