A recursive datastructure is a datastructure (e.g. a struct or class) that contains one or several references to instances of the same datastructure as a member.
Questions tagged [recursive-datastructures]
524 questions
                    
                    427
                    
            votes
                
                19 answers
            
        What do I use for a max-heap implementation in Python?
Python includes the heapq module for min-heaps, but I need a max-heap. What should I use for a max-heap implementation in Python?
         
    
    
        Douglas Mayle
        
- 21,063
- 9
- 42
- 57
                    53
                    
            votes
                
                6 answers
            
        Mastering Recursive Programming
I am having trouble in thinking/solving the problem in terms of recursion. I really appreciate the concept and I can understand them like  creating base case, exit case & the recursive calls etc. I can solve simple problems like writing factorial or…
         
    
    
        Hunter
        
- 2,370
- 2
- 20
- 24
                    48
                    
            votes
                
                4 answers
            
        What does Python mean by printing "[...]" for an object reference?
I'm printing a value of a what I thought was a list, but the output that I get is:
[...]
What does this represent? How do I test for it? I've tried:
myVar.__repr__() != '[...]'
and 
myVar.__repr_() != Ellipsis
but no dice...
Here's a cutdown of…
         
    
    
        Dycey
        
- 4,767
- 5
- 47
- 86
                    31
                    
            votes
                
                1 answer
            
        What is the difference between Fix, Mu and Nu in Ed Kmett's recursion scheme package
In Ed Kmett's recursion-scheme package, there are three declarations:
newtype Fix f = Fix (f (Fix f))
newtype Mu f = Mu (forall a. (f a -> a) -> a)
data Nu f where 
  Nu :: (a -> f a) -> a -> Nu f
What is the difference between those three data…
         
    
    
        hgiesel
        
- 5,430
- 2
- 29
- 56
                    26
                    
            votes
                
                8 answers
            
        populate treeview from a list of path
I'm trying to populate a treeview from a list of folder path, for…
        Eric
                    23
                    
            votes
                
                1 answer
            
        Create recursive dataclass with self-referential type hints
I want to write a dataclass definition in Python, but can't refer to that same class inside the declaration.
Mainly what I want to achieve is the typing of this nested structure, as illustrated below:
 @dataclass
 class Category:
     title: str
   …
         
    
    
        RomanGodMode
        
- 325
- 3
- 11
                    17
                    
            votes
                
                9 answers
            
        Confusing [...] List in Python: What is it?
So I was writing up a simple binary tree in Python and came across [...]
I don't believe this to be related to the Ellipsis object, more it seems to have something to do with an infinity loop (due to Python's shallow copy?). The source of this…
         
    
    
        Demur Rumed
        
- 351
- 3
- 9
                    16
                    
            votes
                
                3 answers
            
        scalacheck Arbitrary implicits and recursive generators
I'm seeing what seems to be a very obvious bug with scalacheck, such that if it's really there I can't see how people use it for recursive data structures.
This program fails with a StackOverflowError before scalacheck takes over, while constructing…
         
    
    
        Daniel Martin
        
- 23,083
- 6
- 50
- 70
                    16
                    
            votes
                
                2 answers
            
        Why inductive datatypes forbid types like `data Bad a = C (Bad a -> a)` where the type recursion occurs in front of ->?
Agda manual on Inductive Data Types and Pattern Matching states:
To ensure normalisation, inductive occurrences must appear in strictly positive positions. For instance, the following datatype is not allowed:
  
data Bad : Set where
  bad : (Bad →…
         
    
    
        Petr
        
- 62,528
- 13
- 153
- 317
                    16
                    
            votes
                
                2 answers
            
        Initializing circular data in C. Is this valid C code according to any standard?
I wanted to see if I could initialize a global variable to point to itself:
#include 
struct foo { struct foo *a, *b; } x = { &x, &x };
int main()
{
    printf("&x = %p, x.a = %p, x.b = %p\n", &x, x.a, x.b);
    return 0;
}
This code… 
         
    
    
        Matt
        
- 21,026
- 18
- 63
- 115
                    15
                    
            votes
                
                1 answer
            
        How can I dynamically allocate cyclic data?
For the sake of example let's define a toy automaton type:
data Automaton =
  Auto
    { success ::
      Automaton
    , failure ::
      Automaton
    }
This structure is designed to by cyclic, we can imagine each Automaton as a state with…
         
    
    
        Wheat Wizard
        
- 3,982
- 14
- 34
                    14
                    
            votes
                
                1 answer
            
        Understanding recursion without base case in Julia
This snippet is from the implementation of Rational Numbers in Julia:
# Rational.jl
# ...
Rational{T<:Integer}(n::T, d::T) = Rational{T}(n,d)
Rational(n::Integer, d::Integer) = Rational(promote(n,d)...)
Rational(n::Integer) =…
         
    
    
        dopatraman
        
- 13,416
- 29
- 90
- 154
                    14
                    
            votes
                
                4 answers
            
        How CSS and DOM is implemented in the browser?
This is a pretty academic question.  I'm wondering how the browser is implemented as in what data structure or algorithm is used to map a CSS selector to a particular DOM element.  Is it accomplished through a hash table?  How does DOM child node…
         
    
    
        Jlam
        
- 1,932
- 1
- 21
- 26
                    13
                    
            votes
                
                2 answers
            
        Python hangs indefinitely trying to delete deeply recursive object
I wrote a ternary search tree in Python and I've noticed that when the tree gets very deep, attempting to delete it causes Python to hang indefinitely. Here is a stripped version of the code that produces this behaviour:
import random
import…
         
    
    
        Christian Adam
        
- 196
- 9
                    10
                    
            votes
                
                1 answer
            
        Writing generic instances for Fix/Mu in F-algebras
After reading Milewski's F-algebra article, I tried to implement it and use for a real-world problem.  However, I can't seem to figure out how to write instances for Fix,
newtype Fix f = Fx { unFix :: f (Fix f) }
cata :: Functor f => (f a -> a) ->…
         
    
    
        Rufflewind
        
- 8,545
- 2
- 35
- 55