第四周專案二 建設單鏈表演算法庫

2021-08-09 06:09:42 字數 2369 閱讀 5102

單鏈表演算法庫演算法庫採用程式的多檔案組織形式,包括兩個檔案: 

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

#ifndef linklist_h_included

#define linklist_h_included

typedef int elemtype;

typedef struct lnode //定義單鏈表結點型別

linklist;

void createlistf(linklist *&l,elemtype a,int n);//頭插法建立單鏈表

void createlistr(linklist *&l,elemtype a,int n);//尾插法建立單鏈表

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

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

bool listempty(linklist *l); //判斷線性表是否為空

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

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

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

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

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

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

#endif // linklist_h_included

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

#include #include #include "linklist.h"

void createlistf(linklist *&l,elemtype a,int n)//頭插法建立單鏈表

}void createlistr(linklist *&l,elemtype a,int n)//尾插法建立單鏈表

r->next=null; //終端結點next域置為null

}void initlist(linklist *&l)

void destroylist(linklist *&l)

free(p); //此時q為null,p指向尾結點,釋放它

}bool listempty(linklist *l)

int listlength(linklist *l)

return(i);

}void displist(linklist *l)

printf("\n");

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

if (p==null) //不存在第i個資料結點

return false;

else //存在第i個資料結點

}int locateelem(linklist *l,elemtype e)

if (p==null)

return(0);

else

return(n);

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

if (p==null) //未找到位序為i-1的結點

return false;

else //找到位序為i-1的結點*p

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

if (p==null) //未找到位序為i-1的結點

return false;

else //找到位序為i-1的結點*p

}

3.在建立演算法庫過程中,為了完成測試,再同一專案(project)中建立乙個原始檔(如main.cpp),編制main函式,完成相關的測試工作。 

測試工作可以採用「漸進」的思路,每次涉及的函式應該盡可能少。 

例如,首先設計測試函式,可以涉及初始化線性表、銷毀線性表、輸出線性表、插入資料元素對應的函式,設計的測試函式可以是:

#include "linklist.h"

int main()

第四周專案二 建設「單鏈表」演算法庫

煙台大學計算機學院 檔名稱 main.cpp ti.cpp head.cpp 完成日期 2017年9月23日 問題描述 第四周專案二 建設 單鏈表 演算法庫 輸入描述 無 輸出描述 無 include include include include head.h using namespace st...

第四周 專案二 建設「單鏈表」演算法庫

all right reserved.檔名稱 main.cpp 完成日期 2017年9月27日 版本號 v1.0 問題描述 建設單鏈表演算法庫 輸入描述 標準函式輸入 程式輸出 標準函式輸出 演算法庫包括兩個檔案 1.標頭檔案 linklist.h,包含定義順序表資料結構的 巨集定義 要實現演算法的...

第四周專案 建設「單鏈表」演算法庫

原始檔 include include include linklist.h void createlistf linklist l,elemtype a,int n 頭插法建立單鏈表 void createlistr linklist l,elemtype a,int n 尾插法建立單鏈表 r n...