資料結構實驗報告 鍊錶建立輸出,學生資訊系統

2021-09-10 08:54:05 字數 2827 閱讀 3233

上機實驗習題

上機實驗要求及規範

c程式設計具有比較強的理論性,同時也具有較強的可應用性和實踐性。在上機實驗是乙個重要的教學環節。具體實習步驟如下:

1.問題分析與系統結構設計

充分地分析和理解問題本身,弄清要求做什麼(而不是怎麼做),限制條件是什麼。按照以資料結構為中心的原則劃分模組,搞清資料的邏輯結構(是線性表還是樹、圖?),確定資料的儲存結構(是順序結構還是鍊錶結構?)。然後設計有關操作的函式。在每個函式模組中,要綜合考慮系統功能,使系統結構清晰、合理、簡單和易於除錯。最後寫出每個模組的演算法頭和規格說明,列出模組之間的呼叫關係(可以用圖表示),便完成了系統結構設計。

3.上機準備

熟悉高階語言用法,如c語言。熟悉機器(即作業系統),基本的常用命令。靜態檢查主要有兩條路徑,一是用一組測試資料手工執行程式(或分模組進行);二是通過閱讀或給別人講解自己的程式而深入全面地理解程式邏輯,在這個過程中再加入一些注釋和斷言。如果程式中邏輯概念清楚,後者將比前者有效。

4.上機除錯程式

除錯最好分塊進行,自底向上,即先除錯底層函式,必要時可以另寫乙個呼叫驅動程式,表面上的麻煩工作可以大大降低除錯時所面臨的複雜性,提高工作效率。

5.整理實習報告

在上機實開始之前要充分準備實驗資料,在上機實踐過程中要及時記錄實驗資料,在上機實踐完成之後必須及時總結分析。寫出實驗報告。

一、實驗報告的基本要求:

一般性、較小規模的上機實驗題,必須遵循下列要求。養成良好的習慣。

(1)姓名 班級 學號 日期

(2)題目:內容敘述

(3)程式清單(帶有必要的注釋)

(4)除錯報告:

實驗者必須重視這一環節,否則等同於沒有完成實驗任務。這裡可以體現個人特色、或創造性思維。具體內容包括:測試資料與執行記錄;除錯中遇到的主要問題,自己是如何解決的;經驗和體會等。

二、實驗習報告的提高要求:

階段性、較大規模的上機實驗題,應該遵循下列要求。養成科學的習慣。

(1)需求和規格說明

描述問題,簡述題目要解決的問題是什麼。規定軟體做什麼。原題條件不足時補全。

(2)設計

a.設計思想:儲存結構(題目中限定的要描述);主要演算法基本思想。

b.設計表示:每個函式的頭和規格說明;列出每個函式所呼叫和被呼叫的函式,也可以通過呼叫關係圖表達。

c.實現注釋:各項功能的實現程度、在完成基本要求的基礎上還有什麼功能。

(3)使用者手冊:即使用說明。

(4)除錯報告:除錯過程中遇到的主要問題是如何解決的;設計的回顧、討論和分析;時間複雜度、空間複雜度分析;改進設想;經驗和體會等。

編制部門:國土資源學院 編制人:李謙 審核人: 編制日期:2023年3月23日

專案編號 no. c001

專案名稱 資料結構

訓練物件 gis 2015級7、8

學時 4

課程名稱 資料結構實驗

教 材 資料結構(c語言版)

目的objective 1.學會用演算法來進行程式設計。

第一題

建立兩個鍊錶,給每個鍊錶賦值,並合併輸出

第三題

為學生資訊建立鍊錶,並輸出

第一題:

程式**如下:

#include#include#include#include#define len sizeof (struct stu)

struct stu

; /*定義學生資訊鍊錶的結點結構*/

struct stu *creat(void)

} return head;

} struct stu *swap(struct stu *head)

return q;

}//單項鍊表逆轉函式

void print(struct stu *p)

} int main()

第二題

#include #includestruct node; 

void print(struct node *h)

printf("\n\n");}

struct node* order(struct node *head)

printf("排序後的鍊錶為:");

print(h);

return h;}

struct node* creat()

printf("建立的鍊錶為:");

print(h);

return h;

}

struct node* join(struct node *head1,struct node *head2)

else

}p->next=p1?p1:p2;

printf("合併後的鍊錶為:");

print(h);

return h;

}void main()

第三題

#include #include #define null 0

typedef struct

stu;

typedef struct node

node;

node *p,*head,*q;

void main()

p->next=null;

printf("學生資訊鏈``表為:\n");

q=head;

q=q->next;

while(q)

}

心得體會:結構體和鍊錶的建立之間的聯絡,鍊錶的儲存和輸出的格式是什麼樣子的也比在之前更加的清楚了。

資料結構實驗報告 資料結構實驗報告

使用c語言中的陣列,實現線性表中的順序結構儲存的查詢 刪除操作。1 初始線性表通過陣列 迴圈 scanf語句實現輸入任意個整數。2 刪除操作的實現,任意輸入乙個要刪除的整數,找到這個元素,將此元素之後的所有元素逐個前移一位,實現刪除操作。3 要求以上2步操作可以重複執行。4 例如 刪除操作執行結果大...

資料結構與演算法實驗報告 實驗一 鍊錶

實驗一 鍊錶 實驗目的和要求 1.理解線性表的鏈式儲存結構。2.熟練掌握動態鍊錶結構及有關演算法的設計。根據具體問題的需要,設計出合理的表示資料的鍊錶結構,並設計相關 演算法。實驗任務 1.對任意輸入的一組資料,建立乙個遞增有序的單鏈表。2.將單鏈表 中的奇數項和偶數項結點分解開,並分別連成乙個單鏈...

資料結構實驗報告

1 掌握佇列儲存結構的表示和實現方法。2 掌握佇列的入隊和出隊等基本操作的演算法實現。3 了解佇列在解決實際問題中的簡單應用。1 建立順序迴圈佇列,並在順序迴圈佇列上實現入隊 出隊基本操作 驗證性內容 2 建立迴圈鏈佇列,並在迴圈鏈佇列上實現入隊 出隊基本操作 設計性內容 3 實現鍵盤輸入迴圈緩衝區...