c语言结构 创建多项式链表
时间: 2024-09-27 22:02:12 浏览: 24
在C语言中,可以使用结构体(struct)创建一个多项式链表来表示一个多项式。首先,我们定义一个`Term`结构体,它包含系数(coefficient)和指数(exponent):
```c
typedef struct Term {
int coefficient;
int exponent;
} Term;
```
接着,我们需要定义一个`PolynomialNode`结构体,它代表多项式链表的一个节点,包含一个`Term`数据和指向下一个节点的指针:
```c
typedef struct PolynomialNode {
Term term;
struct PolynomialNode* next;
} PolynomialNode;
```
为了创建多项式链表,我们可以定义一个函数来初始化一个新的链表头部,并添加项到链表中:
```c
PolynomialNode* create_polynomial_list() {
PolynomialNode* head = NULL;
return head;
}
void add_term(PolynomialNode** head, int coefficient, int exponent) {
PolynomialNode* newNode = (PolynomialNode*) malloc(sizeof(PolynomialNode));
newNode->term.coefficient = coefficient;
newNode->term.exponent = exponent;
if (*head == NULL) {
*head = newNode;
} else {
PolynomialNode* current = *head;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode;
}
}
```
你可以通过多次调用`add_term`函数来构建多项式链表。例如,如果你想构造多项式 `2x^2 + 3x + 4`,你会这么操作:
```c
PolynomialNode* head = create_polynomial_list();
add_term(&head, 2, 2);
add_term(&head, 3, 1);
add_term(&head, 4, 0); // 或者 add_term(&head, 4, 0);
```