В список после каждого максимального числа вставить номер в списке - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Нужно в не рассортированный список вещественных чисел после каждого максимального числа вставить номер в списке и номер среди максимальных элементов этого же списка.

Решение задачи: «В список после каждого максимального числа вставить номер в списке»

textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
 
struct clist {
    double value;
    struct clist* link;
};
 
struct mpair {
    double value;
    size_t count;
};
 
struct clist * mk_node(double value, struct clist * lst) {
    struct clist * node = (struct clist *)calloc(1, sizeof(*node));
    node->value = value;
    node->link = lst;
    return node;
}
void destroy(struct clist * lst) {
    struct clist* tmp;
    while (lst) {
        tmp = lst;
        lst = lst->link;
        free(tmp);
    }
}
 
struct mpair count_max(struct clist const * lst) {
    struct mpair m;
    struct clist const* tmp;
    m.count = 0;
    m.value = 0.0;
    if (lst) {
        m.count = 1;
        m.value = lst->value;
        tmp = lst->link;
        while (tmp) {
            if (m.value == tmp->value)
                m.count++;
            else if (m.value < tmp->value){
                m.count = 1;
                m.value = tmp->value;
            }
            tmp = tmp->link;
        }
    }
    return m;
}
 
struct clist * insert(double value, struct clist *lst) {
    lst->link = mk_node(value, lst->link);
    return lst->link;
}
void mk_work(struct clist* lst) {
    size_t id, i;
    struct mpair m = count_max(lst);
    i = 0; id = 0;
    while (i < m.count) {
        if (lst->value == m.value) {
            lst = insert(i, insert(id, lst));
            ++i;
        }
        lst = lst->link;
        ++id;
    }
}
int main() {
    return 0;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы