資料結構課程設計報告樣本 求A交B

2021-03-14 13:10:53 字數 3486 閱讀 7309

《資料結構》課程設計

題目集合運算

學生姓名孟茹

指導教師秦飛

學院管理科學與工程學院

專業班級息121班

完成時間2014.6

目錄第一章課程設計目的 2

第二章課程設計內容和要求 3

第三章課程設計分析 4

第四章演算法(資料結構)描述 5

第五章源**(源**必須給注釋) 8

第六章執行結果分析 8

第七章結束語 13

第八章參考文獻 13

第一章課程設計目的

本學期我們對《資料結構》這門課程進行了學習。這門課程是一門實踐性非常強的課程,為了讓大家更好地理解與運用所學知識,提高動手能力,我們進行了此次課程設計實習。這次課程設計不但要求實習者掌握《資料結構》中的各方面知識,還要求實習者具備一定的c語言基礎和程式設計能力。

具體說來,這次課程設計主要有以下幾個方面的目的。

1.會定義單鏈表得順序儲存結構

2.熟悉c++程式的基本結構,掌握程式的基本結構,掌握程式中的使用者標頭檔案,實現檔案和主檔案之間的相互關係及各自作用。

3.熟悉對單鏈表的一些基本操作和具體的函式定義

4.掌握使用單鏈表來表示集合,完成集合的合併,求交集等操作。

5.熟悉c++操作環境的使用以及多檔案程式的輸入,編輯,除錯和執行的全過程。

第二章課程設計內容和要求

題目:集合運算

功能:使用鍊錶來表示集合,完成集合的合併,求交集等操作。

主要包含以下內容:

1.初步完成總體設計,搭好框架,確定人機對話的介面,確定函式個數;

2.完成最低要求;

3.進一步要求:

2.2課程設計要求

1.介面友好,函式功能要劃分好

2.總體設計應畫一流程圖

3.程式要加必要的注釋

4.要提供程式測試方案

5.程式一定要經得起測試,寧可功能少一些,也要能執行起來,不能執行的程式是沒有價值的。

2.2 執行環境

該程式的執行環境為windows xp系統,microsoft visual c++6.0版本。

第三章課程設計分析

3.1集合的儲存

本課題要求採用單鏈表的儲存結構。分別用兩個帶頭結點的單鏈表儲存集合a和b。在單鏈表中,包括資料域和指標域,資料域中儲存集合元素,指標域中儲存下乙個集合元素的位置。

所以一開始必須先定義單鏈表的結點型別,並對單鏈表進行初始化,然後根據所輸入的相關資訊,建立集合的單鏈表。本課程設計中,鍊錶長度不能超過100,集合輸入的形式為乙個以「回車符」為結束標誌的字串,串中字元順序不限,且允許出現重複字元或非法字元,程式應能自動濾。輸出的運算結果字串中將不含重複字元或非法字元。

3.2 集合交集並集的實現

3.2.1 求集合a和b的交集

a交b 就是a和b中都存在的元素,方法是刪除單鏈表a中所有沒有在b中出現的元素。

具體過程應為:定義兩個指標變數linklist pre和linklist p。定義乙個和集合中元素同型別的資料即datatype x。

一開始pre指向a的頭結點,p指向第乙個鍊錶結點。建立乙個while()迴圈,以指標p所指物件不為空為控制條件,將p所指向的集合元素賦值給x。然後利用查詢函式查詢b中值為x的元素,若查詢成功,則保留指標p所指向的元素,並將p結點賦值給pre,將p的next賦值給p。

若查詢失敗,則將p的next賦值給pre的next,然後釋放p結點,將pre的next賦值給p,這樣就可以完成求集合a和b的交集了。

3.2.2 求集合a和b的並集

a並b就是a或b中存在的元素,方法是將b中所有不在單鏈表a中的元素都加入到a中。

具體過程應為:定義乙個和集合中元素同型別的資料即datatype x。定義乙個指標變數linklist p,初始p指向b的第乙個結點。

建立乙個while()迴圈以指標p所指物件不為空為控制條件,將p所指向的幾何元素賦值給x。利用查詢函式查詢a中值為x的元素,若查詢成功,將p的next賦值給p。若查詢失敗,利用插如函式將b中有而集合a中沒有的元素加入到集合a中,這樣就可以完成秋集合a和b的並集了。

第四章演算法(資料結構)描述

4.1 集合的儲存結構的建立。

4.1.1 定義單鏈表的結點型別

typedef struct node lnode,*linklist;

4.1.2 建立集合的單鏈表

需建立乙個所有結點都為空的單鏈表。

linklist creat_linklist(void)

4.1.3 建立並輸出圖的鄰接表

首先必須輸入集合的相關資訊,即集合的各個元素。為了保證集合輸出的正確性,要將集合按順序存放在單鏈表中。即集合中的第乙個元素存放在單鏈表的第乙個結點,以下是集合輸入輸出的相關**如下:

void readdata(linklist head)//定義輸入集合函式

}void pop(linklist head)//定義輸出集合函式

printf("\n");

}4.2 求集合的交集和並集

4.2.1 求a∩b

a∩b就是a和b中都存在的元素,方法是刪除單鏈表a中所有沒有在b中出現的元素。

具體過程應為:定義兩個指標變數linklist pre和linklist p。定義乙個和集合中元素同型別的資料即datatype x。

一開始pre指向a的頭結點,p指向第乙個鍊錶結點。建立乙個while()迴圈,以指標p所指物件不為空為控制條件,將p所指向的集合元素賦值給x。然後利用查詢函式查詢b中值為x的元素,若查詢成功,則保留指標p所指向的元素,並將p結點賦值給pre,將p的next賦值給p。

若查詢失敗,則將p的next賦值給pre的next,然後釋放p結點,將pre的next賦值給p,這樣就可以完成求集合a和b的交集了。

求a∩b的具體**如下:

void inter_sec(linklist a, linklist b)

else}}

4.2.2 求a∪b

a並b就是a或b中存在的元素,方法是將b中所有不在單鏈表a中的元素都加入到a中。

具體過程應為:定義乙個和集合中元素同型別的資料即datatype x。定義乙個指標變數linklist p,初始p指向b的第乙個結點。

建立乙個while()迴圈以指標p所指物件不為空為控制條件,將p所指向的幾何元素賦值給x。利用查詢函式查詢a中值為x的元素,若查詢成功,將p的next賦值給p。若查詢失敗,利用插入函式將集合b中有而集合a中沒有的元素加入到集合a中,這樣就可以完成求集合a和b的並集了。

具體**如下:

void merge_sec(linklist a, linklist b)

}第五章源**(源**必須給注釋)

求集合a和集合b的交集合

#include

#include

typedef struct node//定義結構體型別指標

lnode,*linklist;

void readdata(linklist head)//定義輸入集合函式

{ linklist p,q;

q=head;

資料結構課程設計報告

交通諮詢系統設計 不用輸入程式語句,也不用那個截圖 不用太著急,報告周五之前給我就行了 列印和壓縮包都要哈!對了,這段文字記得刪掉啊嘿嘿 題目名稱交通諮詢系統設計 院 系 管理學院 課程名稱資料結構課程設計 班級資訊 10 2 學生姓名呂德麗 指導教師李長雲 目錄一 需求分析及選題要求 3 1 問題...

資料結構課程設計報告

課程設計報告 課程名稱資料結構 課題名稱生死者遊戲 專業資訊管理與資訊系統 班級學號 姓名指導教師 2011 年 1 月 20 日 湖南工程學院 課程設計任務書 課程名稱資料結構 課題生死者遊戲 專業班級 學生姓名 學號指導老師 審批任務書下達日期 2011 年 1 月 3 日 任務完成日期 201...

《資料結構》課程設計報告

1.1 要求 1.2 題目分析 1.3相關 1.4執行結果 1.5總結 2.1 要求 2.2 題目分析 2.3相關 2.4執行結果 2.5總結 3.1 要求 3.2 題目分析 3.3相關 3.4執行結果 3.5總結 4.1 要求 4.2 題目分析 4.3相關 4.4執行結果 4.5總結 1 可以錄入...