>/***** Відомість установки телефонів *****/Install ()
{telephone * f; years; * ff; = fopen ("install.txt", "w");// відкрити порожній файл для запису ("cls"); = f1 ;// на початок списку (f == NULL)// якщо список відсутній ("База даних ще не заповнена. n"); (f! = NULL)
{("Відомість установки телефонів за який рік вивести? n Рік:"); ("% d", & years); ("Відомість установки телефонів за% d рік : n ", years); (" | Прізвище | Ім'я | По батькові | "); (ff," Відомість установки телефонів за% d рік: n ", years); (ff," | Прізвище | Ім'я | По батькові | "); (f-> next! = NULL)// поки не закінчиться список
{(atoi (f-> year) == years)
{ printf (" n"); ("|% 15s", f-> surname); ("|% 12s", f -> name); ("|% 10s |", f-> lastname); (ff, " n"); (ff, "|% 15s", f-> surname); (ff, "|% 12s", f-> name); (ff, "|% 10s |", f-> lastname);
} = f-> next;
} (atoi (f-> year) == years)
{ printf (" n"); ("|% 15s", f-> surname); ("|% 12s", f -> name); ("|% 10s |", f-> lastname); (ff, " n"); (ff, "|% 15s", f-> surname); (ff, "|% 12s", f-> name); (ff, "|% 10s", f-> lastname);
} (ff, " 0");// " 0" - кінець рядка (" n n Відомість збережена! Поздравляю! ... n"); ( ff);
} (); ();
}
/***** Функція перетворення списку *****/converting (int b)
{telephone * p; i, k = 0; = f1; (b == 0)
{= f1; = 1; ((p-> next)! = NULL)
{= p-> next; + +;
} = (struct telephone **) malloc (n * sizeof (struct telephone *));
* a = f1; = f1; (i = 0; i
{[i] = p; = p-> next;
}
}
{= * a;
(* a) -> prev = NULL; (n> 1)
(* a) -> next = a [0]; (i = 0; i
(a [i]) -> next = a [i +1]; (n> 1)
(a [n-1]) -> prev = a [n-2];
(a [n-1]) -> next = NULL; = a [n-1];
}
}
/***** Функція сортування бази даних *****/Sort ()
{telephone * shell; i, j, incr; ("cls"); clrscr (); (f1 == NULL) printf ("Таблиця порожня");
{(0); = n/2; (incr> 0)
{(i = incr; i
{= i-incr; (j> = 0) (a [j] -> score> (a [j + incr] -> score))
{= a [j]; [j] = a [j + incr]; [j + incr] = shell; = j-incr;
} j = -1;
} = incr/2;
} (1); ("База успішна відсортована ...");