Ⅰ 數據結構與演算法分析:c語言描述的目錄
第1章 引論1.1 本書討論的內容1.2 數學知識復習1.2.1 指數1.2.2 對數1.2.3 級數1.2.4 模運算1. 2.5 證明方法1.3 遞歸簡論總結練習參考文獻第2章 演算法分析2.1 數學基礎2.2 模型2.3 要分析的問題2.4 運行時間計算2.4.1 一個簡單的例子2.4.2 一般法則2.4.3 最大子序列和問題的解.2.4.4 運行時間中的對數2.4.5 檢驗你的分析2.4.6 分析結果的准確性總結練習參考文獻第3章 表、棧和隊列3.1 抽象數據類型(adt)3.2 表adt3.2.1 表的簡單數組實現3.2.2 鏈表3.2.3 程序設計細節3.2.4 常見的錯誤3.2.5 雙鏈表3.2.6 循環鏈表3.2.7 例子3.2.8 鏈表的游標實現3.3 棧adt3.3.1 棧模型3.3.2 棧的實現3.3.3 應用3.4 隊列adt3.4.1 隊列模型3.4.2 隊列的數組實現3.4.3 隊列的應用總結練習第4章 樹4.1 預備知識4.1.1 樹的實現4.1.2 樹的遍歷及應用4.2 二叉樹4.2.1 實現4.2.2 表達式樹4.3 查找樹adt--二叉查找樹4.3.1 makeempty4.3.2 find4.3.3 findmin和findmax4.3.4 insert4.3.5 delere4.3.6 平均情形分析4.4 avl樹4.4.1 單旋轉4.4.2 雙旋轉4.5 伸展樹4.5.1 一個簡單的想法4.5.2 展開4.6 樹的遍歷4.7 b-樹總結練習參考文獻第5章 散列5.1 一般想法5.2 散列函數5.3 分離鏈接法5.4 開放定址法5.4.1 線性探測法5.4.2 平方探測法5.4.3 雙散列5.5 再散列5.6 可擴散列總結練習參考文獻第6章 優先隊列(堆)6.1 模型6.2 一些簡單的實現6.3 二叉堆6.3.1 結構性質6.3.2 堆序性質6.3.3 基本的堆操作6.3.4 其他的堆操作6.4 優先隊列的應用6.4.1 選擇問題6.4.2 事件模擬6.5 d-堆6.6 左式堆6.6.1 左式堆的性質6.6.2 左式堆的操作6.7 斜堆6.8 二項隊列6.8.1 二項隊列結構6.8.2 二項隊列操作6.8.3 二項隊列的實現總結練習參考文獻第7章 排序7.1 預備知識7.2 插入排序7.2.1 演算法7.2.2 插入排序的分析7.3 一些簡單排序演算法的下界7. 4 希爾排序7.4.1 希爾排序的最壞情形分析7.5 堆排序7.5.1 堆排序的分析7.6 歸並排序7.6.1 歸並排序的分析7.7 快速排序7.7.1 選取樞紐元7.7.2 分割策略7.7.3 小數組7.7.4 實際的快速排序常式7.7.5 快速排序的分析7.7.6 選擇的線性期望時間演算法7.8 大型結構的排序7.9 排序的一般下界7.9.1 決策樹7.10 桶式排序7.11 外部排序7.11.1 為什麼需要新的演算法7.11.2 外部排序模型7.11.3 簡單演算法7.11.4 多路合並7.11.5 多相合並7.11.6 替換選擇總結練習參考文獻第8章 不相交集adt8.1 等價關系8.2 動態等價性問題8.3 基本數據結構8.4 靈巧求並演算法8.5 路徑壓縮8.6 按秩求並和路徑壓縮的最壞情形8.6.1 union/find演算法分析8.7 一個應用總結練習參考文獻第9章 圖論演算法9.1 若干定義9.1.1 圖的表示9.2 拓撲排序9.3 最短路徑演算法9.3.1 無權最短路徑9.3.2 dijkstra演算法9.3.3 具有負邊值的圖9.3.4 無圈圖9.3.5 所有點對最短路徑9.4 網路流問題9.4.1 一個簡單的最大流演算法9.5 最小生成樹9.5.1 prim演算法9.5.2 kruskal演算法9.6 深度優先搜索的應用9.6.1 無向圖9.6.2 雙連通性9.6.3 歐拉迴路9.6.4 有向圖9.6.5 查找強分支9.7 np-完全性介紹9.7.1 難與易9.7.2 np類9.7.3 np-完全問題總結練習參考文獻第10章 演算法設計技巧10.1 貪婪演算法10.1.1 一個簡單的調度問題10.1.2 huffman編碼10.1.3 近似裝箱問題10.2 分治演算法10.2.1 分治演算法的運行時間10.2.2 最近點問題10.2.3 選擇問題10.2.4 一些運算問題的理論改進10.3 動態規劃10.3.1 用一個表代替遞歸10.3.2 矩陣乘法的順序安排10.3.3 最優二叉查找樹10.3.4 所有點對最短路徑10.4 隨機化演算法10.4.1 隨機數發生器10.4.2 跳躍表10.4.3 素性測試10.5 回溯演算法10.5.1 收費公路重建問題10.5.2 博弈總結練習參考文獻第11章 攤還分析11.1 一個無關的智力問題11.2 二項隊列11.3 斜堆11.4 斐波那契堆11.4.1 切除左式堆中的節點11.4.2 二項隊列的懶惰合並11.4.3 斐波那契堆操作11.4.4 時間界的證明11. 5 伸展樹總結練習參考文獻第12章 高級數據結構及其實現12.1 自頂向下伸展樹12.2 紅黑樹12.2.1 自底向上插入12.2.2 自頂向下紅黑樹12.2.3 自頂向下刪除12.3 確定性跳躍表12.4 aa-樹12.5 treap樹12.6 k-d樹12.7 配對堆總結練習參考文獻索引
Ⅱ 數據結構c語言版
#include <stdio.h> //程序經cfree運行基本無誤,&為引用調用,為c++標准
void alsData(int day[],int &maxFall,int &maxUnfall) //天數計算模塊
{int maxf,maxu,i,pre; //pre為前一天的情況
maxFall=maxUnfall=0;
if(day[0]>0) //給第一個pre賦初值
{pre=1;maxf=1;}
else
{pre=0;maxu=1;}
for(i=1;i<30;i++)
{if(day[i]>0)
{if(pre>0)
maxf++;
else if(pre==0)
{maxu=0;
maxf=1;
}
maxFall=(maxFall>maxf?maxFall:maxf);
pre=1;
}
else if(day[i]==0)
{if(pre>0)
{maxf=0;
maxu=1;
}
else if(pre==0)
maxu++;
maxUnfall=(maxUnfall>maxu?maxUnfall:maxu);
pre=0;
}
}
}
void main()
{int i,day[30],maxFall,maxUnfall;
puts("Input data:");
for(i=0;i<30;i++)
{printf("%d:",i+1);
scanf("%d",&day[i]);
}
puts("Analyzing...");
alsData(day,maxFall,maxUnfall);
printf("The max fall days are %d\n",maxFall);
printf("The max unfall days are %d \n",maxUnfall);
}
Ⅲ 數據結構C語言版的圖書目錄
第1章緒論1
1.1什麼是數據結構1
1.2基本概念和
術語4
1.3抽象數據類型的表示與實現9
1.4演算法和演算法分析13
1.4.1演算法13
1.4.2演算法設計的要求13
1.4.3演算法效率的度量14
1.4.4演算法的存儲空間需求17
第2章線性表18
2.1線性表的類型定義18
2.2線性表的順序表示和實現21
2.3線性表的鏈式表示和實現27
2.3.1線性鏈表27
2.3.2循環鏈表35
2.3.3雙向鏈表35
2.4一元多項式的表示及相加39
第3章棧和隊列44
3.1棧44
3.1.1抽象數據類型棧的定義44
3.1.2棧的表示和實現45
3.2棧的應用舉例48
3?2?1數制轉換48
3?2?2括弧匹配的檢驗49
3?2?3行編輯程序49
3?2?4迷宮求解50
3?2?5表達式求值52
**3.3棧與遞歸的實現54
3.4隊列58
3.4.1抽象數據類型隊列的定義58
3.4.2鏈隊列——隊列的鏈式表示和實現60
3.4.3循環隊列——隊列的順序表示和實現63
**3.5離散事件模擬65
第4章串70
4.1串類型的定義70
4.2串的表示和實現72
4.2.1定長順序存儲表示73
4.2.2堆分配存儲表示75
4?2?3串的塊鏈存儲表示78
**4?3串的模式匹配演算法79
4.3.1求子串位置的定位函數Index(S,T,pos)79
4.3.2模式匹配的一種改進演算法80
4.4串操作應用舉例84
4.4.1文本編輯84
4.4.2建立詞索引表86
第5章數組和廣義表90
5.1數組的定義90
5.2數組的順序表示和實現91
5.3矩陣的壓縮存儲95
5.3.1特殊矩陣95
5.3.2稀疏矩陣96
5.4廣義表的定義106
5.5廣義表的存儲結構109
**5.6m元多項式的表示110
**5.7廣義表的遞歸演算法112
5.7.1求廣義表的深度113
5.7.2復制廣義表115.7.3建立廣義表的存儲結構115
第6章樹和二叉樹118
6.1樹的定義和基本術語118
6.2二叉樹121
6.2.1二叉樹的定義121
6.2.2二叉樹的性質123
6.2.3二叉樹的存儲結構126
6.3遍歷二叉樹和線索二叉樹128
6.3.1遍歷二叉樹128
6.3.2線索二叉樹132
6.4樹和森林135
6.4.1樹的存儲結構135
6.4.2森林與二叉樹的轉換137
6.4.3樹和森林的遍歷138
**6.5樹與等價問題139
6.6赫夫曼樹及其應用144
6.6.1最優二叉樹(赫夫曼樹)144
Ⅳ 數據結構課到底學的是什麼
相信你也在網上查過此類問題了,我給你瘦點我自己的理解吧:
數據結構講的是數據在計算機數據處理中的邏輯結構與存儲結構及其基本應用操作。
邏輯結構是指數據運算是的邏輯表示,比如a[3]={1,2,3}表示一個元素為3個的一維數組。
存儲結構是指數據在計算機內存放的形式,比如a[3]={1,2,3}在計算機里怎麼存放呢?計算機可以分配一塊連續的存儲單元一次放入1、2、3這三個元素。當計算機運算調用到a[3]時,就直接從這塊連續的存儲單元調入對應的元素。計算機還可以分配幾塊不連續的存儲單元存放這三個元素,但每個存儲單元里除了存放數據1、2、3外必須還有其他輔助信息,比如,下一個存儲單元地址,是否結束等信息。這就是存儲結構。
數據結構還會涉及到數據結構的一些應用比如查找、排序、文件等。
數據結構是學習計算機知識的基礎學科,對於後續計算機知識的進一步學習很重要,如果想在計算機方面深造的話,建議好好學習!
給你附個數據結構經典教材的目錄:
數據結構(C語言版)(附光碟1張)(清華大學計算機系列教材)
目錄
第1章 緒論
1.1 什麼是數據結構
1.2 基本概念和術語
1.3 抽象數據類型的表現與實現
1.4 演算法和演算法分析
第2章 線性表
2.1 線性表的類型定義
2.2 線性表的順序表示和實現
2.3 線性表的鏈式表示和實現
2.4 一元多項式的表示及相加
第3章 棧和隊列
3.1 棧
3.2 棧的應有和舉例
3.3 棧與遞歸的實現
3.4 隊列
3.5 離散事件模擬
第4章 串
4.1 串類型的定義
4.2 串的表示和實現
4.3 串的模式匹配演算法
4.4 串操作應用舉例
第5章 數組和廣義表
5.1 數組的定義
5.2 數組的順序表現和實現
5.3 矩陣的壓縮存儲
5.4 廣義表的定義
5.5 廣義表的儲存結構
5.6 m元多項式的表示
5.7 廣義表的遞歸演算法第6章 樹和二叉樹
6.1 樹的定義和基本術語
6.2 二叉樹
6.2.1 二叉樹的定義
6.2.2 二叉樹的性質
6.2.3 二叉樹的存儲結構
6.3 遍歷二叉樹和線索二叉樹
6.3.1 遍歷二叉樹
6.3.2 線索二叉樹
6.4 樹和森林
6.4.1 樹的存儲結構
6.4.2 森林與二叉樹的轉換
6.4.3 樹和森林的遍歷
6.5 樹與等價問題
6.6 赫夫曼樹及其應用
6.6.1 最優二叉樹(赫夫曼樹)
6.6.2 赫夫曼編碼
6.7 回溯法與樹的遍歷
6.8 樹的計數
第7章 圖
7.1 圖的定義和術語
7.2 圖的存儲結構
7.2.1 數組表示法
7.2.2 鄰接表
7.2.3 十字鏈表
7.2.4 鄰接多重表
7.3 圖的遍歷
7.3.1 深度優先搜索
7.3.2 廣度優先搜索
7.4 圖的連通性問題
7.4.1 無向圖的連通分量和生成樹
7.4.2 有向圖的強連通分量
7.4.3 最小生成樹
7.4.4 關節點和重連通分量
7.5 有向無環圖及其應用
7.5.1 拓撲排序
7.5.2 關鍵路徑
7.6 最短路徑
7.6.1 從某個源點到其餘各頂點的最短路徑
7.6.2 每一對頂點之間的最短路徑
第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.5 無用單元收集
8.6 存儲緊縮
第9章 查找
9.1 靜態查找表
9.1.1 順序表的查找
9.1.2 有序表的查找
9.1.3 靜態樹表的查找
9.1.4 索引順序表的查找
9.2 動態查找表
9.2.1 二叉排序樹和平衡二叉樹
9.2.2 B樹和B+樹
9.2.3 鍵樹
9.3 哈希表
9.3.1 什麼是哈希表
9.3.2 哈希函數的構造方法
9.3.3 處理沖突的方法
9.3.4 哈希表的查找及其分析
第10章 內部排序
10.1 概述
10.2 插入排序
10.2.1 直接插入排序
10.2.2 其他插入排序
10.2.3 希爾排序
10.3 快速排序
10.4 選擇排序
10.4.1 簡單選擇排序
10.4.2 樹形選擇排序
10.4.3 堆排序
10.5 歸並排序
10.6 基數排序
10.6.1 多關鍵字的排序
10.6.2 鏈式基數排序
10.7 各種內部排序方法的比較討論
第11章 外部排序
11.1 外存信息的存取
11.2 外部排序的方法
11.3 多路平衡歸並的實現
11.4 置換一選擇排序
11.5 最佳歸並樹
第12章 文件
12.1 有關文件的基本概念
12.2 順序文件
12.3 索引文件
12.4 ISAM文件和VSAM文件
12.4.1 ISAM文件
12.4.2 VSAM文件
12.5 直接存取文件(散列文件)
12.6 多關鍵字文件
12.6.1 多重表文件
12.6.2 倒排文件
附錄A 名詞索引
附錄B 函數索引
參考書目
Ⅳ c語言數據結構pdf
強烈建議買國外版。數據結構(C語言版)—作者:(美)霍羅威茨等著,李建中等譯出版社:機械工業出版社本書的採用該類教材傳統的內容與組織結構。層次清晰,代碼質量很高。可以從書總的敘述看出作者的教學經驗。盡管有一定難度,但作者自始至終,都是從相對基礎知識開始講起,循序漸進。(比如c的數據存儲?式),這點比嚴蔚敏的那本好很多。最重要的是,書中的證明都很簡潔,與之相比嚴蔚敏的教材簡直就是噩夢(比如嚴的書中關於模式匹配的講解)。
Ⅵ 數據結構(C語言版) 清華大學出版社 嚴蔚敏 吳偉民 編著的 那本書的光碟內容誰有給下下載地址...
http://ishare.iask.sina.com.cn/f/8350733.html?from=isnom
本光碟是《數據結構(C語言版)》一書的配書光碟,作為數據結構課程的
輔助學習工具。
1. 光碟運行環境
硬體:Pentium 100以上多媒體PC機。
軟體:Windows 95/98/Me/2000/XP 操作系統。
2. 盤中內容
\DSDemoW 數據結構演算法演示系統(Windows版)β測試版
\DSDemoC 數據結構演算法演示系統(C語言描述)V3.1C中文版
Readme.txt 光碟使用說明
3. 使用光碟
(1) 進入光碟中的\DSDemoW 目錄,運行DSdemoW.EXE,可以進入
數據結構演算法演示系統(Windows版)β測試版的主界面。該版本的演示系統提供了
Pascal 和 C 兩種程序設計語言的演示和演算法源程序。歡迎各位讀者對該軟體提出
改進意見。
關於演示軟體的數據結構演算法演示系統(Windows版)用法,可以參考\DSDemoW
目錄下的Manual.doc文件,可以用Microsoft Word 97及以上版本打開該文件。
(2) 進入光碟中的「\DSDemoC」目錄,運行DSDemo.EXE,可以進入
數據結構演算法演示系統(C語言描述)V3.1C中文版。該軟體是在原DOS版程序
基礎上改進而成,具體操作請按照界面上的提示進行。
Ⅶ 數據結構c語言版和java版有什麼不同
數據結構本身是一種邏輯上的概念,它是獨立於特定語言或者實現的
比如說鏈表,概念上說就是一組結點構成的數據結構,其中每個結點均帶有後續結點信息。各種語言都可以實現鏈表,但實現的思路都是基於上面的邏輯概念。
因此,學習數據結構不必拘泥於某種特定語言,歸根結底是要把握每個數據結構(邏輯上)的精髓
在這個基礎上,每種語言都可以實現特定的數據結構,差別只在於語法實現級別。
另外雖然Java/C++等語言都帶有大量的標准類庫,但這並不意味著可以忽視數據結構基礎理論的學習。這直接關繫到實際應用時,是只能死板套用現成模板,還是靈活應用各種結構高效實現需求。
Ⅷ 數據結構C語言版的介紹
《數據結構C語言版》是1997年清華大學出版社出版的一本圖書,作者是嚴蔚敏,吳偉民。
Ⅸ 數據結構(C語言版)的介紹
《數據結構(C語言版)》是2011年出版的圖書,作者是嚴蔚敏,清華大學計算機系教授,長期從事數據結構教學和教材建設。