数据结构 一元多项式求值 
时间: 2023-05-20 12:03:44 浏览: 50
对于一元多项式求值,我们可以使用链表来存储多项式的系数和指数,然后遍历链表,根据指数和给定的值计算出多项式的值。具体实现可以参考以下代码:
```
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
int coef; // 系数
int exp; // 指数
struct node *next; // 指向下一个节点的指针
} Node;
// 创建一个新节点
Node *create_node(int coef, int exp) {
Node *new_node = (Node *)malloc(sizeof(Node));
new_node->coef = coef;
new_node->exp = exp;
new_node->next = NULL;
return new_node;
}
// 向链表中插入一个节点
void insert_node(Node **head, int coef, int exp) {
Node *new_node = create_node(coef, exp);
if (*head == NULL) {
*head = new_node;
} else {
Node *p = *head;
while (p->next != NULL) {
p = p->next;
}
p->next = new_node;
}
}
// 计算多项式的值
int evaluate_poly(Node *head, int x) {
int result = 0;
Node *p = head;
while (p != NULL) {
result += p->coef * pow(x, p->exp);
p = p->next;
}
return result;
}
int main() {
Node *head = NULL;
insert_node(&head, 2, 3);
insert_node(&head, 3, 2);
insert_node(&head, 4, 1);
insert_node(&head, 5, 0);
int x = 2;
int result = evaluate_poly(head, x);
printf("The result of the polynomial when x=%d is %d\n", x, result);
return 0;
}
```
这段代码实现了一个简单的一元多项式求值程序,使用了链表来存储多项式的系数和指数。我们可以通过插入节点来构建多项式,然后调用 evaluate_poly 函数来计算多项式的值。
相关推荐
















