找一个节点的前驱:

int findpre(int x){
 int left=leftson[x];
 while (righton[left]) left=rightson[left];
 return left;
}

找一个节点的后继:

int findsuc(int x){
	int right=rightson[x];
	while (leftson[right]) right=leftson[right];
	return right;
}