第四周 專案四 建設雙鏈表演算法庫(選做)

2021-08-08 21:37:57 字數 2715 閱讀 2297

/*

* 檔名稱:a

* 作    者:張翠平

* 完成日期:2017 年 9 月 29 日

* 版 本 號:v1.0

** 問題描述:建設雙鏈表演算法庫

* 輸入描述:無

* 程式輸出:

*/問題**:

dinklist.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

linklist.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"

int main()

; initlist(a);

createlistf(a, a, 10);

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

listinsert(a, 4, 12);

printf("after insert: ");

displist(a);

destroylist(a);

return 0;

}

執行結果:

知識點總結;

好好運用多檔案組織,雙鏈表的建立和單鏈表的建立執行操作類似。

心得體會;

多思考,勤總結。

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

檔名稱 test.cpp 完成日期 2015年10月9日 版本號 vc 6.0 問題描述 建設雙鏈表演算法庫。1.標頭檔案 dlinklist.h,包含定義雙鏈表資料結構的 巨集定義 要實現演算法的函式的宣告 ifndef dlinklist h included define dlinklist ...

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

1.標頭檔案 cdlinklist.h,包含定義雙鏈表資料結構的 巨集定義 要實現演算法的函式的宣告 迴圈雙鏈表基本運算函式 typedef int elemtype typedef struct dnode 定義雙鏈表結點型別 cdlinklist void createlistf cdlinkl...

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

檔名稱 dlinklist.cpp,main.cpp,dlinklist.h 完成日期 2015年10月5日 版本號 codeblocks 問題描述 建立雙鏈表演算法庫演算法庫採用程式的多檔案組織形式 輸入描述 無 程式輸出 演算法的結果。ifndef dlinklist h included de...