實踐一:時間複雜度分析數組
(1)for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
for(k=1;k<=j;k++)
(2)void fun(int n) {
int i=l;
while(i<=n)
i=i*10;
}
(3)int i, j,sum;
i=0;
j=0;
sum = i+j;
(4)void fun (int n){
int i=0;
while(i*i*i<=n)
i++;
}
實踐二:完成課本中ArrayStack類的實現,特別是完成peek、isEmpty、size和toString方法的實現,並完成四個方法的測試。網絡
public T peek() throws EmptyCollectionException
{
}
public boolean isEmpty()
{
// To be completed as a Programming Project
}
public int size()
{
// To be completed as a Programming Project
}
public String toString()
{
// To be completed as a Programming Project
}
實踐三:寫出鏈表中節點插入的操做代碼(僞代碼)
public static void InsertNode(Student2 Head, Student2 node){
}
- 實踐四:鏈表練習,要求實現下列功能
- (1)經過鍵盤輸入一些整數,創建一個鏈表
- (2)實現節點插入、刪除、輸出操做
- (3)使用冒泡排序法或者選擇排序法根據數值大小對鏈表進行排序
- 實踐五:運行PP28,PP28頁的程序
- 根據我的學號輸入後綴表達式並計算。(例如,學號172301,輸入1 7 + 2 3 0 1 - + *)
- 實踐六:給出size、isEmpty和toString等方法的定義,以完成LinkedStack
類的實現。
- 1.可以運行
- 2.須要測試各個方法
- 3.把代碼上傳到碼雲,並將關鍵代碼和運行結果截圖加水印(學號)上傳。
- 實踐七:代碼檢查P72-P73
- 凱撒密碼程序。
- 把結果截圖,加學號水印,上傳到藍墨雲。
- 實踐八:使用循環隊列輸出楊輝三角
- (1)用數組實現循環隊列(要考慮擴容問題,不然不加分)
- (2)輸出楊輝三角
- (3)代碼運行結果添加學號水印,並上傳;代碼傳到碼雲,附上碼雲連接。
實踐九:棧隊列測試題
實踐十:運行PP6.8和PP6.11的程序,
- 實踐十一:定義一個商品類Product,須要包括商品名稱、價格等信息,使用鏈式存儲結構實現一個線性表,存儲商店中的商品。支持插入、刪除、選擇排序、查找等功能,並進行簡單測試。須要使用的知識點:
- 1.泛型
- 2.實現Comparable接口中的方法
- 3.鏈式存儲結構
實踐十二:已知線性表具備元素{5,13,19,21,37,56,64,75,80,88,92} 若是使用折半查找法,ASL是多少?
實踐十三:畫出存儲形式和asl的計算
- 實踐十四:把本身的學號加21,例如學號爲1,把22添加到序列後面,使用鏈地址法,解決衝突。編程實現,並測試。
實踐十五:當D2等於2時,第2趟排序結果是?
- 實踐十六:計算題
- 1.有1023個結點的徹底二叉樹,其高度是多少?葉結點數是多少?
- 2.高度爲h的徹底二叉樹至少有多少個結點?至多有多少個結點?
- 3.已知一棵度爲m的樹中有n1個度爲1的結點,n2個度爲2的結點,…,nm個度爲m的結點,問該樹中有多少個葉結點?
實踐十七:參考下面葉子節點計算的僞代碼,計算課本中背部疼痛診斷器中決策樹的葉子節點個數?
int CountLeaf ( BiTree T, int &count )
{ if ( T )
{ if ( (!T->lchild) && (!T->rchild) )
count++; // 對葉子結點計數
CountLeaf( T->lchild, count);
CountLeaf( T->rchild, count);
}
}
- 實踐十八:若已知中序和先序序列,計算二叉樹結構
- 例:已知一棵二叉樹的先序序列和中序序列分別爲ABDGHCEFI 和 GDHBAECIF,試肯定二叉樹結構。
- 根據課堂介紹的遞歸樹深度計算算法,計算決策樹的深度。
- 實踐十九:使用遞歸實現層次遍歷背部疼痛決策樹,並按照層次順序輸出每一個節點內容。
- 非遞歸的層次遍歷法算法以下:
- 根結點入隊;從隊頭取元素,並執行以下3個動做:
- (1)訪問該結點;
- (2)若是該元素有左孩子,則左孩子入隊;
- (3)若是該元素有右孩子,則右孩子入隊;
- 重複執行上述過程,直至隊列爲空。此時,二叉樹遍歷結束。按照上述算法,編程實現層序遍歷,按照層序的方法,遍歷並依次輸出每一個節點內容。(3分)
實踐二十:根據關鍵字序列:36,30,18,40,32,45,22,50,構造一顆小頂堆,並排序?畫出構造堆過程(樹+數組)
- 實踐二十一:根據關鍵字序列:36,30,18,40,32,45,22,50,利用數組構造一顆大頂堆,並排序。
要求:
- (1)輸出構造好的大頂堆序列(層序)
- (2)輸出每輪排序的結果(數組的結果)
- 把結果截圖並加學號水印上傳到藍墨雲,代碼上傳到碼雲。
- 實踐二十二:使用Dijkstra(迪傑斯特拉)算法計算單源(V1出發)最短路徑。
- (1)寫出V1到各個頂點的最短路徑
- (2)要求寫出最短路徑計算過程(相似於圖2)
- 實踐二十三:AOE練習
- 一、求關鍵路徑,v1和ve的值並寫出具體步驟
- 二、畫出圖一可能的拓撲序列
- 三、畫出圖二所示無向圖的鄰接矩陣、鄰接鏈表,並列出深度優先和廣度優先遍歷圖所得的頂點序列。
- 四、寫出圖三的鄰接矩陣,並用prim算法求最小生成樹,畫出產生過程
- 實踐二十四:哈夫曼編碼測試
- 設有字符集: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個英文字母的文件,統計每一個字符出現的機率,根據計算的機率構造一顆哈夫曼樹。並完成對英文文件的編碼和解碼。
- 要求:
- (1)準備一個包含26個英文字母的英文文件(能夠不包含標點符號等),統計各個字符的機率
- (2)構造哈夫曼樹
- (3)對英文文件進行編碼,輸出一個編碼後的文件
- (4)對編碼文件進行解碼,輸出一個解碼後的文件
- (5)撰寫博客記錄實驗的設計和實現過程,並將源代碼傳到碼雲
- 課堂實踐對提升應用能力有幫助嗎?
- 我以爲課堂實踐能夠提升部分同窗的能力,接受能力比較慢的同窗須要溫習一下才能熟練運用。我以爲能夠課堂實踐與課後實踐相結合,或是課堂實踐採用難度比較適合大多人的程度會比較好。
- 課堂實踐上本身有什麼經驗教訓?
- 像算法之類的計算問題或是簡單的編程問題都是很簡單就解決的,可是比較困難的編程問題就很難了,須要細細的思考或要考慮清楚,這樣的話就有可能完不成課堂實踐的相關內容。爲了可以遇上別的同窗,須要更屢次的嘗試和提早的學習來彌補不足。
- 課堂實踐上對老師有什麼教學建議?
- 沒有什麼意見,比對兩個學期的課堂實踐,本學期的明顯增多,並且也開設了許多的額外實踐,爲你們提供了不一樣的實踐課程,很好的。