20172310《程序設計與數據結構》實驗一:線性結構實驗報告

20172310《程序設計與數據結構》實驗一:線性結構實驗報告

報告封面

  • 課程:《軟件結構與數據結構》
  • 班級: 1723
  • 姓名: 仇夏
  • 學號:20172310
  • 實驗教師:王志強老師
  • 實驗日期:2018年9月28日-2018年10月2日
  • 必修選修: 必修

實驗要求內容

鏈表的練習

  • 實驗一:鏈表的創建和基礎功能的實現

實現下列功能:
經過鍵盤輸入一些整數,創建一個鏈表
這些數是你學號中依次取出的兩位數。 再加上今天的時間。
例如個人學號是 20172310
今天時間是 2018/10/2, 16:23:49秒
數字就是20, 17,23,10, 20, 18,10,2,16,23,49
打印全部鏈表元素, 並輸出元素的總數。
在你的程序中,請用一個特殊變量名來紀錄元素的總數,int nQiuxia = 0; //初始化爲 0.
把你的程序簽入源代碼控制(git push)。git

  • 實驗二:鏈表的功能的擴展和文件讀寫的實現
    實現節點插入、刪除、輸出操做;
    擴展它的功能,每作完一個新功能,或者寫了超過10行新代碼,就簽入代碼,提交到源代碼服務器;
    從磁盤讀取一個文件, 這個文件有兩個數字。
    從文件中讀取數字,並使用插入方法鏈入鏈表指定位置,
    從鏈表中刪除剛纔的數字1. 並打印全部數字和元素的總數。

簽入全部代碼。數組

  • 實驗三:鏈表排序功能的實現
    使用選擇排序法根據數值大小對鏈表進行排序;
    在排序的每個輪次中, 打印元素的總數,和目前鏈表的全部元素。

數組的練習

  • 實驗四數組的創建、基礎功能的實現和文件讀寫的實現
    (1)經過鍵盤輸入一些整數,創建一個鏈表(1分);
    這些數是你學號中依次取出的兩位數。 再加上今天的時間。
    例如你的學號是 20172301
    今天時間是 2018/10/1, 16:23:49秒
    數字就是
    20, 17,23,1, 20, 18,10,1,16,23,49
    打印全部數組元素, 並輸出元素的總數。
    在你的程序中,請用一個特殊變量名來紀錄元素的總數,變量名就是你的名字。 例如你叫 張三, 那麼這個變量名就是
    int nZhangSan = 0; //初始化爲 0.

作完這一步,把你的程序簽入源代碼控制(git push)。服務器

(2)實現節點插入、刪除、輸出操做(2分,3個知識點根據實際狀況酌情扣分);數據結構

繼續你上一個程序, 擴展它的功能,每作完一個新功能,或者寫了超過10行新代碼,就簽入代碼,提交到源代碼服務器;
簽入全部代碼。函數

  • 實驗五數組功能的拓展
    數組練習,要求實現下列功能:
    (3)使用冒泡排序法或者選擇排序法根據數值大小對數組進行排序(2分);
    若是你學號是單數, 選擇選擇排序, 不然選擇冒泡排序。
    在排序的每個輪次中, 打印元素的總數,和目前數組的全部元素。

在(2)獲得的程序中繼續擴展, 用同一個程序文件,寫不一樣的函數來實現這個功能。 仍然用 nZhangSan (你的名字)來表示元素的總數。設計

實驗過程及結果

  • 實驗一

  • 實驗二
    3d

  • 實驗三
    調試

  • 實驗四

  • 實驗五

實驗過程當中遇到的問題和解決過程

  • 實驗二,以前編寫頭插法的時候,就被判了一個0分。

可是其實我在上面嘗試的時候是更換了變量的
blog

若是不改變,仍使用Head,這樣打印的時候是不會有錯,但實際上,num3並無鏈入head中,因而會丟掉頭結點,對此做出了以上的修改排序

  • 實驗五的時候,由於個人學號是雙數,因此使用冒泡排序法根據數值大小對數組進行排序。
    但第一次嘗試時,就出現了異常。

發現是出現了範圍問題,因而作出了修改

  • 實驗五要求在排序的每個輪次中, 打印元素的總數,和目前數組的全部元素。可是我發現一直打印不出元素,

因而編寫了一個isempty的方法,看看是否是由於數組裏沒有了元素

結果發現是代碼編寫的邏輯有問題,進行了調試

這裏不該該使用數組的長度來限制循環,由於以前數組定義了
長度是20,因此他後面的位置裏會存放0,以致於比較大小,交換順序的時候出現問題。

其餘(感悟、思考等)

由於此次實驗是在國慶假期的寶貴時間中進行的,因而乎想要快點完成,中途遇到的問題很多,但都很快的解決了,
哈哈,果真假期的誘惑很大,讓我快快的完成了做業。

參考資料

相關文章
相關標籤/搜索