добавление элемента в упорядоченный двухсвязный список
есть двухсвязный список с добавлением элемента в конец. не могу сообразить, как реализовать добавление элемента в упорядоченный по убыванию список
#include <iostream>
using namespace std;
struct node
{
int data;
struct node* prev; //элемент
struct node* next;
};
struct list
{
node* start; //список
node* end;
};
list* init()
{
list* my_list = new list(); //выделение памяти под список, изначально он пустой
my_list->start = NULL;
my_list->end = NULL;
return my_list;
};
void add(list* my_list, int value) //функция добавления элемента в список (неупорядоченный)
{
node* new_el = new node();
new_el->prev = my_list->end;
new_el->next = NULL;
new_el->data = value;
if (my_list->end != NULL)
{
my_list->end->next = new_el;
my_list->end = new_el;
}
else
{
my_list->start = new_el;
my_list->end = new_el;
}
};