《資料結構》上機實驗的目的和要求 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 只完成第...