一、課程背景
1.1 C重要嗎?
很多人對(duì)學(xué)習(xí)C語(yǔ)言感到無(wú)從下手,經(jīng)常問(wèn)我同一個(gè)問(wèn)題:究竟怎樣學(xué)習(xí)C語(yǔ)言?我是一個(gè)教師,已經(jīng)開發(fā)了很多年的程序,和很多剛剛起步的人一樣,學(xué)習(xí)的第一個(gè)計(jì)算機(jī)語(yǔ)言就是C語(yǔ)言。經(jīng)過(guò)這些年的開發(fā),我深深的體會(huì)到C語(yǔ)言對(duì)于一個(gè)程序設(shè)計(jì)人員多么的重要,如果不懂C語(yǔ)言,你想寫底層程序這幾乎聽起來(lái)很可笑,不懂C語(yǔ)言,你想寫出優(yōu)秀高效的程序,這簡(jiǎn)直就是天方夜譚。為什么C語(yǔ)言如此重要呢?
第一:C語(yǔ)言語(yǔ)法結(jié)構(gòu)很簡(jiǎn)潔精妙,寫出的程序也很高效,很便于描述算法,大多數(shù)的程序員愿意使用C語(yǔ)言去描述算法本身,所以,如果你想在程序設(shè)計(jì)方面有所建樹,就必須去學(xué)它。
第二:C語(yǔ)言能夠讓你深入系統(tǒng)底層,你知道的操作系統(tǒng),哪一個(gè)不是C語(yǔ)言寫的?所有的windows,Unix,Linux,Mac,os/2,沒(méi)有一個(gè)里外的,如果你不懂C語(yǔ)言,怎么可能深入到這些操作系統(tǒng)當(dāng)中去呢?更不要說(shuō)你去寫它們的內(nèi)核程序了。
第三:很多新型的語(yǔ)言都是衍生自C語(yǔ)言,C++,Java,C#,J#,perl...哪個(gè)不是呢?掌握了C語(yǔ)言,可以說(shuō)你就掌握了很多門語(yǔ)言,經(jīng)過(guò)簡(jiǎn)單的學(xué)習(xí),你就可以用這些新型的語(yǔ)言去開發(fā)了,這個(gè)再一次驗(yàn)證了C語(yǔ)言是程序設(shè)計(jì)的重要基礎(chǔ)。還有啊,多說(shuō)一點(diǎn):即使現(xiàn)在招聘程序員,考試都是考C語(yǔ)言,你想加入it行業(yè),那么就一定要掌握好C語(yǔ)言
1.2、為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)?
在可視化化程序設(shè)計(jì)的今天,借助于集成開發(fā)環(huán)境可以很快地生成程序,程序設(shè)計(jì)不再是計(jì)算機(jī)專業(yè)人員的專利。很多人認(rèn)為,只要掌握幾種開發(fā)工具就可以成為編程高手,其實(shí),這是一種誤解。要想成為一個(gè)專業(yè)的開發(fā)人員,至少需要以下三個(gè)條件:
一、能夠熟練地選擇和設(shè)計(jì)各種數(shù)據(jù)結(jié)構(gòu)和算法。
二、至少要能夠熟練地掌握一門程序設(shè)計(jì)語(yǔ)言。
三、熟知所涉及的相關(guān)應(yīng)用領(lǐng)域的知識(shí)。
其中,后兩個(gè)條件比較容易實(shí)現(xiàn),而第一個(gè)條件則需要花相當(dāng)?shù)臅r(shí)間和精力才能夠達(dá)到,它是區(qū)分一個(gè)程序設(shè)計(jì)人員水平高低的一個(gè)重要標(biāo)志,數(shù)據(jù)結(jié)構(gòu)貫穿程序設(shè)計(jì)的始終,缺乏數(shù)據(jù)結(jié)構(gòu)和算法的深厚功底,很難設(shè)計(jì)出高水平的具有專業(yè)水準(zhǔn)的應(yīng)用程序。曾經(jīng)有一本經(jīng)典計(jì)算機(jī)專業(yè)書籍叫做《數(shù)據(jù)結(jié)構(gòu)+算法=程序》,也說(shuō)明了數(shù)據(jù)結(jié)構(gòu)和算法的重要性。
1.3、為何要選擇學(xué)習(xí)這個(gè)課程?
數(shù)據(jù)結(jié)構(gòu)用C去表述是最經(jīng)典的,也是更能讓你得到良好的基礎(chǔ)編程思想算法訓(xùn)練的,也是最容易上手的。 本課程系可謂是 《 數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)--嚴(yán)蔚敏 》 的視頻版本。
講師梧桐擁有豐富的授課經(jīng)驗(yàn)和開發(fā)經(jīng)驗(yàn),對(duì)數(shù)據(jù)結(jié)構(gòu)有深入的研究,并曾發(fā)表論文。講師的授課特點(diǎn)是用最通俗易懂的話來(lái)說(shuō)清晦澀難懂的知識(shí)點(diǎn)。
1.4. 、適合學(xué)員
本課程適合
1. 有一定C語(yǔ)言基礎(chǔ)想學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)算法的學(xué)員,有機(jī)會(huì)進(jìn)入名企從事IT領(lǐng)域的在校大學(xué)生
2. 想提高自己的軟件編程能力,想去沖擊更高職位,更高收入的有理想的程序猿
二、課程大綱
第1章 緒論
一、教學(xué)內(nèi)容
1.1 數(shù)據(jù)結(jié)構(gòu)的相關(guān)基本概念
1.2 數(shù)據(jù)之間的邏輯結(jié)構(gòu)
1.3 數(shù)據(jù)之間的存儲(chǔ)結(jié)構(gòu)
1.4 算法
二、教學(xué)要求
1、了解數(shù)據(jù)結(jié)構(gòu)的基本概念
2、掌握算法的時(shí)間復(fù)雜度
第2章 線性表
一、教學(xué)內(nèi)容
2.1 了解線性表的特點(diǎn)
2.2 順序表及其相關(guān)操作
2.3 鏈表及其相關(guān)操作
二、教學(xué)要求
1、了解線性表的特點(diǎn)
2、掌握鏈表及其相關(guān)操作
第3章 棧和隊(duì)列
一、教學(xué)內(nèi)容
3.1 兩種重要的特殊的線性結(jié)構(gòu):棧和隊(duì)列
3.2 棧的特點(diǎn)
3.3 隊(duì)列的特點(diǎn)
3.4 算法
二、教學(xué)要求
1、了解棧的特點(diǎn)
2、了解隊(duì)列的特點(diǎn)
第6章 樹和二叉樹
一、教學(xué)內(nèi)容
6.1 二叉樹的定義
6.2 二叉樹的性質(zhì)
6.3 二叉樹的存儲(chǔ)結(jié)構(gòu)
6.4 二叉樹的遍歷
6.5 樹的存儲(chǔ)結(jié)構(gòu)
6.6 森林與二叉樹的轉(zhuǎn)換
6.7 樹的遍歷
6.8 森林的遍歷
6.9 哈夫曼樹及其應(yīng)用
二、教學(xué)要求
1、掌握二叉樹的性質(zhì)
2、熟悉二叉樹的遍歷
3、掌握哈夫曼樹的構(gòu)造
第7章 圖
一、教學(xué)內(nèi)容
7.1 圖的定義及相關(guān)術(shù)語(yǔ)
7.2 圖的存儲(chǔ)結(jié)構(gòu)
7.3 圖的兩種遍歷方式
7.4 最小生成樹
7.5 關(guān)鍵路徑
二、教學(xué)要求
1、了解圖的存儲(chǔ)結(jié)構(gòu)和遍歷
2、掌握關(guān)鍵路徑的計(jì)算
第9章 查找
一、教學(xué)內(nèi)容
9.1 順序查找
9.2 折半查找
9.3 二叉排序樹
9.4 哈希表的構(gòu)造
9.5 處理沖突的方法
二、教學(xué)要求
1、掌握折半查找的思想和算法
2、了解哈希表的構(gòu)造和處理沖突的方法
第10章 內(nèi)部排序
一、教學(xué)內(nèi)容
10.1 直接插入排序
10.2 希爾排序
10.3 冒泡排序
10.4 快速排序
10.5 簡(jiǎn)單選擇排序
10.6 總結(jié)各種排序方法
二、教學(xué)要求
1、掌握直接插入排序的思想和算法
2、了解希爾排序的思想
3、掌握冒泡排序的思想和算法
4、了解快速排序的思想
5、了解簡(jiǎn)單選擇排序的思想
課程截圖
北風(fēng)網(wǎng),中國(guó)IT網(wǎng)絡(luò)教育第一品牌!
購(gòu)買過(guò)此商品的人還購(gòu)買過(guò)