Bellman Ford Algorithm Clarifications I'm a little hung up on the Bellman-Ford algorithm. Here is my current understanding and some questions:
1) The root is defined as a source node that has only outgoing paths from it and the goal of the algorithm is to find a path from this source node to every other node in the graph G : there is a spanning, directed tree from the root.
2) There can only be one root and there must exist a path from the root to every other node in the graph G.  Do we need to always assume this?  It feels like we should have to make this assumption as our goal is to form a shortest path from the root to every other node in the graph and if there exists some node such that there is only an outgoing path from it and it isn't the source, then I don't think we'd be able to reach it.  I just want to be sure that this is the case. 
3) A sequence is formed during each pass of the algorithm and there will be a maximum of n-1 passes as there are n nodes and our goal is only to connect them analogous to a MST. 
4) A sequence is an ordered set of nodes, starting from the root and branching outwards to depict the past from the root that was taken.
5) This is more of a question regarding the root, related to (1)... Can we arbitrarily assign a node as the root even if it has an inflowing arc and just ignore that inflow?
Am I on the right track in my understanding?

The selection of source node depends on you. You can choose any node to be your source irrespective of its non zero in-degree.  The algorithm tries to generate the shortest path distance from your selected source node to all other nodes in the graph. 
It is safe to assume that the graph is connected . For the same you can first run DFS over the graph to find the connected components. If the graph is connected then run Bellman Ford algorithm. 
