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

2021-07-22 18:31:47 字數 2969 閱讀 1890

/*   

*檔名稱:順序表的基本運算.cpp

*作 者:田藝

*完成日期:2023年9月21日

*版 本 號:v1.0

*

*問題描述:實現順序表基本運算有演算法,依據「最小化」的原則進行測試。所謂最小化

原則,指的是利用盡可能少的基本運算,組成乙個程式,並設計main函式

完成測試。

*輸入描述:無

*程式輸出:依據各個函式而定

*/

**:

#ifndef list_h_included

#define list_h_included

#include #include #define maxsize 50

typedef int elemtype;

typedef struct

sqlist;

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

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

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

#endif

//測試函式

int main()

; createlist(sq, x, 8);//最後為0則是空表

if((listempty(sq))>0) //測試不能找到的情形

printf("是空表\n");

else

printf("不是空表\n");

displist(sq);

return 0;

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

//用陣列建立線性表

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

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

bool listempty(sqlist *l)

//輸出線性表displist(l)

void displist(sqlist *l)

執行結果:

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

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

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

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

void destroylist(sqlist *&l);

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

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

#endif

//測試函式

int main()

//定義各個自定義函式

//輸出線性表displist(l)

void displist(sqlist *l)

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

bool listempty(sqlist *l)

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

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

//銷毀線性表destroylist(l)

void destroylist(sqlist *&l)

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

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

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

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

{ int j;

if (i<1 || i>l->length) //引數錯誤時返回false

return false;

i--; //將順序表邏輯序號轉化為物理序號

e=l->data[i];

for (j=i; jlength-1; j++) //將data[i..n-1]元素前移

l->data[j]=l->data[j+1];

l->length--; //順序表長度減1

return true; //成功刪除返回true

知識點總結:

這個專案讓我們對線性表演算法庫有了個從簡到繁的乙個系統的認識,演算法庫對於我們認識學習演算法有非常大的幫助,以後做成標頭檔案用起來會更順手。

學習心得:

這個專案剛剛開始對我來說比較吃力,感覺繁瑣,再加上以前對鍊錶就有些理解不透徹,所以剛開始有點無從下手。但是只要付出時間和精力,一定會有收穫。



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

檔名稱 cpp.cpp 作者 王超 完成日期 2015.9.18 問題描述 順序表的基本運算 include include define maxsize 50 typedef int elemtype typedef struct sqlist void createlist sqlist l,e...

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

問題及 檔名稱 test.cpp 作 者 馬笑媛 完成日期 2015.9.16 版 本 號 v1.0 問題描述 目的是要測試建立線性表的演算法。包括求線性表的長度,求線性表中指定位置的某個元素 查詢元素 插入資料元素 刪除資料元素 初始化線性表 銷毀線性表。include include defin...

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

問題及 檔名稱 順序表的基本運算 完成日期 2015年9月18日 輸入描述 線性表 程式輸出 測試結果 1 include include define maxsize 50 maxsize將用於後面定義儲存空間的大小 typedef int elemtype elemtype在不同場合可以根據問題...