Поиск и вычитание последнего элемента в списке

Даны натуральное число n, действительные числа x1, x2,…,xn (n>=2). Получить последовательность x1-xn, x2-xn,…, xn-1-xn. Для решения этой задачи использовать однонаправленный список.

Метод решения
1. Пишем процедуры внесения элемента в список и печати полученного списка.
2. Заполняем список случайными элементами.
3. Находим последний элемент списка.
4. Печатаем список, вычитая из каждого элемента найденный последний элемент.

Программа

#include <iostream.h> 
#include <conio.h>
#include <stdlib.h>
 
const N = 8;  
 
typedef struct Pnode Tnode;
 
struct Pnode{
  int Item;
  Tnode * Next;
};
 
void AddList( Tnode * List, int newElem){   // Добавить элемент в список
  Tnode * newNode;
  newNode = new Tnode;
  newNode -> Item = newElem;
  newNode -> Next = NULL;
  while (List -> Next != NULL) List = List -> Next;
  List -> Next = newNode;
}
 
void PrintList( Tnode * List){ // Распечатать список
  while (List != NULL){
    cout << List -> Item << ' ';
    List = List -> Next;
  }
  cout << endl;
}
 
void main(){
  clrscr();
  Tnode * A; // определяем список A
  A = new Tnode;  
  A -> Item = random(9)+1;  // Вносим первый элемент
  A -> Next = NULL;
  for (int i = 1; i < N; i++ ) //  заносим еще N-1 элемент
    AddList( A, random(9)+1);
  PrintList( A);   
 
  Tnode * Last = A;  // находим последний элемент списка
  while (Last -> Next != NULL) Last = Last -> Next; 
 
  Tnode * X = A;    // печатаем список, вычитая последний элемент
  while ( X -> Next != NULL){
    cout << X -> Item - Last -> Item << ' ';
    X = X -> Next;
  }
  cout << endl;
}

Результат работы программы.
5 1 1 4 1 4 2 5 2
3 -1 -1 2 -1 2 0 3

Ключевые слова: 
список, елемент списка, однонаправленный список