第三週專案2 建立順序表的演算法庫

2021-07-05 14:34:16 字數 2008 閱讀 5086

/*    

檔名稱:專案2--建設「順序表」演算法庫.cpp

作 者:孫欽達

完成日期:2023年10月5日

版 本 號:v1.0

問題描述: 領會「0207將演算法變程式」部分建議的方法,建設自己的專業基礎設施演算法庫。

這一周,建的是順序表的演算法庫。演算法庫包括兩個檔案:

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

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

請採用程式的多檔案組織形式,在專案1的基礎上,建立如上的兩個檔案,另外再建立乙個原始檔,

編制main函式,完成相關的測試工作。請完成後,發布博文,展示你的實踐成果。

輸入描述: 若干資料 。

程式輸出: 1.線性表的長度。

2.第3個元素及其值的大小。

3.8在表中的第幾位。

#include #include #define maxsize 50    //maxsize將用於後面定義儲存空間的大小

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

typedef struct

sqlist;

//宣告自定義函式

void initlist(sqlist *&l); //初始化順序表

void listinsert(sqlist *l,int i,int b); //插入函式

void displist(sqlist *l); //輸出函式

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

void destroylist(sqlist *l);//釋放線性表l占用的記憶體空間

int listdelete(sqlist *, int , int &);

bool listempty(sqlist *l);

int listlength(sqlist *l);

int locateelem(sqlist *l, elemtype e);

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

#include"list.h"

//輸出線性表displist(l)

void displist(sqlist *l)

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

bool listempty(sqlist *l)

//初始化順序表initlist(*l)

void initlist(sqlist *&l)

void listinsert(sqlist *l,int i,int b) //插入函式

i=i-1;

if(l->length==0)

else

l->data[i]=b;

l->length++; }}

void destroylist(sqlist *l)

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

l->length--;

}return e;

}int listlength(sqlist *l)

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

int locateelem(sqlist *l, elemtype e)

if(i>=l->length)

return i+1;

}

執行結果:

知識點總結:

多檔案的處理,線性表的應用以及演算法庫的建立。

第三週專案2 建立「順序表」演算法庫

1 標頭檔案 list.h cpp view plaincopyprint?01.include 02.include 03.04.define maxsize 50 maxsize將用於後面定義儲存空間的大小 05.typedef int elemtype elemtype在不同場合可以根據問題的...

第三週專案2 建立「順序表」演算法庫

問題及 01.04.檔名稱 a.cpp 06.完成日期 2016.9.17 08.標頭檔案 list.h,包含定義順序表資料結構的 巨集定義 要實現演算法的函式的宣告 09.原始檔 list.cpp,包含實現各種演算法的函式的定義 10.1.list.h的 include02.include03.d...

第三週專案2 建立順序表的演算法庫

檔名稱 w.cpp 作 者 武昊 完成日期 2016年9月18日 版 本 號 v1.0 問題描述 請採用程式的多檔案組織形式,在專案1的基礎上,建立 如上的兩個檔案,另外再建立乙個原始檔,編制main函 數,完成相關的測試工作。輸入描述 無 程式輸出 資料 list.h define maxsize...