Circular dependence – Remove an object from its owner

Suppose I have three classes, as follows:

A class {
Training bs;
createB () {b = new B (); (b); return b; }

class B {
Training cs;
createC () {c = new C (); this.cs.insert (c); return c; }

class C {
delete() { ... }

A has Bs and B has Cs. C has a method of elimination in which for a given C, I want to eliminate its B from the A that finally contains c.

A simple way to do this is to keep a reference back to the owner object. In this way, the method of eliminating C can be written as:

delete () { (this.b); }

But I am ending with a circular dependence in which each class is aware of the others. I want any low class not to be aware of their titular class.

Any ideas on how to solve this more elegantly? I would also appreciate a solution that can be applied in a hierarchy that is larger than just three classes.