精選範文:資料結構實習報告(共2篇)
一、需求分析1、 程式所實現的功能;2、 程式的輸入,包含輸入的資料格式和說明;3、 程式的輸出,程式輸出的形式;4、 測試資料,如果程式輸入的資料量比較大,需要給出測試資料;5、 合作人及其分工二、設計說明1、 主要的資料結構設計說明;2、 程式的主要流程圖;3、 程式的主要模組,要求對主要流程圖中出現的模組進行說明4、 程式的主要函式及其虛擬碼說明 (不需要完整的程式碼) ;5、 合作人設計分工三、上機結果及體會1、 合作人編碼分工2、 實際完成的情況說明(完成的功能,支援的資料型別等);3、 程式的效能分析,包括時空分析;4、 上機過程中出現的問題及其解決方案;5、 程式中可以改進的地方說明;6、 程式中可以擴充的功能及設計實現假想;說明:1、 如果程式比較大,可以將設計說明分為概要設計和詳細設計兩部分。概要設計主要負責程式的流程、模組、抽象資料型別設計;詳細設計負責程式的資料型別定義和主要函式的說明。2、 設計說明中,不需要寫出程式碼或者模組的詳細程式碼,只需要寫出主要函式的虛擬碼說明。
[資料結構實習報告(共2篇)]
篇一:資料結構實訓報告
《資料結構》
課程設計報告
題 目:
班 級:
姓 名:
學 號:
指導教師:
實現兩個連結串列的合併 08計管(2)班 肖麗娜 20xx 年 6 月 17 日
目錄
一、 課程設計的性質、目的及要求 ············································· 3
一、 課程設計性質 ···································································· 3
二、 設計目的 ············································································ 3
三、 設計要求 ············································································ 3
二、 任務描述 ················································································· 3
三、 軟體環境 ················································································· 4
四、 演算法設計思想及流程圖 ························································· 4
一、 演算法設計思想 ···································································· 4
二、 流程圖 ················································································ 5
五、 原始碼 ····················································································· 6
六、 執行結果 ················································································· 9
七、 收穫及體會 ··········································································· 10
一、 課程設計的.性質、目的及要求
一、 課程設計性質
性質:資料結構設計是《資料結構》課程的實踐環節,也是我院各專業必修的計算機技術基礎課程之一。
二、 設計目的
目的:課程設計為學生提供了一個既動手又動腦,獨立實踐的機會,學生將課本上的理論知識和實際有機的結合起來,鍛鍊學生分析、解決較複雜問題的能力,本次課程設計,也是為了鍛鍊我們應用程式語言的語法規則和已經掌握的一些較為簡單的演算法,自己解決一個較簡單的課題,初步積累程式設計經驗。提高學生獨立編寫大程式設計的能力。
三、 設計要求
電腦科學是一門研究資料表示和資料處理的科學。資料是計算機化的資訊,是計算機可以直接處理的最基本和最重要的物件。無論是進行科學計算,資料處理,過程控制,還是對檔案的儲存和檢索及資料庫技術的應用,都是對資料進行加工處理的過程。
希望通過學習掌握程式設計的方法與程式設計技術,我們能學會良好的程式設計風格,為在計算機不同領域的應用打下堅實的基礎。希望通過本次的學習,我們能利用計算機解決實際題。與此同時,希望能通過此次的實訓來提高我們的思維能力,促進我們的綜合應用能力和我們的專業素質。
二、 任務描述
實現兩個連結串列的合併
基本功能要求:
1、建立兩個連結串列A和B,連結串列元素的個數沒別為m和n個。
2、假設元素分別為(x1,x2,···xm),和(y1,y2,···yn)。把他們合併成一個線性表C,使得:
當m>=n時,C=x1,y1,x2,y2,···xn,yn,···xm
當n>m時,C=y1,x1,y2,x2,···ym,xm,···,yn
輸出線性表C
3、用直接插入排序法對C進行升序排序,生成表D,並輸出表A ,B ,C ,D。
三、 軟體環境
編輯工具:
Turbo C2.0
功能介紹:
Turbo C2.0是一個快捷、高效的編譯程式,同時還有一個易學、易用的整合開發環境。使用Turbo C2.0無需獨立地編輯、編譯和連線程式,就能建立並執行C語言程式。因為這些功能都組合在Turbo 2.0的整合開發環境內,並且可以通過一個簡單的主螢幕使用這些功能。
四、 演算法設計思想及流程圖
一、 演算法設計思想
1、 定義連結串列的結構
[資料結構實習報告(共2篇)]
typedef struct
{
int data[maxsize];
int top;
}list;
2、 建立連結串列A,B,C,D,由於這連結串列是自己創立的,我們首先要對他
們進行申請儲存空間,首先我們就定義標頭檔案#include,用malloc(sizeof())函式來現實,這是申請連結串列儲存空間的標誌.
3、 用指標top的移動來實現對連結串列A,和B進行資料的輸入輸出,再
進行連結串列長度的比較,在用直接插入法對A和B中的資料查到C中,當m>=n的時候,先插A的元素,再插入B的元素
C->data[C->top]=A->data[j];
j=j+1;
C->top=C->top+1;
C->data[C->top]=B->data[k];
k=k+1;
C->top=C->top+1;
當n>m的時候,先插B的元素,在插入A的元素
C->data[C->top]=B->data[j];
j=j+1;
C->top=C->top+1;
C->data[C->top]=A->data[k];
k=k+1;
C->top=C->top+1;
4、 用氣泡排序法對C中元素進行排序生成表D,由於要進行升序排序,
所以只需比較D->data[j]data[j-1],再輸出D->data[j],移動指標D->top,每進行一次輸出,指標就移動一次D->top+1,直到C中元素都排序完,最後輸出D。
5、
列印連結串列A,B,C,D。
二、 流程圖
下頁
篇二:資料結構實習報告
測繪與國土資訊工程學院
實驗態度:
實驗成果:
實驗報告:
《資料結構》課程 實驗報告 姓 名:
學 號:
班 級:
成 績:
、認真 2、良好 3、一般 4、不認真 、優秀 2、可信 3、一般 4、不真實 、清晰完整 2、比較完整 3、不清晰 教師簽名:111
交報告日期:
20xx年 7 月 1日
目錄
實驗一 線性表的連結串列實現類的設計 ................................................................................. 4
實驗二 順序棧的自定義類設計 ......................................................................................... 8
實驗三 字串的操作類設計 ........................................................................................... 12
實驗四 樹和二叉樹的自定義類的設計 ........................................................................... 19
實驗五 圖的最短路徑演算法設計 ....................................................................................... 22
實驗六 自定義類應用綜合設計 ....................................................................................... 27
實驗一 線性表的連結串列實現類的設計
一、 需求分析
本次程式設計要求建立一個以連結串列為儲存方式的線性表,以及實現線性表所需求的各種功能。
對線性表的操作有:
(1)輸入形式為從鍵盤輸入,使用者根據介面的提示從鍵盤直接輸入所對應的數即可。輸入的值要求為整數型別,使用者輸入其它型別的資料時(例如字串)會產生不可預測的錯誤。
(2)輸出的介面為DOS視窗,系統按照使用者輸入的資料型別,將會把相應的輸出結果顯示到介面上。
(3)程式可以建立一個以連結串列形式儲存的線性表,對線性表可以進行查詢、刪除、插入、構造、銷燬和獲取連結串列長度的操作。
(4)以L1={0, 5, 9, 10, 12, 12, 17, 20, 24}構造連結串列;找
到重複的
[資料結構實習報告(共2篇)]
};
class List{
public:
List(){first = new LinkNode;} List(const int x){first = new LinkNode(x);} List(List&
L);
~List(){
MakeEmpty();
first;
}
LinkNode* Search(int x);
LinkNode* Locate(int i);
LinkNode* GetHead()const {return first;} int GetData(int i);
void DeleteRepeatedElem();
void Input();
void Display();
List&
operator = (List&
L);
private:
LinkNode* first;
};
List::List(List&
L)
{
int val;
LinkNode * srcPtr = ead();
LinkNode * desPtr = first = new LinkNode;
while(srcPtr->link != NULL){
val = srcPtr->link->data;
desPtr->link = new LinkNode(val);
desPtr = desPtr->link;
srcPtr = srcPtr->link;
}
desPtr->link = NULL;
}
三、 顯示詳細設計
int main(int argc, char *argv[])
{
List L1;
int d;
t();
lay();
teRepeatedElem();
下頁