一元多項式求和演算法(單鏈表實現)

2021-06-14 06:24:20 字數 923 閱讀 7676

/*

單鏈表的應用舉例;

採用單鏈表儲存,則每乙個非零項對應單鏈表中的乙個節點,

且單鏈表應按指數遞增序列排列。為了節省空間只儲存非零項。

其中:eof為係數域,存放非零項的係數

exp為指數域,存放非零項的指數

next為指標域,存放下一結點的指標

*//*

偽**:

1. 工作指標pre,p,qre,,q初始;

2.while(p存在且q存在)執行下列三種情形之一

2.1如果p->exp小於q->exp則指標後移;

2.2如果指指標p->exp大於q->exp則:

2.2.1指標q插入到結點p之前;

2.2.1指標q指向原直結點的下乙個節點

2.3如果p->exp等於exp,則

2.3.1 p->coef=p->coef+q->coef;

2.3.2 如果p->cofg=0,則執行下列操作,否則,指標p後移;

2.3.1.1 刪除結點

2.3.1.2 使指標p指向他的原結點的下乙個節點

2.3.3刪除結點q;

2,3.使指標q指向它源節點的下乙個結點

3.如果q不為空,將結點q連線在第乙個單鏈表的後面;

*/struct elem

//一元多項式求和演算法

void add(linklist&a,linklistb)

else if(p->expexp)elseelse

qre->next=q->next;

delete q;

q=qre->next;

} }if(q!=null)pre->next=q;//將結點連線在第乙個單鏈表的後面

delete b.first;//釋放第二個單鏈表的頭結點所佔的記憶體

}

一元多項式求和

處理好指標的問題。當某a鍊錶某項指數大於b鍊錶某項指數時,將b項插入到a鍊錶。當a鍊錶某項小於b鏈某項指數,將a鍊錶指標指向下一項。當a項等於b項時,將他們的係數相加,如果係數和為0,將a鏈和b鏈的項都刪除。否則,刪除該b項。這裡是將結果直接存放到a鍊錶,如果新建乙個鍊錶來儲存可能會更簡單些。pol...

單鏈表應用 一元多項式

單鏈表應用 一元多項式 問題描述 編寫乙個程式用單鏈表儲存多項式,並實現兩個一元多項式a與b相加的函式。a,b剛開始是公升序的,a與b之和按降序排列。例如 多項式a 1.2x 0 2.5x 1 3.2x 3 2.5x 5 多項式b 1.2x 0 2.5x 1 3.2x 3 2.5x 5 5.4x 1...

實現一元多項式

1 利用鍊錶的方式給輸入的項邊插入排序邊進行合併同類項 2 include3 include4 5struct function 一元多項式6 1112 struct function insert struct function head,struct function p 插入並排序一元多項式 ...