處理好指標的問題。
當某a鍊錶某項指數大於b鍊錶某項指數時,將b項插入到a鍊錶。
當a鍊錶某項小於b鏈某項指數,將a鍊錶指標指向下一項。
當a項等於b項時,將他們的係數相加,如果係數和為0,將a鏈和b鏈的項都刪除。否則,刪除該b項。
這裡是將結果直接存放到a鍊錶,如果新建乙個鍊錶來儲存可能會更簡單些。
/*
* polyadd.c
* * created on: 2013/07/21
* author: administrator
*/#include #include #include #define ele_type int
typedef struct polyex polyex;
void init(polyex *elem)
void destroy(polyex *elem)
}void addelem(polyex *poly, int coef, int ex)
newnode = (polyex*)malloc(sizeof(polyex));
newnode->coef = coef;
newnode->ex = ex;
newnode->next = p;
poly->next = newnode;
}void printpolyex(polyex *ex)
} printf("\n");
}void addmerge(polyex *ex1, polyex *ex2)
else if(p1->ex < p2->ex)
else
else
} }if(p2)
}void submerge(polyex *ex1, polyex *ex2)
addmerge(ex1, ex2);
}int main(int argc, char* argv)
printf("ex1:\n");
printpolyex(&ex1);
for(i = n2; i > 0; i--)
printf("ex2:\n");
printpolyex(&ex2);
addmerge(&ex1, &ex2);
printf("after add:\n");
printpolyex(&ex1);
for(i = n2; i > 1; i--)
printf("ex2:\n");
printpolyex(&ex2);
submerge(&ex1, &ex2);
printf("ater sub:\n");
printpolyex(&ex1);
destroy(&ex1);
destroy(&ex2);
}
DS 一元多項式的求和
題目描述 乙個一元多項式可以看作由若干個一元單項式按降冪排列成的線性表。請編寫程式對輸入的兩個一元多項式求和,並輸出求和的結果。輸入輸入為兩個一元多項式,每個一元多項式輸入一行,按照降冪依次輸入每個單項式的係數和指數,並以 1 1作為結束。係數和指數均為整數,指數不小於0。輸出輸出為求和結果多項式,...
一元多項式
一元多項式 功能 1 求解2個一元多項式的和 2 求解2個一元多項式的差 3 列印一元多項式 注 3 這個本來不算是乙個功能,但是發現列印一元多項式的時候問題很多。例如 1x應該列印成 x,x 0不應該應該列印出來 1.結點的定義 typedef struct polynomial polynomi...
一元多項式
include include using namespace std 定義結構體 typedef struct polynode polynode,polylist 建立關於多項式結構體的單鏈表,以係數0結束輸入 polylist polycreate 尾插法建立單鏈表 rear next nul...