第3周專案1 2 順序表的基本運算

2021-08-08 04:58:38 字數 2486 閱讀 1653

問題及**:

/* 

* 檔名稱:cpp1.

* 作 者:薛瑞琪

* 完成日期:2017 年 9 月 13 日

* 版 本 號:v1.0

* * 問題描述:在已經建立線性表的基礎上,求線性表的長度listlength、求線性表l中指定位置的某個資料元素getelem、查詢元素locateelem的演算法都可以實現了。

就在原程式的基礎上增加:

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

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

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

* 輸入描述:無需輸入

* 程式輸出:1.建表的結果

2.表的長度length

3.表中指定位置的某個資料的元素值:位置在範圍內則返回相應的元素值,超出則false

4.按元素值查詢:存在相同的元素值則返回邏輯序號,否則false

*/

#include #include //必要的庫檔案包括

#define maxsize 50 //必要的巨集定義

typedef int elemtype; //elemtype在不同場合可以根據問題的需要確定,在此取簡單的int

typedef struct

sqlist;

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

void displist(sqlist *l);

bool listempty(sqlist *l);

int listlength(sqlist *l);

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

int locateelem(sqlist *l, elemtype e);

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

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

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個元素超出範圍,false!\n");

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

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

else

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

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

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

else

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

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

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

else

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

return 0;

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

//用陣列建立線性表

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

//輸出線性表displist(l)

void displist(sqlist *l)

//判定是否為空表listempty(l)

bool listempty(sqlist *l)

//求線性表的長度listlength(l)

int listlength(sqlist *l)

//求某個資料元素值getelem(l,i,e)

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

//按元素值查詢locateelem(l,e)

int locateelem(sqlist *l, elemtype e)

執行結果:

知識點總結:

線性表的建立creatlist,線性表的輸出displist,判斷線性表是否為空listempty,求線性表的長度listlength,

求線性表l中指定位置的某個資料元素getelem,查詢元素locateelem

學習心得:

雖然**是copy來的,但是如老師所說抄亦有道,節省時間的同時,加強對**的理解和運用。

第3周專案1(3) 順序表基本運算

檔名稱 dsitem3 1.cpp 作 者 於子淇 完成日期 2017年9月14日 版 本 號 visual c 6.0 問題描述 領會 0207將演算法變程式 部分建議的方法,將順序表部分的演算法變成程式。依據 最小化 的原則進行測試。所謂最小化原則,指的是利用盡可能少的基本運算,組成乙個程式,並...

第3周專案1(1) 順序表的基本運算

all rights reserved.檔名稱 dsitem3 1.cpp 作 者 於子淇 完成日期 2017年9月14日 版 本 號 visual c 6.0 問題描述 領會 0207將演算法變程式 部分建議的方法,將順序表部分的演算法變成程式。依據 最小化 的原則進行測試。所謂最小化原則,指的是...

第3周 專案1 順序表的基本運算

all right reserved.檔名稱 20170920.cpp 完成日期 2017年9月20日 版本號 v1.1 問題描述 實現順序表基本運算有演算法,依據 最小化 的原則進行測試 輸入描述 建立線性表 程式輸出 輸出線性表 1 測試 建立線性表 的演算法createlist,為檢視建表的結...