Добавил:
Yanus
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:lab5!
.txt#include <stdio.h>
struct Node {
int d; // Data
Node *next; //Next node
Node *prev; //Prev node
};
//--------------------------------------------
Node * first(int d);
void add_sort(Node **pbeg, Node **pend, int d);
void print_list(Node **pbeg);
//--------------------------------------------
int main() {
Node *pbeg = first(1);
Node *pend = pbeg;
int a[3];
//for (int i = 2; i<40; i += 5) add_sort(&pbeg, &pend, i);
//for (int j = 1; j<19; j += 2) add(&pbeg, &pend, j);
add_sort(&pbeg, &pend, 5);
add_sort(&pbeg, &pend, 3);
add_sort(&pbeg, &pend, 66);
print_list(&pbeg);
getchar();
}
Node * first(int d) {
Node *pv = new Node;
pv->d = d; pv->next = 0; pv->prev = 0;
return pv;
}
void add_sort(Node **pbeg, Node **pend, int d) {
Node *pv = new Node;
pv->d = d;
Node * pt = *pbeg;
while (pt) {
if (d > pt->d) {
pv->next = pt;
if (pt == *pbeg) {
pv->prev = 0;
*pbeg = pv;
}
else {
(pt->prev)->next = pv;
pv->prev = pt->prev;
}
pt->prev = pv;
return;
}
pt = pt->next;
}
pv->next = 0;
pv->prev = *pend;
(*pend)->next = pv;
*pend = pv;
}
void print_list(Node **pbeg) {
Node *pv = *pbeg;
printf("List:\n\n");
while (pv) {
printf("%d\t", pv->d);
pv = pv->next;
}
}