Duomenų struktūra - tai būdas organizuoti duomenis taip, kad būtų prašoma ir (arba) atnaujinta konkrečių duomenų duomenų užklausų.

Duomenų struktūros yra visur programinės įrangos. Hash'o lentelės, subalansuoti medžiai ir dinamiškos masyvai yra svarbūs sudėtingų sistemų sudėtiniai elementai, ir beveik visi programuotojai juos aptiko. Sudėtingesnės struktūros, pvz., Dvejetainiai krūvos, gali pagreitinti sudėtingas sistemas, o paprastesnės sąvokos, pvz., Kaminai ir eilės, gali būti panaudotos algoritmų kodavimui labiau elegantiškai ir glaustai.

Žinoma, tai yra tik ledkalnio viršūnė, kai kalbama apie duomenų struktūras. Pastaraisiais metais teoretikai sukūrė sudėtingesnes ir patobulintas duomenų struktūras, kurių daugelis yra plačiai naudojamas šiuolaikinėje programinėje įrangoje, ir daugelis jų yra naudingos tik teoriniu požiūriu.

Duomenų struktūros yra glaudžiai susijusios su algoritmais. Dažnai geras duomenų struktūros pasirinkimas gali žymiai pagerinti algoritmo vykdymo laiką. Pavyzdžiui, Dijkstros algoritmas su naiviu prioritetų eilės įgyvendinimu vyksta kvadratiniu laiku, tačiau su greitai Fibonacci sauja galima parodyti, kad jis veikia O(m + n lg n) .

Toliau pateikiamas kai kurių populiariausių duomenų struktūrų ir jų variantų sąrašas (nors ir ne visiškai išsamus):

  • Dinaminės matricos
    • Dinaminė lentelė
    • Sluoksniuotas vektorius
    • Hash Array Tree
    • Išplečiama matrica
  • Susiję sąrašai
    • Vieni skelbimai
    • Susiję sąrašai
    • XOR susiję sąrašai
    • Praleisti sąrašus
  • Hash lentelės
    • Susietos Hash lentelės
    • Linijiniai maišos jutikliai
    • Kvadratinės jutimo lentelės
    • Dvigubos maišos lentelės
    • Gerklės maišos lentelės
    • Puikios maišos lentelės
    • Dinaminės pilnos maišos lentelės
  • Dvejetainiai medžiai
    • Raudoni / juodi medžiai
    • Intervalai
    • Dvejetainiai paieškos medžiai
    • Segmentų medžiai
    • Avl medžiai
    • AA medžiai
    • Medžiai
    • Kapoto medžiai
    • dekarto medis
  • Prioritetinės eilės
    • Binarinė krūva
    • Binominė krūva
    • Fibonacci krūva
    • Van emde boas medis
    • Bevelinė binominė krūva
    • Eilės brodal
  • Radix medžiai
    • Trie
    • Patricijos medis
    • Terminis paieškos medis
  • Keli medžiai
    • B medis
    • B + medis
    • B * medis
  • Geometriniai medžiai
    • quad medis
    • Octree
    • kd-tree
    • Bsp-medis
    • R-medis
  • Geometrinės struktūros
    • sparnuotas kraštas
    • Keturkampis
  • Tinklo sujungimo struktūros
    • Miškas su keliais keliais
    • Tie / iškirpti medžiai
    • Viršutinis medis
  • Diagramos
    • DAG
    • Orientuotas grafikas
    • Netaikomas tvarkaraštis
    • „Hypergraph“

Nuorodos: