第三週 順序表的基本運算

2021-07-05 07:04:56 字數 2811 閱讀 3324

問題及**:

/*2015,煙台大學計算機與控制工程學院

*問題描述:(1)目的是要測試「建立線性表」的演算法createlist,為檢視建表的結果,需要實現「輸出線性表」的演算法displist。在研習displist中發現,要輸出線性表,還要判斷表是否為空,這樣,實現判斷線性表是否為空的演算法listempty成為必要。這樣,再加上main函式,這個程式由4個函式構成。main函式用於寫測試相關的**。

程式的結構如下所示:

#include <....> //必要的庫檔案包括

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

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

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

int mian()

//定義各個自定義函式1

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

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

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

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

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

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

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

*輸入描述:無

*輸出描述:線性表的長度,某個元素的位置,查詢某個元素

*/

(1)標頭檔案

#include #include #define maxsize 50

typedef int elemtype;

typedef struct

sqlist;

void createlist(sqlist *&l,elemtype a,int n);//建立線性表

bool listempty(sqlist *l);//判斷線性表是否為空

void displist(sqlist *l);//輸出線性表

int listlength(sqlist *l);//求線性表的長度

bool getelem(sqlist *l,int i,elemtype &e);//求線性表中某個資料元素的值

int locateelem(sqlist *l,elemtype e);//按元素值查詢

(2)原始檔—:

#include "touwenjian.h"

//建立順序表

void createlist(sqlist *&l,elemtype a,int n)

//判斷線性表是否為空表

bool listempty(sqlist *l)

//輸出線性表

void displist(sqlist *l)

//求線性表的長度

int listlength(sqlist *l)

//求線性表l中指定位置的某個資料元素

bool getelem(sqlist *l,int i,elemtype &e)

//查詢元素

int locateelem(sqlist *l,elemtype e)

(3)源程式二:

#include "touwenjian.h"

int main()

; elemtype a;

int loc;

createlist(sq, x, 6);

displist(sq);

printf("表長度:%d\n", listlength(sq)); //測試求長度

if(getelem(sq, 3, a)) //測試在範圍內的情形

printf("找到了第3個元素值為:%d\n", a);

else

printf("第3個元素超出範圍!\n");

if(getelem(sq, 15, a)) //測試不在範圍內的情形

printf("找到了第15個元素值為:%d\n", a);

else

printf("第15個元素超出範圍!\n");

if((loc=locateelem(sq, 2))>0) //測試能找到的情形

printf("找到了,值為8的元素是第 %d 個\n", loc);

else

printf("值為8的元素木有找到!\n");

if((loc=locateelem(sq, 17))>0) //測試不能找到的情形

printf("找到了,值為17的元素是第 %d 個\n", loc);

else

printf("值為17的元素木有找到!\n");

return 0;

}

執行結果:

知識點總結:

通過對線性表的順序儲存結構的學習,掌握了順序表基本運算的實現,也了解了對指標的引用。

學習心得:

對順序的基本運算的實現,掌握的不好,還須多多上機實踐。

第三週 順序表的基本運算

all right reserved.檔名稱 creat2.cpp 作 者 姜延鍇 完成日期 2016年9月14日 版 本 號 v1.9 問題描述 實現順序表基本運算有演算法,依據 最小化 的原則進行測試。所謂最小化 原則,指的是利用盡可能少的基本運算,組成乙個程式,並設計main函式 完成測試。輸...

第三週 順序表的基本運算2

檔名稱 test.cpp 完成日期 2015年9月14日 版本號 v1.0 問題描述 實現順序表基本運算,插入資料元素listinsert 刪除資料元素listdelete 初始化線性表initlist 銷毀線性表destroylist。include include define maxsize ...

第三週實踐專案 順序表的基本運算

1 目的是要測試 建立線性表 的演算法createlist,為檢視建表的結果,需要實現 輸出線性表 的演算法displist。在研習displist中發現,要輸出線性表,還要判斷表是否為空,這樣,實現判斷線性表是否為空的演算法listempty成為必要。這樣,再加上main函式,這個程式由4個函式構...