数据结构单链表——一元多项式求导(C语言版)
数据结构链表应用——一元多项式求导
·
最近在复习《数据结构》这门课,光看书本不练不行。所以我找到了学校的OJ平台,选择了一些难度不大的题来巩固知识。
寒假要努力学习,加油23考研人。
#include <stdio.h>
#include <stdlib.h>
//定义链表结点
typedef struct LNode
{
int xishu;
int zhishu;
LNode *next;
} LNode, *LinkedList;
//初始化链表
void InitList(LinkedList &L)
{
L = (LinkedList)malloc(sizeof(LNode));
L->next = nullptr;
}
//插入链表的数据,系数和指数
//这里题目要求降幂,所以采用尾插法
void InsertList(LinkedList &L, int index[], int length)
{
LNode *q = L;
for (int i = 0; i < length; i = i + 2)
{
LNode *p = (LNode *)malloc(sizeof(LNode));
p->xishu = index[i];
p->zhishu = index[i + 1];
p->next = nullptr;
q->next = p;
q = p;
}
}
void func(LinkedList &L)
{
LNode *cur_point = L->next;
while (cur_point != nullptr)
{
cur_point->xishu = cur_point->xishu * cur_point->zhishu;
cur_point->zhishu--;
cur_point = cur_point->next;
}
}
void print(LinkedList L)
{
LNode *p = L->next;
int count = 0;
while (p != nullptr && p->xishu != 0)
{
printf("%d %d ", p->xishu, p->zhishu);
p = p->next;
count++;
}
if (count == 0)
printf("0\n");
}
int main()
{
/*****
* 输入:2 7 3 5 12 1 6 0 -1 -1
* 输出:14 6 15 4 12 0
* */
int len = 0;
int num = 0;
int index[2000000];
int i = 0;
while (num != -1)
{
scanf("%d", &num);
index[i++] = num;
len++;
}
LinkedList L;
InitList(L);
InsertList(L, index, len);
func(L);
print(L);
}

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)