写一个程序用C语言链表表示一元多项式
时间: 2024-10-14 07:11:29 浏览: 39
一元多项式的相乘(C链表实现).
在C语言中,我们可以创建一个简单的链表结构来表示一元多项式。每个节点可以存储一个系数和一个表示变量指数的整数。下面是一个基本的实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
typedef struct Term {
int coefficient; // 系数
int exponent; // 指数
struct Term* next; // 指向下一个项的指针
} Term;
// 创建新的链表项
Term* createTerm(int c, int e) {
Term* new_term = (Term*)malloc(sizeof(Term));
if (new_term == NULL) {
printf("Memory allocation failed.\n");
return NULL;
}
new_term->coefficient = c;
new_term->exponent = e;
new_term->next = NULL;
return new_term;
}
// 添加项到多项式
void addTerm(Term** poly, int c, int e) {
Term* current = *poly;
Term* new_term = createTerm(c, e);
if (*poly == NULL) {
*poly = new_term;
} else {
while (current->next != NULL) {
current = current->next;
}
current->next = new_term;
}
}
// 打印多项式
void printPolynomial(Term* poly) {
Term* temp = poly;
while (temp != NULL) {
printf("%d*x^%d ", temp->coefficient, temp->exponent);
temp = temp->next;
}
printf("\n");
}
int main() {
Term* polynomial = NULL;
// 示例:添加一些项到多项式
addTerm(&polynomial, 5, 0); // 5x^0
addTerm(&polynomial, -3, 1); // -3x^1
addTerm(&polynomial, 2, 2); // 2x^2
// 打印多项式
printPolynomial(polynomial);
return 0;
}
```
在这个例子中,`createTerm`用于创建新项,`addTerm`将项添加到链表尾部,并且`printPolynomial`用于打印多项式的各项。在`main`函数中,我们演示了如何初始化链表并添加几个项。
阅读全文