Hi again \^-^
To start with you'll probably want to look into graphs/trees (this is a Y13 topic). You can represent the circuit as a graph, with each input, gate, and output being a node in the graph.
If you only want to have a single output to the circuit then you can use a basic tree and it should be fairly straightforward once you're somewhat familiar with them
If you want to have multiple outputs (e.g half adders, full adders) then it starts to get a lot more complicated. Certainly doable but definitely a bit harder.
Then if you want to also include a clock (e.g for flip-flops, latches) it gets more complex still.
Probably I'd recommend doing option 2 (multiple outputs), but if that's too much option 1 will probably still get a lot of marks, covering tree traversal and recursion.
Logic circuits are surprisingly complicated right? I can probably go more in-depth on what such a system would look like, in terms of class structure, inheritance, etc. if you need it