第4周專案5 多項式求和

2021-07-22 23:15:08 字數 3744 閱讀 2895

問題及**

/*       

*檔名稱:7.cpp

*作 者:王修文

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

*版 本 號:v1.0

*問題描述:演算法庫包括兩個檔案:

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

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

請採用程式的多檔案組織形式,建立如上的兩個檔案,另外再建立乙個原始檔(如main.cpp),編制main函式,完成相關的測試工作。

*輸入描述:無

*程式輸出:新建的雙鏈表

*/

標頭檔案

#include #include //迴圈雙鏈表基本運算函式    

typedef int elemtype;

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

cdlinklist;

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

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

void initlist(cdlinklist *&l); //初始化迴圈雙鏈表

void destroylist(cdlinklist *&l); //銷毀

bool listempty(cdlinklist *l); //判斷是否為空

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

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

bool getelem(cdlinklist *l,int i,elemtype &e); //取鍊錶元素

int locateelem(cdlinklist *l,elemtype e); //查詢元素

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

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

源**

//迴圈雙鏈表基本運算函式    

#include "dlinklist.h"

void createlistf(cdlinklist *&l,elemtype a,int n) //頭插法建立迴圈雙鏈表

s=l->next;

while (s->next!=null) //查詢尾結點,由s指向它

s=s->next;

s->next=l; //尾結點next域指向頭結點

l->prior=s; //頭結點的prior域指向尾結點

}

void createlistr(cdlinklist *&l,elemtype a,int n) //尾插法建立迴圈雙鏈表

r->next=l; //尾結點next域指向頭結點

l->prior=r; //頭結點的prior域指向尾結點

}

void initlist(cdlinklist *&l) //初始化迴圈雙鏈表

void destroylist(cdlinklist *&l) //銷毀

free(p);

}

bool listempty(cdlinklist *l) //判斷是否為空

int listlength(cdlinklist *l) //求鍊錶長度

return(i);

}

void displist(cdlinklist *l) //輸出鍊錶

printf("\n");

}

bool getelem(cdlinklist *l,int i,elemtype &e) //取鍊錶元素

else //i不為1時

if (p==l)

return false;

else

}

}

else //雙鏈表為空表時

return 0;

}

int locateelem(cdlinklist *l,elemtype e) //查詢元素

if (p==null)

return(0);

else

return(n);

}

bool listinsert(cdlinklist *&l,int i,elemtype e) //插入節點

else if (i==1) //原雙鏈表不為空表但i=1時

else

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

return false;

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

}

}

bool listdelete(cdlinklist *&l,int i,elemtype &e) //刪除節點

else //i不為1時

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

return false;

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

}

}

else

return false; //原雙鏈表為空表時

}

main函式
#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;

}

執行結果

知識點總結

通過多檔案組織建立雙鏈表的演算法庫。

學習心得

還是有點不懂啊

第4周專案6 多項式求和

問題及 檔名稱 第4周專案6 多項式求和.cpp 作 者 劉強 完成日期 2015年10月3日 版 本 號 v1.0 問題描述 用單鏈表儲存一元多項式,並實現兩個多項式的加法。輸入描述 若干資料。程式輸出 多項式a,多項式b,有序多項式a,b,相加後的多項式。include include defi...

第4周專案6 多項式求和

問題及 檔名稱 專案6.cpp 作 者 王聰 完成日期 2015年10月5日 版 本 號 v1.0 問題描述 用單鏈表儲存一元多項式,並實現兩個多項式的加法。輸入描述 無 程式輸出 多項式a,多項式b,有序多項式a,b,相加後的多項式。include include define max 20 多項...

第4周專案6 多項式求和

問題及 檔名稱 main.cpp 問題描述 用單鏈表儲存一元多項式,並實現兩個多項式的加法 include include define max 20 多項式最多項數 typedef struct 定義存放多項式的陣列型別 polyarray typedef struct pnode 定義單鏈表結點...