數據結構實習報告範文

來源:文萃谷 2.48W

精選範文:數據結構實習報告(共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();

下頁

熱門標籤