用C语言实现建立链表并输出链表内容。链表每个结点包括一个一元多项式的一项。 输入格式: 输入共n+1行,第一行是n的值,其余各行分别是每项的系数和指数。 输出格式: 输出共一行,依次用格式%dx^%d输出一项的值。指数为0的项、指数或系数为1的项与书写习惯相同。
时间: 2024-03-12 19:46:32 浏览: 53
一元多项式相加c实现
以下是用C语言实现建立链表并输出链表内容的代码,实现的是一元多项式的一项:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
int coefficient; // 系数
int exponent; // 指数
struct node *next; // 指向下一个节点的指针
} Node;
int main() {
int n; // 共n个节点
scanf("%d", &n); // 读取节点的数量
Node *head = NULL; // 定义链表头指针
Node *tail = NULL; // 定义链表尾指针
// 循环读取每个节点的系数和指数
for (int i = 0; i < n; ++i) {
int coefficient, exponent;
scanf("%d %d", &coefficient, &exponent);
// 创建新节点
Node *node = (Node *)malloc(sizeof(Node));
node->coefficient = coefficient;
node->exponent = exponent;
node->next = NULL;
// 将新节点插入链表尾部
if (!head) {
head = node;
tail = node;
} else {
tail->next = node;
tail = node;
}
}
// 遍历链表并输出每个节点的值
Node *p = head;
while (p) {
printf("%dx^%d ", p->coefficient, p->exponent);
p = p->next;
}
printf("\n");
// 释放链表内存
p = head;
while (p) {
Node *temp = p->next;
free(p);
p = temp;
}
return 0;
}
```
输入示例:
```
3
2 3
-1 2
3 1
```
输出示例:
```
2x^3 -1x^2 3x^1
```
阅读全文