/*
單鏈表的應用舉例;
採用單鏈表儲存,則每乙個非零項對應單鏈表中的乙個節點,
且單鏈表應按指數遞增序列排列。為了節省空間只儲存非零項。
其中: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 插入並排序一元多項式 ...