tree implementieren ohne malloc



  • Hallo,

    ich moechte gerne eine tree data structure implementieren, ohne heap memory zu verwenden...

    der tree ist statisch vom anfang bis zum ende des programmes, d.h. es werden keine nodes geloescht oder hinzugefuegt...

    vorschlaege?

    LG



  • vermutlich sowas in der art?

    uint8_t heap[HEAP_SIZE];
    uint8_t *heap_ptr;
    
    void my_malloc_init(void)
    {
        heap_ptr = heap;
    }
    
    void *my_malloc(size_t len)
    {
        uint8_t *p = heap_ptr;
        heap_ptr += len;
        if (heap_ptr >= heap + HEAP_SIZE)
            return NULL;
        else
            return p;
    }
    
    void my_free(void)
    {
        // do nothing
    }
    


  • mallocer schrieb:

    ich moechte gerne eine tree data structure implementieren, ohne heap memory zu verwenden...
    LG

    Weshalb kein Heap Memory?



  • //node_t ==> dein struct oder class fuer einen Knoten - mit einem parent-Member
    //falls du zu dem Kind->Vater Bezug noch Vater->Kind Bezug brauchst wird es schwer
    //dann musst du die Knoten und Edges getrennt anlegen

    node_t Node1(0);
    node_t Node2(&Node1);
    node_t Node3(&Node1);
    node_t Node4(&Node3);

    int main()
    {
    //oder
    Node1.parent = 0;
    Node2.parent = &Node1;
    Node3.parent = &Node1;
    Node4.parent = &Node3;
    }

    ansonsten eben

    Node1
    Node2
    Node3
    Node4

    Edge1 &Node2, &Node1
    Edge2 &Node3, &Node1
    Edge3 &Node4, &Node3

    viel mehr geht da nicht


Anmelden zum Antworten