問題及**:
(1)標頭檔案/*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都可以同法完成,請自行安排實踐路線。
*輸入描述:無
*輸出描述:線性表的長度,某個元素的位置,查詢某個元素
*/
(2)原始檔—:#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);//按元素值查詢
(3)源程式二:#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)
執行結果:#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個函式構...