RIP Linked List

Benoît Sonntag,Dominique Colnet
2024-08-28
Abstract:Linked lists have long served as a valuable teaching tool in programming. However, the question arises: Are they truly practical for everyday program use? In most cases, it appears that array-based data structures offer distinct advantages, particularly in terms of memory efficiency and,more importantly, execution speed. While it's relatively straightforward to calculate the complexity of operations, gauging actual execution efficiency remains a challenge. This paper addresses this question by introducing a new benchmark. Our study compares various linked list implementations with several array-based alternatives. We also demonstrate the ease of incorporating memory caching for linked lists, enhancing their performance. Additionally, we introduce a new array-based data structure designed to excel in a wide range of operations.
Data Structures and Algorithms
What problem does this paper attempt to address?
The paper attempts to address the issue of evaluating the actual performance and practicality of linked lists in modern programming practices, and comparing them with array-based data structures. Specifically, the authors question whether linked lists are truly suitable for everyday programming use, especially given that in most cases, array-based data structures have clear advantages in terms of memory efficiency and execution speed. The paper addresses this issue by introducing new benchmarks that not only compare various linked list implementations with several array-based alternatives but also demonstrate how to enhance the performance of linked lists through memory caching, and introduce a new array-based data structure designed to perform well across a variety of operations. The main contributions of the paper include: 1. **Introduction of benchmarks**: Proposing a new benchmarking method to evaluate the actual performance of linked lists and array-based data structures. 2. **Performance comparison**: Conducting detailed experiments to compare the performance of different linked list implementations (such as singly linked lists, doubly linked lists) and array-based data structures (such as ArrayList, ArrayRing, ArrayBlock). 3. **Proposal of a new data structure**: Introducing a new data structure called ArrayBlock, aimed at optimizing the performance of various operations. Through this research, the paper aims to provide practical guidance to developers, helping them make more informed decisions when choosing the appropriate data structure.