Beth yw strwythurau data?
Postiwyd ar: Medi 16, 2021gan Ruth Brooks
Mae pob rhaglen gyfrifiadurol yn storio a phrosesu data. Mae pob meddalwedd cyfrifiadurol yn cynnwys model data sy’n diffinio pa ddata fydd yn cael ei gasglu a’i drin. Rôl y strwythur data mewn meddalwedd yw pennu sut mae’r llif data’n cael ei reoli o ran mewnbwn, prosesau ac allbwn.
Gall strwythur data drefnu, prosesu, casglu a storio data, ac maent yn ei gwneud hi’n hawdd i ddefnyddwyr gael mynediad i’r data angenrheidiol a gweithio gydag ef wrth fframio trefniant y wybodaeth o fewn y feddalwedd, fel bod y peiriant a’r bod dynol yn gallu ei ddeall yn well. Mae sawl math sylfaenol ac uwch o strwythurau data sydd wedi cael eu dylunio’n unigryw at ddiben penodol.
Pan gaiff ei ddefnyddio mewn cyfrifiadureg neu raglennu cyfrifiadurol, gall pwrpas strwythur data for i’w ddefnyddio gydag algorithmau amrywiol. Yn yr achos hwn, caiff y gweithrediadau algorithm sylfaenol eu paru gyda dyluniad y strwythur data.
Caiff strwythurau data eu creu ochr yn ochr ag ieithoedd rhaglennu. Os yw meddalwedd cyfrifiadur yn defnyddio iaith raglennu ar sail gwrthrychau, bydd y strwythur data a’i ddulliau cysylltiedig yn cael eu huno’n rhan o ddiffiniad o ddosbarth. Mewn ieithoedd nad ydynt ar sail gwrthrychau, mae’n bosibl y bydd rhai swyddogaethau’n cael eu diffinio i weithio gyda’r strwythur data, ond nid ydynt yn dechnegol yn rhan ohono.
Mae tair nodwedd sy’n sail i ddosbarthiad pob strwythur data. Maent fel a ganlyn:
- Llinellol neu anlinellol: Os yw’r eitemau data’n cael eu gosod mewn trefn neu’n ddi-drefn
- Homogenaidd neu heterogenaidd: Os yw’r eitemau data mewn storfa benodol yr un math
- Statig neu ddeinamig: Sut mae’r strwythurau data’n dod at ei gilydd – mae gan strwythurau data statig feintiau, strwythurau a lleoliadau cof penodol, mae gan strwythurau data deinamig feintiau, strwythurau a lleoliadau cof all leihau neu gynyddu’n dibynnu ar y defnydd
Beth yw mathau o ddata?
Er mai strwythurau data yw sylfeini adeiladu rhaglenni mwy soffistigedig megis algorithmau a rhaglenni cyfrifiadurol, mathau o ddata yw sylfeini strwythurau data.
Mae’r rhain fel arfer yn cynnwys y canlynol:
- Booleaidd: storio gwerthoedd rhesymegol sydd un ai’n wir neu’n anwir
- Cyfanrif: storio ystod o rifau
- Rhifau pwynt amrywiol: storio cynrychioliad fformiwlaig o rifau go iawn
- Rhifau pwynt sefydlog: cael eu defnyddio mewn rhai ieithoedd rhaglenni, maent yn dal gwerthoedd go iawn ond yn cael eu rheoli fel rhifau i’r chwith ac i’r dde o bwynt degol
- Cymeriad: defnyddio symbolau o waith mapio diffiniedig o werthoedd cyfanrif i symbolau
- Pwyntyddion: gwerthoedd cyfeirnodi sy’n pwyntio i werthoedd eraill
- Llinyn: amrywiaeth o gymeriadau cyn côd stop, neu’n cael ei reoli gan ddefnyddio maes hyd sy’n werth cyfanrif
Sut mae strwythurau data’n cael eu defnyddio
Defnyddir strwythurau data i weithredu’r ffurfiau corfforol o fathau data haniaethol, ac maent yn rhan hanfodol o ddylunio meddalwedd cyfrifiadurol effeithlon. Maent yn chwarae rhan hanfodol o ran dylunio algorithmau a sut mae’r algorithmau hynny’n cael eu defnyddio o fewn rhaglenni cyfrifiadurol. Mae llawer o ieithoedd rhaglennu’n cynnwys casgliad mawr o strwythurau data eisoes sy’n trefnu côd a gwybodaeth i’r peiriant a’r defnyddiwr.
Dyma rai enghreifftiau o sut caiff strwythurau data eu defnyddio:
- Storio data: cael ei ddefnyddio ar gyfer parhad data effeithlon – manylu casgliad nodweddion cyfres ddata a’i strwythur data cyfatebol
- Rheoli adnoddau a gwasanaethau: caiff adnoddau a gwasanaethau’r system weithredu graidd eu galluogi drwy strwythurau data megis rhestri cysylltiedig er mwyn dyrannu cof, rheoli storfeydd ffeiliau a choed strwythurau ffeiliau
- Cyfnewid data: diffinio trefniant gwybodaeth a rennir rhwng rhaglenni
- Trefnu a sortio: coed chwilio deuaidd (sydd hefyd yn cael eu galw’n coed deuaidd â threfn neu goed deuaidd wedi’u storio) sy’n trefnu gwrthrychau megis llinellau cymeriad sy’n cael eu defnyddio fel tagiau
- Mynegeio: Mae coed deuaidd yn mynegeio gwrthrychau sy’n cael eu storio mewn cronfa ddata
- Chwilio: mynegeion sydd wedi cael eu creu gan goed chwilio deuaidd, coed deuaidd neu dablau hash, sy’n cyflymu’r broses o ddod o hyd i eitem benodol
- Gallu i bennu graddfa: mae rhaglenni data mawr yn defnyddio strwythurau data i ddyrannu a rheoli storfeydd data ledled lleoliadau storio wedi’u dyrannu o fewn meddalwedd, gan alluogi pennu graddfa a gwella perfformiad
Strwythurau data sy’n cael eu defnyddio’n rheolaidd
Gwybodaeth hanfodol yw strwythurau data cyffredin ar gyfer y rhai ym maes peirianneg meddalwedd. A dweud y gwir, mae’n bosibl y bydd cwestiynau cyfweliad ar gyfer swyddi yn y sector cyfrifiadureg yn gofyn i gyfwelai restru rhai o’r rhai mwyaf poblogaidd.
Araeau
Strwythur data maint penodol yw arae all ddal eitemau o’r un data megis canolrifau, rhifau pwynt amrywiol neu linellau. Maent mewn mynegai, felly mae mynediad ar hap yn bosibl.
Defnyddir y math hwn o strwythur data fel sylfaen ar gyfer rhestri arae, llwythi, tablau hash, fectorau a metrigau, a chaiff ei ddefnyddio er mwyn sortio algorithmau megis sortio mewnbynnu, sortio cyflym, sortio swigen a sortio uno.
Rhestri wedi’u cysylltu
Strwythur dilynol yw rhestr wedi’i gysylltu sydd â nifer o eitemau yn nhrefn linellol sy’n gysylltiedig â’i gilydd.
Ymhlith y mathau o restri wedi’u cysylltu mae: rhestr cysylltiad unffordd – lle gall eitemau symud ymlaen yn unig; rhestr cysylltiad ddwyffordd – lle gall eitemau symud yn ôl ac ymlaen; a rhestri cysylltiad cylchol – lle mae’r pwyntydd ar y pen yn pwyntio i’r cynffon, a’r pwyntydd nesaf ar y cynffon yn pwyntio i’r pen.
Staciau
Strwythur data LIFO (Olaf i Mewn Cyntaf Allan) sy’n gyffredin mewn llawer o ieithoedd rhaglennu. Mae staciau’n debyg i bentwr o blatiau mewn bywyd go iawn, a gellid mewnosod elfennau ar dop y stoc (gwthio), neu ddileu a’i ddychwelyd i dop y stoc (popio).
Ciwiau
Strwythur data FIFO (Cyntaf i Mewn Cyntaf Allan), sy’n gyffredin mewn sawl iaith raglennu. Gellid gosod elfennau ar ddiwedd y ciw (diwedd-ciw), neu eu dileu o ddechrau’r ciw (dileu-ciw).
Tablau hash
Mae tabl hash yn storio gwerthoedd sydd ag allweddi’n gysylltiedig â phob un ohonynt, ac sy’n cefnogi chwiliad os yw’r allwedd yn gysylltiedig â’r gwerth yn wybyddus. Mae’n strwythur data effeithiol ar gyfer chwilio a mewnbynnu, waeth beth fo maint y data.
Mae cyfeiriadu uniongyrchol yn defnyddio mapio un i un rhwng gwerthoedd ac allweddi wrth storio mewn tabl. Defnyddir y swyddogaeth hash i oresgyn y broblem hon, a rhoddir gwerth hash i bob allwedd.
Coed
Strwythur yw coed lle mae data’n cael ei storio mewn hierarchaeth a’i gysylltu gyda’i gilydd. Mae rhai enghreifftiau o strwythurau data coed yn cynnwys coeden chwilio deuaidd, coeden B, treap, coeden coch-du, coeden goledd, coeden AVL a choeden n-ary.
Pentyrrau
Mae pentyrrau’n achos arbennig o goed deuaidd lle mae gwerthoedd y rhiant nodau’n cael eu cymharu â’u plant nodau a’u trefnu’n unol â hynny. Maent yn cael eu defnyddio gan JVM (Peiriant Rhithwir Java) i storio gwrthrychau Java.
Graffiau
Mae graff yn cynnwys cyfres gyfyngedig o fertigau neu nodau a chyfres o ymylon yn cysylltu’r fertigau hyn.
Mae graff â chyfeiriad yn nodi cyfeiriad y fertig dechreuol a’r fertig ar y diwedd. Gall graff heb gyfeiriad fynd unrhyw ffordd rhwng y ddau fertig, heb unrhyw ymyl yn gorfod bod â chyfeiriad pendant.
Dysgu mwy am strwythurau data gwahanol
Os ydych yn bwriadu datblygu eich gwybodaeth ar strwythurau data ymhellach, mae MSc Cyfrifiadureg Ysgol Rheoli Gogledd Cymru yn berffaith i chi, waeth os ydych yn gweithio ym maes cyfrifiadureg ar hyn o bryd neu’n awyddus i newid eich llwybr gyrfa.
Wedi’i dylunio gyda ffocws byd go iawn, bydd y radd hon yn cynnig sgiliau datrys problemau gwerthfawr all fod yn berthnasol i’ch gyrfa, boed hynny fel rhaglennydd, datblygwr meddalwedd, deallusrwydd artiffisial, neu yrfa gyfrifiadureg arall.
Wedi’i hastudio ar-lein yn llwyr, byddwch yn rhyngweithio gyda chyfoedion o bob rhan o’r byd mewn tiwtorialau a’n hamgylchedd dysgu rhithwir pwrpasol, gan roi cyfle i chi dyfu eich rhwydwaith byd-eang.