When creating an expression tree (generic binary tree)
1) should i make the links double linked?
2) for stacks and queues should i always practice keeping 2 extra pointers as head and tail pointer (with no data just for place keeping) or just keep two pointers for the first and last nodes that actually have data?