《資料結構》上機實驗指導

2022-12-27 18:30:03 字數 2548 閱讀 2691

《資料結構》上機實驗的目的和要求 1

實驗一、單鏈表的插入和刪除 2

實驗二、二叉樹操作 6

實驗三、圖的遍歷操作 10

實驗四、排序 17

實驗五、查詢 23

通過上機實驗加深對課程內容的理解,增加感性認識,提高軟體設計、編寫及除錯程式的能力。

要求所編的程式能正確執行,並提交實驗報告。實驗報告的基本要求為:

1、 需求分析:陳述程式設計的任務,強調程式要做什麼,明確規定:

(1) 輸入的形式和輸出值的範圍;

(2) 輸出的形式;

(3) 程式所能達到的功能;

(4) 測試資料:包括正確的輸入輸出結果和錯誤的輸入及輸出結果。

2、 概要設計:說明用到的資料結構定義、主程式的流程及各程式模組之間的呼叫關係。

3、 詳細設計:提交帶注釋的源程式或者用偽**寫出每個操作所涉及的演算法。

4、 除錯分析:

(1) 除錯過程中所遇到的問題及解決方法;

(2) 演算法的時空分析;

(3) 經驗與體會。

5、 使用者使用說明:說明如何使用你的程式,詳細列出每一步操作步驟。

6、 測試結果:列出對於給定的輸入所產生的輸出結果。若有可能,測試隨輸入規模的增長所用演算法的實際執行時間的變化。

一、目的:

了解和掌握線性表的邏輯結構和鏈式儲存結構,掌握單鏈表的基本演算法及相關的時間效能分析。

二、要求:

建立乙個資料域定義為字串的單鏈表,在鍊錶中不允許有重複的字串;根據輸入的字串,先找到相應的結點,後刪除之。

三、示例程式:

#include""

#include""

#include""

#include""

typedef struct node定義結點

listnode;

typedef listnode * linklist自定義linklist單鏈表型別

linklist creatlistr1函式,用尾插入法建立帶頭結點的單鏈表

listnode *locatenode函式,按值查詢結點

void deletelist函式,刪除指定值的結點

void printlist函式,列印鍊錶中的所有值

void deleteall函式,刪除所有結點,釋放記憶體

主函式void main()

deleteall(head刪除所有結點,釋放記憶體

}用尾插入法建立帶頭結點的單鏈表

linklist creatlistr1(void)

return head返回頭指標

}按值查詢結點,找到則返回該結點的位置,否則返回null

listnode *locatenode(linklist head, char *key)

刪除帶頭結點的單鏈表中的指定結點*****==

void deletelist(linklist head,char *key)

while(q->next!=pp為要刪除的結點,q為p的前結點

q=q->next;

r=q->next;

q->next=r->next;

free(r釋放結點

}列印鍊錶*****==

void printlist(linklist head)

printf("\n");

}刪除所有結點,釋放空間

void deleteall(linklist head)

free(p);

}四、實驗內容

1、 分析、理解程式。

2、 除錯程式,並設計輸入資料(如:bat,cat,eat,fat,hat,jat,lat,mat,#),測試程式的如下功能:不允許重複字串的插入;根據輸入的字串,找到相應的結點並刪除。

3、 修改程式:

(1) 增加插入結點的功能。

(2) 將建立鍊錶的方法改為頭插入法。

五、實驗報告要求

1、 基本要求見第一頁內容。

2、 寫出實驗結果,並畫出所建鍊錶的示意圖。

一、 目的

掌握二叉樹的定義、性質及儲存方式,各種遍歷演算法。

二、 要求

採用二叉樹鍊錶作為儲存結構,完成二叉樹的建立,先序、中序和後序以及按層次遍歷的操作,求所有葉子及結點總數的操作。

三、 示例程式

#include""

#include""

#define max 20結點的最大個數

typedef struct nodebintnode自定義二叉樹的結點型別

typedef bintnode *bintree; //定義二叉樹的指標

int nodenum,leafnodenum為結點數,leaf為葉子數

基於先序遍歷演算法建立二叉樹

//*****要求輸入先序序列,其中加入虛結點「#」以示空指標的位置

bintree creatbintree(void)

{ bintree t;

char ch;

if((ch=getchar())=='#')

return(null讀入#,返回空指標

資料結構上機實驗

一 實驗目的 1 掌握用visual c 6.0上機除錯順序表的基本方法 2 掌握順序表的基本操作,插入 刪除 查詢等演算法的實現 二 實驗內容 1 順序表基本操作的實現 問題描述 當我們要在順序表的第i個位置上插入乙個元素時,必須先將順序表中第i個元素之後的所有元素依次後移乙個位置,以便騰空乙個位...

《資料結構》上機實驗

資料結構 上機實驗 適用專業 資訊專業 x大學經濟管理學院 資訊 系 2015年 2月 前言 資料結構 是一門理論性和實踐性都很強的課程,通過本課程的學習,可以使學生分析研究計算機加工的資料物件的特性,以便選擇恰當的資料結構和儲存結構以及相應的演算法,並初步掌握演算法的時間分析和空間分析的技巧 另一...

資料結構上機實驗四

實驗內容 廣義表的基本操作 實驗要求 1 廣義表的建立與顯示要作為函式被呼叫.2 把自己使用的廣義表結構明確的表達出來.3 基本上實現每個實驗題目的要求.分組要求 可單獨完成,也可兩人一組。實驗目的 1 熟悉c c 基本程式設計,培養動手能力.2 通過實驗,加深對廣義表的理解.評分標準 1 只完成第...