The answer can be infinite, and βa good exampleβ is a subjective term, so the answer to your question is very controversial. Of course, there are examples. You just need to think about the possible needs of a quick insert.
For example, you have a list of tasks, and you need to solve all the problems. When you look at the list when the task is solved, you understand that you need to quickly solve a new task so that you insert the task after the task that you just solved. This is not a queue, because the list may be needed in the future for viewing, so you need to keep your list intact, in this case you cannot use the pop method.
To give you another example: you have a set of names in alphabetical order. Suppose that in some way you can quickly identify an object that has the next pointer to the object in which the specific name is stored. If you want to quickly delete the name, just go to the previous element of the object you want to delete. Deletion is also faster than with stacks or queues.
Finally, imagine a very large set of elements that you need to keep even after you insert or delete. In this case, it is much faster to search for the item to be deleted, or the item before the position at which your item should be inserted, and then perform the operation, than copy your entire large set.
source share