Expression evaluation c++ stack data structure