Potresti provare con un albero binario in cui il valore di confronto per la visita è -appunto- la somma dei due valori.

Come nodo dell'albero puoi partire da questo:

codice:
struct node {
  int a;
  int b;
  struct node *left;
  struct node *right;
};