And I'd be more interested to hear how you (apparently) don't.
OK. Let's take a look at the little example of a traditional flow chart in my last post here...
We see empty boxes at the top and bottom, that would often be labeled "START" and "END" or some such. They only serve to tell you where this algorithm is to be started and when it terminates.
We see three rectangular boxes, A, D and C, that indicate that some operation is to be performed when one reaches that position in the flow chart. The actual operations are not specified.
We see a diamond shaped box, B, that indicates that some test is to be performed producing a logical result, TRUE or FALSE. The box has two exits, the intention being that the flow of execution of the algorithm proceeds along one, and only one, of those paths depending on the result of the test.
We see some lines joining these boxes together. Importantly these lines are directional, as indicated by the arrow heads.
The intention of all this is to start at START, which does nothing, and follow the lines from box to box performing whatever operation/test the boxes you encounter indicate. Proceed this way until arriving at the END box. At which point in time there should be a useful result somewhere.
So, to answer your question, I don't see any data in this diagram. Never mind data flows. Those connecting lines do not indicate any data flow, they indicate how to proceed from one operation to the next.
Clearly the traditional flow chart, as taught to kids learning about programming for decades, is not any kind of "data flow chart".
Exercise for the reader: The procedure described above is very long winded. Can we draw a flow chart that indicates clearly and unambiguously how to work through any other given flow chart?
Memory in C++ is a leaky abstraction .