డేటా స్ట్రక్చర్

కంప్యూటరు లో దత్తాంశాలు (data) దాచుకుందుకి వాడే అమరికని డేటా స్ట్రక్చరు (data structure) అంటారు. ఉదాహరణకి ఒక తరగతిలో విద్యార్థులు ఎంతెంత పొడుగు ఉన్నారో తెలియజేసే జాబితానే తీసుకుందాం. విద్యార్థి పేరు, దానికి ఎదురుగా పొడుగు రాస్తే ఆ జాబితా వాడుకుందుకి ఉపయోగపడుతుంది కదా! ఇదే జాబితాలో విద్యార్థుల పేర్లని అకారాది క్రమంలో రాస్తే ఇంకా బాగా ఉపయోగపడొచ్చు కదా! విద్యార్థులు ఒకే సమయంలో అనేక తరగతులలో నమోదు అయి చదువుకోవచ్చు కదా! అప్పుడు ఆ విద్యార్థి పేరుకి ఎదురుగా ఏయే పాఠ్యాంశాలలో ఎన్నెన్ని మార్కులు వచ్చేయూ రాస్తే ప్రయోజనం ఎక్కువగా ఉంటుంది కదా.

Data structure

ఒక జాబితా తయారు చేసిన తరువాత, కొత్త విద్యార్థి వచ్చి తరగతిలో చేరితే? అప్పుడు ఆ కొత్త పేరు జాబితా చివ రాయడమా? లేక అకారాది క్రమానికి భంగం రాకుండా జాబితాలో మధ్య ఖాళీ చేసి, అక్కడ దూర్చడమా? ఈ సందర్భంలో సాదా జాబితా కంటె లంకెల జాబితా (linked list) అనుకూలంగా ఉంటుంది.

కంప్యూటరులో దత్తాంశాలని భద్రపరచి వాడుకోవలసిన సందర్భాలలో ఇటువంటి ప్రశ్నలు ఎదురవుతాయి. కొన్ని కొన్ని పరిస్థితులలో జాబితాలు (lists), సారణిలు (tables) కంటె చెట్లు (trees) అనుకూలంగా ఉంటాయి. ఉదాహరణకి వంశవృక్షం కంప్యూటరులో దాచాలంటే చెట్టు ఆకారంలో ఉన్న అమరిక బాగా ఉపయోగపడుతుంది.

సినిమాహాలు దగ్గర టికెట్లు కోసం వేచి ఉండవలసి వచ్చినప్పుడు "వరస" లకి తల, తోక ఉంటే మంచిది. వరసలో తల దగ్గర నిలబడ్డవారికి ముందుగా టిఎకెట్టు అమ్మాలి కదా! ఈ రకం అమరికని క్యూ (queue) అంటారు. కొన్ని సందర్భాలలో వరసలో చివరన ఉన్న వారికి (అనగా ఆఖరున వచ్చి చేరినవారికి) ముందుగా వడ్డన జరుగుతుంది! ఈ రకం వరసని ఇంగ్లీషులో stack అంటారు.

ఒక్కో రకం అనువర్తనం అనువర్తనానికి ఒక్కో రకమయిన డేటా స్ట్రక్చర్ సరిపోతుంది, కొన్ని కేవలం ఒక ప్రత్యేకమయిన పనికే ఉపయోగపడతాయి. ఉదాహరణకు బీ-ట్రీ అనే డేటా స్ట్రక్చర్ దత్తకోశం దత్తకోశాలను నిర్వహించేందుకు ఉపయోగపడితే, కంపైలరు పనులకు హ్యాష్ పట్టికలు సమర్ధవంతంగా ఉపయోగపడతాయి.[1]

మూలాలు మార్చు