第4周專案4 建立雙鏈表演算法庫

2021-07-22 23:44:37 字數 2809 閱讀 1645

問題及**:

/* 

* 檔名稱:

* 作 者:路亞麗

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

* 版 本 號:v1.0

* * 問題描述: 採用程式的多檔案組織形式建立雙鏈表演算法庫

* 輸入描述:無

* 程式輸出:

*/

dlinklist.h:

#ifndef dlinklist_h_included

#define dlinklist_h_included

typedef int elemtype;

typedef struct dnode //定義雙鏈表結點型別

dlinklist;

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

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

void initlist(dlinklist *&l); //初始化雙鏈表

void destroylist(dlinklist *&l); //銷毀雙鏈表

bool listempty(dlinklist *l); //判斷鍊錶是否為空

int listlength(dlinklist *l); //求鍊錶的長度

void displist(dlinklist *l); //輸出鍊錶

bool getelem(dlinklist *l,int i,elemtype &e); //獲取節點的值

int locateelem(dlinklist *l,elemtype e); //查詢乙個節點

bool listinsert(dlinklist *&l,int i,elemtype e) ;//插入乙個節點

bool listdelete(dlinklist *&l,int i,elemtype &e); //刪除乙個節點

#endif // dlinklist_h_included

dlinklist.cpp:

#include #include #include "dlinklist.h"

void createlistf(dlinklist *&l,elemtype a,int n)

//頭插法建雙鏈表

}void createlistr(dlinklist *&l,elemtype a,int n)

//尾插法建雙鏈表

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

}void initlist(dlinklist *&l)

void destroylist(dlinklist *&l)

free(p);

}bool listempty(dlinklist *l)

int listlength(dlinklist *l)

return(i);

}void displist(dlinklist *l)

printf("\n");

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

if (p==null)

return false;

else

}int locateelem(dlinklist *l,elemtype e)

if (p==null)

return(0);

else

return(n);

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

if (p==null) //未找到第i-1個結點

return false;

else //找到第i-1個結點*p

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

if (p==null) //未找到第i-1個結點

return false;

else //找到第i-1個結點*p

}

main.cpp:

#include #include "dlinklist.h"

#include int main()

; initlist(a);

createlistf(a, a, 10);

printf("鍊錶a:");

displist(a);

printf("length: %d\n", listlength(a));

listdelete(a,2,e);

printf("after delete a: ");

displist(a);

listinsert(a, 4, 11);

printf("after insert a: ");

displist(a);

destroylist(a);

return 0;

}

執行結果:

知識點總結:

多檔案形式演算法庫的建立

雙鏈表的基本操作

學習心得:

通過這幾次對演算法庫的建立,多檔案形式已經熟練。

雙鏈表的基本操作還需熟悉,鞏固。

第4周專案4 建立雙鏈表演算法庫

檔名稱 建立雙鏈表演算法庫.cpp 作 者 孟琪琪 完成日期 2016年 9月 23日 並建設自己的專業基礎設施演算法庫 輸入描述 無 輸出描述 輸出插入資料後的逆序 標頭檔案dlinklist.h ifndef dlinklist h included define dlinklist h inc...

第4周專案4 建設雙鏈表演算法庫

檔名稱 專案1.cpp 作 者 王婧 完成日期 2016年9月20日 版 本 號 v1.0 問題描述 演算法庫包括兩個檔案 標頭檔案 dlinklist.h,包含定義順序表資料結構的 巨集定義 要實現演算法的函式的宣告 原始檔 dlinklist.cpp,包含實現各種演算法的函式的定義 請採用程式的...

第4周 專案2 建立「單鏈表」演算法庫

問題描述及 煙台大學計控學院 作 者 楊徵 完成日期 2015年9月21日 問題描述 演算法庫包括兩個檔案 標頭檔案 linklist.h,包含定義順序表資料結構的 巨集定義 要實現演算法的函式的宣告 原始檔 linklist.cpp,包含實現各種演算法的函式的定義 請採用程式的多檔案組織形式,建立...