devc1 wrote:
Do you mean by the binary tree some structures like page tables ?
Page tables are a type of tree data structure, but they're not a binary tree. (I don't actually know offhand what type of tree they are...)
devc1 wrote:
I guess the quicksort algorithm will be usefull when creating linked lists with an ID for each item, so you can use this algorithm to get the Item from the ID faster ?
If you're primarily using the list to look up the item using the ID, then you probably shouldn't create a linked list in the first place. If the data is static, you might create an array sorted by ID and use a binary search to find the item. If the data is dynamic, you might create a self-balancing binary tree.
devc1 wrote:
I use an optimization to find free and allocated items is that on each linked list I create a bitmap where each bit represents an allocated entry/item.
Why do you need to search for both free and allocated items?
devc1 wrote:
I use the bsf (Bit Scan Forward) to find an allocated item, to find a free item I just reverse the bits using the not instruction then bsf.
You shouldn't worry about this kind of optimization until you have chosen an appropriate data structure. It sounds like a linked list is not the appropriate data structure.