I've noticed that some data structures are used when we implement search algorithms. For example, we use the queue to implement BFS, stack to implement DFS and min-heap to implement the A* algorithm. In these cases, we don't need to construct the search tree explicitly.

But I can't find a simple data structure to simulate the searching process of the AO* algorithm. I would like to know if constructing the search tree explicitly is the only way to implement the AO* algorithm? Can anybody provide me an efficient implementation? I really appreciate your help.