/*
* 檔名稱:test.cpp
* 完成日期:2023年10月9日
* 版本號:vc++6.0
* 問題描述:建設雙鏈表演算法庫。
*/
1.標頭檔案: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
2.原始檔: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
}
3.在建立演算法庫過程中,為了完成測試,再同一專案(project)中建立乙個原始檔(如main.cpp),編制main函式,完成相關的測試工作。測試工作可以採用「漸進」的思路,每次涉及的函式應該盡可能少。
#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;
}
執行結果:
知識點總結:
學會了如何建立雙鏈表演算法庫。
學習心得:
在長時間練習下,我覺得程式設計越來越得心應手了。
第四周專案四 建設雙鏈表演算法庫
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...
第四周專案4 建設雙鏈表演算法庫
include include typedef int elemtype typedef struct dnode 定義雙鏈表結點型別 dlinklist void createlistf dlinklist l,elemtype a,int n 頭插法建雙鏈表 void createlistr d...