I'm learning bitcoin protocol theory.
To pay to someone you use a transaction. In the transaction you specify some of old transactions that gave you money (so called inputs). These inputs should have not been already spent.
Therefore the bitcoin network must check these inputs are unspent. Bitcoin network holds the list of all unspent transactions. Transactions are in tree-like structures, and all unspent transactions are the roots of these trees. So bitcoin network checks that input transaction is in this list.
After current transaction is done, all used input transactions (inputs) are now spent, and output transaction and change are now put in the list of unspent transactions.
Is the above process and terminology correct?
EDIT: I found confusing now the thing that transaction can have multiple outputs. This means I cannot just state that transaction is my input, and that the it gets invalidated when used for new transaction, as this transaction has an output that is someone else input. How is this handled?