課程:《程序設計與數據結構》
班級: 1723
姓名: 趙曉海
學號:20172311
實驗教師:王志強
實驗日期:2018年9月30日
必修/選修: 必修html
結果提交截圖
java
本實驗小結:
本實驗要求完成鏈表類的初步建立,須要完成toString()
和size()
兩個方法。在鏈表類的建立方面,我採用了泛型的方式,建立了一個ADT,而後採用了泛型,以便於在鏈表中添加任何數據,方便後期的使用。git
線性結構之鏈表(3):
1.使用冒泡排序法或者選擇排序法根據數值大小對鏈表進行排序
2.學號是雙數, 使用選擇排序
3.在排序的每個輪次中, 打印元素的總數,和目前鏈表的全部元素數組
結果提交截圖:
服務器
本實驗要求在鏈表類里加一個冒泡排序的方法,該方法實現了冒泡排序,並且返回每一步排序後的結果,對選擇排序的方法進行適當的修改便可完成。數據結構
線性結構之數組(4):
1.經過鍵盤輸入一些整數,創建一個數組
2.這些數是學號中依次取出的兩位數,再加上今天的時間
3.打印全部數組元素, 並輸出元素的總數
4.用一個特殊變量名來記錄元素的總數,變量名是你的名字
5.實現數組插入、刪除、輸出操做
6.繼續上一個程序, 擴展它的功能,每作完一個新功能,或者寫了超過10行新代碼,就簽入代碼,提交到源代碼服務器
7.從磁盤讀取一個文件, 這個文件有兩個數字
8.從文件中讀入數字1, 插入到數組第 5 位,並打印全部數字,和元素的總數。 保留這個數組,繼續下面的操做
從文件中讀入數字2, 插入到數組第 0 位,並打印全部數字,和元素的總數。 保留這個數組,繼續下面的操做
9.從數組中刪除剛纔的數字1. 並打印全部數字和元素的總數測試
結果提交截圖:
.net
我的覺得本實驗能夠經過建立一個可以對數組操做的類來實現,聲明該類也就建立也一個數組,而後該類中還具有節點的插入和刪除以及toString
和size()
方法,經過調用這些方法便可以完成本實驗設計
結果提交截圖:
3d
本實驗小結:
本實驗要求在建立的數組操做類中新建一個選擇排序的方法,該方法不只要完成選擇排序,還要返回選擇排序的每一步過程,對選擇排序進行必定的修改便可完成。
//刪除某一元素,一次刪一個且就近 public void deleteNumber(T t) { LinearNode temp = head; if(temp.getElement()==t) { head = temp.next; } else { while (!(temp.next.getElement() == t)) { temp = temp.next; } temp.next = temp.next.next; } nZhaoXiaoHai--; }
使用有bug方法運行結果如圖(刪除的數較大時):
使用有bug方法運行結果如圖(刪除的數較小時):
看到這個就真的很蒙圈了,一樣的代碼,數大了會有bug,我真的佛了,要是我測試的時候用的數不是500而是20,那我這個bug可就真的可能看不到了,真的挺有意思!!!!
==
改成使用.equals
方法判斷是否相等便可,由於==
是用來判斷地址是否相同的,而.equals
方法則是判斷元素是否相同。//刪除某一元素,一次刪一個且就近 public void deleteNumber(T t) { LinearNode temp = head; if(temp.getElement().equals(t)) { head = temp.next; } else { while (!(temp.next.getElement().equals(t))) { temp = temp.next; } temp.next = temp.next.next; } nZhaoXiaoHai--; }
從對鏈表和數組的陌生到對他們的熟悉,真的頗有成就感,有點小激動!要走的路還很長,繼續努力吧!