myMPD
Internal API documentation
Loading...
Searching...
No Matches
shuffle.c File Reference

Linked list implementation. More...

#include "src/lib/list/shuffle.h"
#include "src/lib/list/list.h"
#include "src/lib/mem.h"
#include "src/lib/random.h"
Include dependency graph for shuffle.c:

Functions

bool list_shuffle (struct t_list *l)
struct t_list_node ** list_shuffle_to_array (struct t_list *l)

Detailed Description

Linked list implementation.

Function Documentation

◆ list_shuffle()

bool list_shuffle ( struct t_list * l)

Shuffles the list using Fisher-Yates algorithm. Optimized for doubly-linked list: reconstructs both next and prev pointers

Parameters
llist
Returns
true on success, else false

◆ list_shuffle_to_array()

struct t_list_node ** list_shuffle_to_array ( struct t_list * l)

Shuffles the list using Fisher-Yates algorithm. Optimized for doubly-linked list: reconstructs both next and prev pointers

Parameters
llist
Returns
Array of shuffled list nodes