資料結構實踐專案 順序表

2021-09-23 17:41:37 字數 1453 閱讀 3176

本組專案針對《資料結構基礎系列(2):線性表》課程第1-7節

1. 導學

2. 線性表的邏輯結構與基本運算

3. 線性表的順序儲存結構

4. 建立線性表的實現(暨引數型別的討論)

5. 順序表基本運算的實現

6. 線性表順序儲存的應用

7. 實踐指導:用程式實踐演算法

#include

<

....

>

//必要的庫檔案包括

#define

...//必要的巨集定義

//宣告實現演算法的自定義函式,以及其他必要的自定義函式

//定義用於驅動測試的main函式

int main()

//定義各個自定義函式

若在上面的指導性提示基礎上還難於下手,請到課程主頁,找到相關鏈結,觀摩後再做。

切記:(1)無從下手時,要找到參考,這是要「借力」;(2)找到參考,並未解決問題,觀摩之後,丟開參考,自行完成,這是根本的目標。用這樣的「抄之有道」,抄來的在心裡,最終的成果,來自你的心中、腦中和手中。

(2)在已經建立線性表的基礎上,求線性表的長度listlength、求線性表l中指定位置的某個資料元素getelem、查詢元素locateelem的演算法都可以實現了。就在原程式的基礎上增加:

增加求線性表的長度listlength的函式並測試;

增加求線性表l中指定位置的某個資料元素getelem的函式並測試;

增加查詢元素locateelem的函式並測試;

(3)其餘的4個基本運算:插入資料元素listinsert、刪除資料元素listdelete、初始化線性表initlist、銷毀線性表destroylist都可以同法完成,請自行安排實踐路線。

請完成後,發布博文,展示你的實踐成果。

[參考解答]

【專案2 - 建設「順序表」演算法庫】

領會「0207將演算法變程式」部分建議的方法,建設自己的專業基礎設施演算法庫。這一周,建的是順序表的演算法庫。

演算法庫包括兩個檔案:

標頭檔案:list.h,包含定義順序表資料結構的**、巨集定義、要實現演算法的函式的宣告;

原始檔:list.cpp,包含實現各種演算法的函式的定義

請採用程式的多檔案組織形式,在專案1的基礎上,建立如上的兩個檔案,另外再建立乙個原始檔,編制main函式,完成相關的測試工作。

請完成後,發布博文,展示你的實踐成果。

[參考解答]  

請完成後,發布博文,展示你的實踐成果。

[參考解答]

【專案4 - 順序表應用】

定義乙個採用順序結構儲存的線性表,設計演算法完成下面的工作:

1、刪除元素在[x, y]之間的所有元素,要求演算法的時間複雜度為o(n),空間複雜度為o(1);

2、將所在奇數移到所有偶數的前面,要求演算法的時間複雜度為o(n),空間複雜度為o(1)。

資料結構實踐專案 鍊錶

本組專案針對 資料結構基礎系列 2 線性表 課程第8 15節 8.線性表的鏈式儲存 9.建立單鏈表 10.單鏈表基本操作的實現 11.單鏈表應用舉例 12.雙鏈表 13.迴圈鍊錶 14.線性表的應用 15.有序表 專案1 建立單鏈表 定義單鏈表儲存結構,用頭插法和尾插法建立單鏈表,並顯示建立好以後的...

資料結構實踐 順序表應用(2)

檔名稱 main.cpp,list.cpp,list.h 完成日期 2015年9月21日 版本號 vc 6.0 include include define maxsize 50 typedef int elemtype typedef struct sqlist void createlist s...

資料結構 順序表

順序表的特徵 1由唯一的表名標識 2佔據一塊連續的儲存空間 3資料順序存放,元素之間有先後關係 定義動態的順序表 define maxsize 100 typedef struct sqlist 這個結構體型別存放的是順序表的資訊和順序表的資料 初始化順序表 void initsqlist sqli...