使用說明:每次實驗都有相應的實驗文件,請先下載,如數據結構-實驗文件-01。html
目標:
學會使用CodeBlocks建立項目、編寫程序、掌握經常使用快捷鍵。
參考資料:git
CodeBlocks使用小技巧github
學習目標:算法
難點:
多文件操做:頭文件、include不懂。小程序
任務:數據結構
void swap1(int a, int b)
->void swap(int &a, int &b)
->再測試void swap(int a, int &b)
。參考資料:併發
數據結構-實驗文件-01
多文件的C語言系統示例
Visual Studio 2017 安裝使用教程(快速上手版)
使用Visual Studio Code開發(編譯、調試)C++程序
C++指針速記函數
目標:visual-studio
任務:
到碼雲註冊帳號,創建本身的代碼倉庫並規劃好目錄結構(chpt01-introduction, chpt02-linearlist...)
進階任務:學習
參考資料:
目標:
熟悉順序表的定義及其上的經常使用操做。
任務:
參考代碼:
順序表定義
#define MaxSize 100000 using namespace std; typedef int ElemType; typedef struct { ElemType data[MaxSize]; //存放順序表元素 int length ; //存放順序表的長度 } List; typedef List *SqList;
目標:
void DispLinkList(LinkList linklist)
,使用while
遍歷輸出剛纔手動建立的鏈表。難點:
部分學生對於指針變量指向某個節點沒有直觀認識。不能將移動指針操做轉化爲代碼,也不能從代碼看出其對應的指針移動、指向操做。
參考資料:
單鏈表定義
typedef int ElemType; typedef struct LNode //定義單鏈表結點類型 { ElemType data; struct LNode *next; //指向後繼結點 } LNode, *LinkList;
熟悉棧和隊列的一些典型應用
遞歸
5.1 遞歸程序編寫(自行完成,實驗課考覈加分)
題目:已知f爲單鏈表的表頭指針, 鏈表中存儲的都是整型數據,試寫出實現下列運算的遞歸算法:
① 求鏈表中的最大整數;
② 求鏈表的結點個數;
③ 求鏈表中全部節點數據的平均值。
5.2 使用stack將如下遞歸程序轉化爲非遞歸程序
void test(int &sum) { int x; cin>>x; if (x==0) sum = 0; else { test(sum); sum+=x; } cout<<sum; }
特別加分:使用遞歸或者隊列實現對指定目錄名及文件名進行文件查找(可以使用C、C++、Python、Java實現)。併發一個簡單博客描述該問題解決過程。
參考資料:
完成試驗任務書中第一題-拼接字符串(身份證),最後一題(判斷是不是數字)。而後完成其餘OJ上的字符串題目。
目標:
學會建立樹,熟練掌握樹的遞歸結構及在其上的遞歸算法,二叉樹的基本操做,哈夫曼樹,樹的應用。
任務:
目標:
學會基本的查找與排序算法,學會將哈希表應用於快速查找、統計等。
任務:
拓展資料1:倒排索引
倒排索引原理和實現
拓展資料2:STL中set容器的用法
STL Map演示小程序
STL中的set使用方法詳細!
STL之Set:Set的基本用法
C++使用: C++中map的基本操做和用法
基本目標:
任務:
注意: 本章上手難,能夠適當引導如何建立鄰接矩陣與鄰接表。能夠用試驗任務書的例子按部就班,逐步建立一個圖。