Array-Linked Data Structure: Introducing a Hybrid Model of Memory Management and Faster and Easier Insertion and Reallocation Procedures

[{“box”:0,”content”:”

n

Year : August 14, 2023 | Volume : 01 | Issue : 01 | Page : 1-11

n

n

n

n

n

n

By

n

    n t

    [foreach 286]n

    n

    Kartik Srivastava

  1. [/foreach]

    n

n

n

    [foreach 286] [if 1175 not_equal=””]n t

  1. Student, Indian Institute of Technology, Kanpur, Uttar Pradesh, India
  2. n[/if 1175][/foreach]

n

n

Abstract

nHere, I have introduced a new data structure titled “Array-Linked Data Structure”. It incorporates a hybrid model of memory allocation, introducing a new insertion procedure in an existing data structure which is faster than that for arrays. It also offers O(c) access time where c is a constant. The access time is worse than O(1) for an array but still better than that for a linked list since the index of data could be directly supplied to the access procedure here. The data structure also maintains a DS table for each allocated block of memory which keeps track of auxiliary data structures in the main block. Insert call of the structure offers a complexity of O(t*log(t)) where t is the number of auxiliary data chains in the main block where insertion is supposed to happen. Rest of the procedures are discussed in detail with proofs. The main element of the structure is that it offers a faster insertion procedure and easier reallocation procedure, while maintaining a hybrid model of contiguous memory allocation.

n

n

n

Keywords: Hybrid memory allocation, insertion, DS table

n[if 424 equals=”Regular Issue”][This article belongs to International Journal of Data Structure Studies(ijdss)]

n

[/if 424][if 424 equals=”Special Issue”][This article belongs to Special Issue under section in International Journal of Data Structure Studies(ijdss)][/if 424][if 424 equals=”Conference”]This article belongs to Conference [/if 424]

n

n

n

How to cite this article: Kartik Srivastava Array-Linked Data Structure: Introducing a Hybrid Model of Memory Management and Faster and Easier Insertion and Reallocation Procedures ijdss August 14, 2023; 01:1-11

n

How to cite this URL: Kartik Srivastava Array-Linked Data Structure: Introducing a Hybrid Model of Memory Management and Faster and Easier Insertion and Reallocation Procedures ijdss August 14, 2023 {cited August 14, 2023};01:1-11. Available from: https://journals.stmjournals.com/ijdss/article=August 14, 2023/view=0/

nn


nn

Full Text

n[if 992 equals=”Open Access”] https://storage.googleapis.com/journals-stmjournals-com-wp-media-to-gcp-offload/2023/09/c4b115b1-1-11-array-linked-data-structure-–-introducing-a-hybrid-model-of-memory.pdf[else] nvar fieldValue = “[user_role]”;nif (fieldValue == ‘indexingbodies’) {n document.write(‘https://storage.googleapis.com/journals-stmjournals-com-wp-media-to-gcp-offload/2023/09/c4b115b1-1-11-array-linked-data-structure-–-introducing-a-hybrid-model-of-memory.pdf’);n }nelse if (fieldValue == ‘administrator’) { document.write(‘https://storage.googleapis.com/journals-stmjournals-com-wp-media-to-gcp-offload/2023/09/c4b115b1-1-11-array-linked-data-structure-–-introducing-a-hybrid-model-of-memory.pdf’); }nelse if (fieldValue == ‘ijdss’) { document.write(‘https://storage.googleapis.com/journals-stmjournals-com-wp-media-to-gcp-offload/2023/09/c4b115b1-1-11-array-linked-data-structure-–-introducing-a-hybrid-model-of-memory.pdf’); }n else { document.write(‘ ‘); }n [/if 992] [if 379 not_equal=””]n

Browse Figures

n

n

[foreach 379]n

n[/foreach]n

nn

n

n[/if 379]n

n

References

n[if 1104 equals=””]n

1. Lokeshwar B, Zaid MM, Naveen S, Venkatesh J, Sravya L. Analysis of Time and Space Complexity of Array, Linked List and Linked Array (hybrid) in Linear Search Operation. In 2022 IEEE International Conference on Data Science, Agents & Artificial Intelligence (ICDSAAI). 2022 Dec 8; 1: 1–6.
2. Sanders P, Mehlhorn K, Dietzfelbinger M, Dementiev R, Sanders P, Mehlhorn K, Dietzfelbinger M, Dementiev R. Representing Sequences by Arrays and Linked Lists. In: Sequential and Parallel Algorithms and Data Structures: The Basic Toolbox. Cham: Springer; 2019; 81–116.
3. Wen F, Qin M, Gratz PV, Reddy AN. Hardware memory management for future mobile hybrid memory systems. IEEE Trans Computer-Aided Design Integr Circuits Syst. 2020 Oct 2; 39(11): 3627–37.
4. Jin H, Li Z, Liu H, Liao X, Zhang Y. Hotspot-aware hybrid memory management for in-memory key-value stores. IEEE Trans Parallel Distrib Syst. 2019 Oct 4; 31(4): 779–92.
5. Cook V, Peterson C, Painter Z, Dechev D. Quantifiability: Concurrent correctness from first principles. arXiv preprint arXiv:1905.06421. 2019 May 15.
6. Java T Point. (2021). Contiguous and Non-Contiguous Memory Allocation in Operating System. [Online]. Available from: https://www.javatpoint.com/contiguous-and-non-contiguous-memory-allocation-in-operating-system.
7. Rahama M. Data Structures and Algorithms. GRIN Verlag; 2013 Jan 7.
8. Utkarsh Pandey. Time Complexity and Space Complexity. [Online]. Geeks for Geeks. Available from: https://www.geeksforgeeks.org/time-complexity-and-space-complexity/
9. A Novel Counting Sort for Real Numbers with Linear Time Complexity. In 2022 IEEE International Conference on Computational Intelligence and Sustainable Engineering Solutions (CISES). 2022 May 20; 60–64.
10. Susanne Windfeld Pedersen. (2022). Insert, Modify, Modify All, Delete, and Delete All Methods – Business Central. [Online]. Microsoft.com. Available from: https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-insert-modify-modifyall-delete-and-deleteall-methods

nn[/if 1104][if 1104 not_equal=””]n

    [foreach 1102]n t

  1. [if 1106 equals=””], [/if 1106][if 1106 not_equal=””],[/if 1106]
  2. n[/foreach]

n[/if 1104]

nn


nn[if 1114 equals=”Yes”]n

n[/if 1114]

n

n

Regular Issue Subscription Review Article

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

Volume 01
Issue 01
Received July 5, 2023
Accepted July 12, 2023
Published August 14, 2023

n

n

n

[if 1190 not_equal=””]n

Editor

n

[foreach 1188]n

n[/foreach]

n[/if 1190] [if 1177 not_equal=””]n

Reviewer

n

[foreach 1176]n

n[/foreach]

n[/if 1177]

n

n

n

n function myFunction2() {n var x = document.getElementById(“browsefigure”);n if (x.style.display === “block”) {n x.style.display = “none”;n }n else { x.style.display = “Block”; }n }n document.querySelector(“.prevBtn”).addEventListener(“click”, () => {n changeSlides(-1);n });n document.querySelector(“.nextBtn”).addEventListener(“click”, () => {n changeSlides(1);n });n var slideIndex = 1;n showSlides(slideIndex);n function changeSlides(n) {n showSlides((slideIndex += n));n }n function currentSlide(n) {n showSlides((slideIndex = n));n }n function showSlides(n) {n var i;n var slides = document.getElementsByClassName(“Slide”);n var dots = document.getElementsByClassName(“Navdot”);n if (n > slides.length) { slideIndex = 1; }n if (n (item.style.display = “none”));n Array.from(dots).forEach(n item => (item.className = item.className.replace(” selected”, “”))n );n slides[slideIndex – 1].style.display = “block”;n dots[slideIndex – 1].className += ” selected”;n }n n function myfun() {n x = document.getElementById(“editor”);n y = document.getElementById(“down”);n z = document.getElementById(“up”);n if (x.style.display == “none”) {n x.style.display = “block”;n }n else {n x.style.display = “none”;n }n if (y.style.display == “none”) {n y.style.display = “block”;n }n else {n y.style.display = “none”;n }n if (z.style.display == “none”) {n z.style.display = “block”;n }n else {n z.style.display = “none”;n }n }n function myfun2() {n x = document.getElementById(“reviewer”);n y = document.getElementById(“down2”);n z = document.getElementById(“up2”);n if (x.style.display == “none”) {n x.style.display = “block”;n }n else {n x.style.display = “none”;n }n if (y.style.display == “none”) {n y.style.display = “block”;n }n else {n y.style.display = “none”;n }n if (z.style.display == “none”) {n z.style.display = “block”;n }n else {n z.style.display = “none”;n }n }n”}]