第三週 專案二 建設「順序表」演算法庫

2021-07-22 18:52:33 字數 3067 閱讀 3585

問題描述及**:

/*  

*檔名稱:123.cpp

*完成日期:2016.9.16

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

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

*/

1.list.h的**

#include#include#define maxsize 50  

typedef int elemtype;

typedef struct

sqlist;

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

void initlist(sqlist *&l);//初始化線性表initlist(l)

void destroylist(sqlist *&l);//銷毀線性表destroylist(l)

bool listempty(sqlist *l);//判定是否為空表listempty(l)

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

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

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

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

bool listinsert(sqlist *&l,int i,elemtype e);//插入資料元素listinsert(l,i,e)

bool listdelete(sqlist *&l,int i,elemtype &e);//刪除資料元素listdelete(l,i,e)

2.list.cpp的**

#include "list.h"  

//用陣列建立線性表

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

//初始化線性表initlist(l)

void initlist(sqlist *&l) //引用型指標

//銷毀線性表destroylist(l)

void destroylist(sqlist *&l)

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

bool listempty(sqlist *l)

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

int listlength(sqlist *l)

//輸出線性表displist(l)

void displist(sqlist *l)

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

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

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

int locateelem(sqlist *l, elemtype e)

//插入資料元素listinsert(l,i,e)

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

//刪除資料元素listdelete(l,i,e)

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

3.各種main的測試函式的**

(1)測試「建立線性表」的演算法createlist,為檢視建表的結果,需要實現「輸出線性表」的演算法displist。

int main()  

; createlist(sq,x,6);

dislist (sq);

return 0;

}

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

int main()  

; elemtype a;

int loc;

createlist(sq, x, 6);

dislist(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, 8))>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;

}

(3)插入資料元素listinsert、刪除資料元素listdelete、初始化線性表initlist、銷毀線性表destroylist

int main()  

第三週專案二 建設「順序表」演算法庫

檔名稱 aa 作 者 申鵬鵬 完成日期 2016年9月17日 問題描述 本文為演算法庫中的第乙個,針對線性表中的順序儲存結構,實現各種基本運算。演算法庫包括兩個檔案 標頭檔案 list.h,包含定義順序表資料結構的 巨集定義 要實現演算法的函式的宣告 原始檔 list.cpp,包含實現各種演算法的函...

第三週 專案二 建設「順序表」演算法庫

檔名稱 llh.cpp 作 者 李良涵 完成日期 2016年9月18日 版 本 號 v1.0 問題描述 建立順序表的演算法庫 輸入描述 無 程式輸出 依據各個函式而定 問題及 main.cpp include list.h int main createlist sq,x,6 displist sq...

第三週專案二 建設「順序表」演算法庫

all rights reservrd.版本號 v1.0 輸入描述 無 程式輸出 依據各個函式而定 list.h ifndef list h included define list h included define maxsize 50 typedef int elemtype typedef ...