5

I know we don't like link-only answers.

But is just mentioning (without describing) a well-known [1] data structure or algorithm (with a link to e.g. Wikipedia) appropriate?

I'd like to break this up into 2 parts: (if it makes a difference)

  1. When you use the data structure or algorithm as a starting point and write a whole answer about how to apply it to the problem, or how to change it

  2. When you only mention the data structure or algorithm as your answer (when an explanation of how to apply it to the problem isn't required)

The problems with having every answer mentioning it also having a sufficient explanation:

  • There'd be a massive amount of duplication

  • The answers could get unnecessarily long, especially for #1 - some data structures and algorithms requires quite a long explanation (possibly a few pages) before you get some idea of how it works. One can possibly just give a very short summary, but often this would be near meaningless.

I mentioned linking to Wikipedia above. Would having a proper tag wiki on the subject and linking to that instead be better?

[1]: 'well-known' is very much subjective, but I'm really just talking about something that's not just described on some website in the back corner, slightly to the left, of the internet. If you Google it, you at least get a few results.

Example question / answer for #2.
The question is roughly "Which data structure would be appropriate for this?".
The answer is basically "A quadtree"

  • 6
    I suspect that most questions that can be answered well with 2 words and maybe a link for when the OP is too lazy to look up the pattern/data structure themselves probably weren't good questions to begin with. (or belonged on Programmers; picking a design pattern seems rather whiteboardy to me) – Wooble Dec 20 '13 at 14:56
  • A link only answer would be appropriate if the question were "What is the link for the Drupal CMS homepage". No other answer other then the URL would be necessary here. However such questions would be totally inappropriate for the site so you'd never get to leave such an answer anyway. – JonW Dec 20 '13 at 15:05
  • 2
    What's wrong with extracting the most relevant and valuable piece of information out of the article your linking, while also keeping the link? That way, even if the link goes down, the answer is not garbage worthy. – Madara Uchiha Dec 20 '13 at 15:08
  • Is there a final consensus that this kind of answer and answers providing a free library (what would be the essential parts) should be flagged as VLQ? – bummi Dec 20 '13 at 15:18
  • Rule of thumb: If a question is answered with two words, there's something wrong with the question. Though, I'm not sure if we now accept "what data structure should I use?" questions, my instinct tells me to close it as "too broad" or "primarily opinion based". – Time Traveling Bobby Dec 20 '13 at 15:19
  • @MadaraUchiha If it's a fairly complex data structure or algorithm, the essential parts of it could be a few pages long. A shorter explanation could be near meaningless. The quadtree link is actually sort of what I'm talking about - it says basically what it looks like and what it's used for, but, after reading it, I still have no idea how it works (in this case there appears to be different types of quadtrees that work differently, so the short explanation not explaining how it works makes sense). – Dukeling Dec 20 '13 at 15:32
  • @Dukeling You could have made your answer better by doing this. – George Stocker Dec 20 '13 at 16:19
  • @GeorgeStocker (Not my answer, but ok) I don't feel that the link between this and linking to documentation is that strong. For these questions, there typically isn't code involved, so I'm not sure one would be able to / how to 'Extend the documentation' - sometimes there isn't much to be said beyond a basic description of the data structure. One can almost always say something else, e.g. mention running time, but I'm wondering specifically about whether the actual data structure or algorithm should be described in the answer, and in how much detail. – Dukeling Dec 20 '13 at 17:07
  • @Dukeling I have to admit I couldn't write a QuadTree right now. I just don't understand enough about it. Having someone take code I'm familiar with and implement a QuadTree with it would be really helpful. – George Stocker Dec 20 '13 at 17:09
  • @GeorgeStocker What if code isn't given in the question? – Dukeling Dec 20 '13 at 18:37
  • @Dukeling Then and SSCCE of its usage and context would be an awesome answer in the language the OP wanted. It's up to you whether you want to do that, of course -- but since the crux of your question was what to do, that's what I'm answering. – George Stocker Dec 20 '13 at 19:01
10

You must understand that it is never possible to have to put a link only answer.

You can always add some meat to your answer by let's say quoting the article you are sending or explaining a little bit what you are linking. This way, it is not a link only answer and it the user knows what you are talking about without clicking on the link.


Possible answer:

I suppose what you need is a quadtree.
From the Quadtree wiki page:

A quadtree is a tree data structure in which each internal node has exactly four children. Quadtrees are most often used to partition a two-dimensional space by recursively subdividing it into four quadrants or regions. The regions may be square or rectangular, or may have arbitrary shapes.

  • They decompose space into adaptable cells
  • Each cell (or bucket) has a maximum capacity. When maximum capacity is reached, the bucket splits
  • The tree directory follows the spatial decomposition of the quadtree.

Yes it does repeat what is in the link but it is way better because:

  • Links die but the information in your post won't.
  • If the user finds what he needs in the question he won't have to read the wiki page.
  • You end up with a non-link-only answer.
  • What about #1 in my question? – Dukeling Dec 20 '13 at 15:15
4

I think that it would be wrong to just place a link only answer without describing how to use it as an answer to a question. Often times, the algorithm or data structure is the solution but without guidance of how to use it, that answer rarely solves the problem at hand.

  • Often no guidance is required. And even if guidance is required, should you still describe the data structure or algorithm itself (not how to apply it)? I realize that sometimes you need to explain how to use it, that's why I separated my question into points #1 and #2. – Dukeling Dec 20 '13 at 15:05
  • If you get the feeling the OP doesn't know about the structure, it would seem appropriate to describe it(on a high level at the least, with link to more). If not, then just how to apply it should be fine IMO. This applies especially to the better known structures; if I had to explain basic trees in every answer, I'd just find something else to do. If you're talking about a specialized or modified structure, a bit more explanation would be nice. – Geobits Dec 20 '13 at 15:10
0

Answers that depend entirely on the information available on another page...

Per my reading of tag wiki quoted above, it matches cases like your example, and here is why.

Look,

  • Question is: "Which data structure would be appropriate for this?"
  • The answer is: "A quadtree"

Answerer apparently assumes that reader will follow the link and find an answer to the question asked, that is an explanation for why quadtree is appropriate for this.

But thing is, it may happen that those maintaining the link will change its content, so that readers will find quadtree referring to something like,

A quadtree is NEVER appropriate for this

You see, it may happen that referred content changes to opposite, without any control of the answerer.

I prefer to summarize content of important links, to guarantee that readers will see what I meant to write in the answer, even if maintainer(s) of the referred content decide to denigrate it for some reason.

-1

In my view this depends very much on the question.

For example:

Q: Which design pattern allows me to broadcast from a single point to multiple clients without having the clients poll repeatedly?

A: The observer pattern

I'd be perfectly happy with that.

OTOH if it was more like:

Hi guys, I've got a program that has two or three client desktops that are polling a central server for a value that might change once an hour or once a second, but I'll have to expand it to 50 or 100 clients soon and I know if they all poll once a second it'll kill the performance. Here's my code. I want to try X but ...

....then the above answer wouldn't at all be enough; I'd want to see a reason why the observer pattern fits the bill, with references to the problem and perhaps the code.

  • 1
    Even in the first case a few worlds of explanation what observer pattern is would be good. – Mołot Dec 20 '13 at 14:51
  • 3
    What is the Observer pattern? I can't view Wikipedia pages for some reason so this answer doesn't help me. – JonW Dec 20 '13 at 14:56
  • 1
    I'm on a boat with no internets, and only have the data dump to search through for answers. – Geobits Dec 20 '13 at 15:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .