- 時間複雜度分析:計算時間複雜度,用大O記法進行表示。
- ArrayStack類的實現和測試:實現ArrayStack類中的peek、isEmpty、size和toString方法,並完成四個方法的測試。
- 鏈表插入:寫出鏈表中節點插入的僞代碼。
- 鏈表實踐:經過鍵盤輸入一些整數,創建一個鏈表;實現節點插入、刪除、輸出操做;使用冒泡排序法或者選擇排序法根據數值大小對鏈表進行排序。
- 第4章代碼檢查:運行PP28,PP28的程序,根據我的學號輸入後綴表達式並計算。
- LinkedStack補全:實現size、isEmpty和toString等方法並進行測試。
- 第5章代碼檢查:運行課本P72-P73凱撒密碼程序。
- 楊輝三角(選作題):使用循環隊列輸出楊輝三角。
棧隊列測試題:完成第六題的分析。
html
- 第6章代碼檢查:運行PP6.8和PP6.11的程序。
- 線性表實踐:定義一個商品類Product,須要包括商品名稱、價格等信息,使用鏈式存儲結構實現一個線性表,存儲商店中的商品,同時支持插入、刪除、選擇排序、查找等功能,並進行簡單測試。
- ASL測試:已知線性表具備元素{5,13,19,21,37,56,64,75,80,88,92},若是使用折半查找法,計算其ASL。
三種查找算法練習:畫出三種算法的存儲形式和並計算ASL。
java
- 哈希衝突處理實踐:把本身的學號加21,例如學號爲1,把22添加到序列{11,78,10,1,3,2,4,21}後面,使用鏈地址法,解決衝突,同時計算ASL,輸出衝突次數。
希爾排序測試:當D2等於2時,寫出第2趟排序結果。
git
- 樹-計算題:計算下列三道題
- 1.有1023個結點的徹底二叉樹,其高度是多少?葉結點數是多少?
- 2.高度爲h的徹底二叉樹至少有多少個結點?至多有多少個結點?
- 3.已知一棵度爲m的樹中有n1個度爲1的結點,n2個度爲2的結點,…,nm個度爲m的結點,問該樹中有多少個葉結點?
- 樹的深度和葉子個數計算:參考下面葉子節點計算的僞代碼,計算課本中背部疼痛診斷器中決策樹的葉子節點個數,並根據課堂介紹的遞歸樹深度計算算法,計算決策樹的深度。
- 中序和先序計算二叉樹結構:已知一棵二叉樹的先序序列和中序序列分別爲ABDGHCEFI 和 GDHBAECIF,試肯定二叉樹結構。
- 層次遍歷法實踐:使用遞歸和非遞歸的方法實現層序遍歷,遍歷背部疼痛決策樹,並按照層次順序輸出每一個節點內容。
- 堆構造與排序:根據關鍵字序列:36,30,18,40,32,45,22,50,構造一顆小頂堆排序,並畫出構造堆過程(樹+數組)
- 堆排序測試:根據關鍵字序列:36,30,18,40,32,45,22,50,利用數組構造一顆大頂堆,並排序。
十字鏈表練習:依照圖畫出十字鏈表結構。
web
最小生成樹:依照圖完成下列操做
算法
- 1.畫出Prim算法的最小生成樹的生成過程
- 2.畫出Kruscal算法的最小生成樹的生成過程
- 3.計算最小權值
Dijkstra(迪傑斯特拉)算法測試:使用Dijkstra(迪傑斯特拉)算法計算單源(V1出發)最短路徑。要求:(1)寫出V1到各個頂點的最短路徑(2)要求寫出最短路徑計算過程。
編程
AOE練習(加分):完成下圖中四道題。

後端
- 哈夫曼編碼測試:設有字符集:S={a,b,c,d,e,f,g,h,i,j,k,l,m,n.o.p.q,r,s,t,u,v,w,x,y,z}。給定一個包含26個英文字母的文件,統計每一個字符出現的機率,根據計算的機率構造一顆哈夫曼樹,並完成對英文文件的編碼和解碼。
實驗記錄博客:172322 2018-2019-1 《程序設計與數據結構》哈夫曼編碼測試報告數組
課堂實踐對提升應用能力有幫助嗎?數據結構
- 課堂實踐的內容都是一些比較簡單的編程時間或者代碼檢查,對於知識的理解有幫助,對於應用能力的提升也有必定的做用。
課堂實踐上本身有什麼經驗教訓?
- 上課必定要認真聽講,特別是書上沒有的知識,不認真聽課上實踐作起來有一些困難。
課堂實踐上對老師有什麼教學建議?
- 相較於上學期的課上實踐,本學期的課上實踐更加合理了,但願給學弟學妹們也以一樣的方式教學。