最近在复习《数据结构》这门课,光看书本不练不行。所以我找到了学校的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);
}

Logo

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

更多推荐