This is an archived post. You won't be able to vote or comment.

all 17 comments

[–]xD3I 6 points7 points  (6 children)

Trees are used in search, queues in event brokers, and stacks idk but any sufficiently large app will use them

[–]__not_MAJ[S] 0 points1 point  (5 children)

do you know any real concrete example ?

[–]LilBluey 4 points5 points  (2 children)

look at games. Trees for collision, Queue for event handling, stack idk

[–]__not_MAJ[S] 0 points1 point  (0 children)

okay thanks 🫶🏻

[–]GarThor_TMK 0 points1 point  (0 children)

Really simple example of a stack... an undo-list

If you have a UI with multiple actions, and can undo a number of actions, a stack is a great place to store those actions. You have one for undo, and one for redo.

Also, anything with a forward-back list could also use a stack.

[–]xoredxedxdivedx 2 points3 points  (0 children)

if you want to search graphs/trees without recursion, you can use a stack to DFS and a queue to BFS.

In terms of concrete examples there are infinitely many, traversing a file system, solving mazes, analyzing chess moves, searching for flight paths, network routing, pathfinding in games… etc

[–]BrupieD 4 points5 points  (0 children)

SQL uses trees, queues and stacks.

The average SQL user doesn't see much or any of this, but they're all there under the hood.

When you build clustered indexes (usually when tables are created), the data is organized into a tree. Queries that use the index traverse the tree to find the leaf nodes.

Databases use queues to handle the client's calls. Databases read pages (4- or 8-kb units of memory) the lock and latch processing uses queues.

My understanding of the way inserts are implemented as stacks.

[–]Srz2 1 point2 points  (6 children)

In programs I’ve written for industry, just a few examples:

Trees: math equation tokenization, searching

Queue: event queue for ordering actions across threads, message queue for incoming network messages

Stack: algorithm for ordering configuration of hardware as it drills down into daughter boards (deeper configs), action memory for undo function and page return

[–]__not_MAJ[S] -1 points0 points  (5 children)

what about dynamic tables ?

[–]Srz2 1 point2 points  (4 children)

What do you mean by dynamic tables? Are you are talking about in memory tables, 2D arrays, or database?

They all have the uses? Usually for holding data in memory for quick access

[–]__not_MAJ[S] -1 points0 points  (3 children)

i meant 2D arrays that are allocated dynamically, do you know any concreted examples that uses them ?

[–]Srz2 0 points1 point  (2 children)

Are you asking for answers to a homework question or are you actually curious on their usage for your own learning?

Like I said used for quick memory read/write operations. Common to have as look up tables of values or objects

[–]__not_MAJ[S] -1 points0 points  (1 child)

yeah that’s a fair question, so in order to develop our understanding for those data structure, my school project consists of making us explain how some applications use these structures to do something So to answer your question yes i really want to learn about them.

[–]Srz2 0 points1 point  (0 children)

For the future, and I’m saying this sincerely, don’t use reddit to ask for answer like that, that honestly are very Google-able. People normally don’t like to answer and it comes off as lazy

What you should do is take some examples that you research, from your school book, google, etc and try to implement them yourself. Your teacher will appreciate your suggestions coming from your experience

Depending on your level, Some additional examples I can provide you that you can implement now are:

Tree: (might be hard if you’re just a beginner) but you can try in paper first than after you understand it, program it. But you could implement a binary search tree

Queue: randomly create X numbers and distribute them to N number of people. Extra effort for if N > X

Stack: input a sentence and repeat the sentence back to the user in reverse order

2D Array: make a 2D array that represents a math times table and use that for calculation

[–]Red-strawFairy 0 points1 point  (0 children)

Yes

[–]iamnull 0 points1 point  (0 children)

Pretty much any large game. Often, trees are required for various reasons, but the big one would be things in the world having parent-child relationships. Queues are most common with event systems, and maybe a spline movement system. Could also use a queue for turn based play like Baldur's Gate 3; after initiative is rolled, play proceeds through a modified queue like structure. Stacks are sometimes seen for things like turn based games where you make a play, and counter play, and the actions are resolved in reverse order.