శ్రేణి మరియు లింక్డ్ జాబితా మధ్య వ్యత్యాసం
విషయము
- పోలిక చార్ట్
- అర్రే యొక్క నిర్వచనం
- శ్రేణుల గురించి గుర్తుంచుకోవలసిన కొన్ని భావనలను చూద్దాం:
- శ్రేణులపై చేసే ఆపరేషన్లు:
- ఉదాహరణ
- లింక్డ్ జాబితా యొక్క నిర్వచనం
- లింక్డ్ జాబితాలో చేసే ఆపరేషన్లు:
- ఉదాహరణ
- ముగింపు
మధ్య ప్రధాన వ్యత్యాసం అమరిక మరియు లింక్ చేసిన జాబితా వారి నిర్మాణానికి సంబంధించి. శ్రేణులు సూచిక ఆధారిత ప్రతి మూలకం సూచికతో అనుబంధించబడిన డేటా నిర్మాణం. మరోవైపు, లింక్డ్ జాబితాపై ఆధారపడుతుంది ప్రస్తావనలు ఇక్కడ ప్రతి నోడ్ డేటా మరియు మునుపటి మరియు తదుపరి మూలకానికి సూచనలను కలిగి ఉంటుంది.
సాధారణంగా, శ్రేణి అనేది ఒక సాధారణ శీర్షిక లేదా వేరియబుల్ పేరుతో సీక్వెన్షియల్ మెమరీ స్థానాల్లో నిల్వ చేయబడిన సారూప్య డేటా వస్తువుల సమితి.
లింక్ చేయబడిన జాబితా ఒక డేటా నిర్మాణం అయితే, ప్రతి మూలకం దాని తదుపరి మూలకానికి అనుసంధానించబడిన మూలకాల క్రమాన్ని కలిగి ఉంటుంది. లింక్డ్ జాబితా యొక్క మూలకంలో రెండు ఫీల్డ్లు ఉన్నాయి. ఒకటి డేటా ఫీల్డ్, మరియు మరొకటి లింక్ ఫీల్డ్, డేటా ఫీల్డ్ నిల్వ మరియు ప్రాసెస్ చేయవలసిన అసలు విలువను కలిగి ఉంటుంది. ఇంకా, లింక్ ఫీల్డ్ లింక్ చేయబడిన జాబితాలోని తదుపరి డేటా అంశం యొక్క చిరునామాను కలిగి ఉంటుంది. నిర్దిష్ట నోడ్ను యాక్సెస్ చేయడానికి ఉపయోగించే చిరునామాను పాయింటర్ అంటారు.
శ్రేణి మరియు అనుసంధాన జాబితా మధ్య మరొక ముఖ్యమైన వ్యత్యాసం ఏమిటంటే, శ్రేణికి స్థిర పరిమాణం ఉంది మరియు ముందుగా ప్రకటించాల్సిన అవసరం ఉంది, కానీ లింక్డ్ జాబితా పరిమాణానికి పరిమితం కాదు మరియు అమలు సమయంలో విస్తరించడం మరియు కుదించడం.
- పోలిక చార్ట్
- నిర్వచనం
- కీ తేడాలు
- ముగింపు
పోలిక చార్ట్
పోలిక కోసం ఆధారం | అమరిక | లింక్ చేసిన జాబితా |
---|---|---|
ప్రాథమిక | ఇది స్థిరమైన సంఖ్యలో డేటా అంశాల స్థిరమైన సెట్. | ఇది డేటా ఐటమ్ల యొక్క వేరియబుల్ సంఖ్యతో కూడిన ఆర్డర్ సెట్. |
పరిమాణం | డిక్లరేషన్ సమయంలో పేర్కొనబడింది. | పేర్కొనవలసిన అవసరం లేదు; అమలు సమయంలో పెరుగుతాయి మరియు కుంచించుకుపోతాయి. |
నిల్వ కేటాయింపు | కంపైల్ సమయంలో ఎలిమెంట్ స్థానం కేటాయించబడుతుంది. | రన్ సమయంలో ఎలిమెంట్ స్థానం కేటాయించబడుతుంది. |
మూలకాల క్రమం | వరుసగా నిల్వ చేయబడింది | యాదృచ్ఛికంగా నిల్వ చేయబడింది |
మూలకాన్ని యాక్సెస్ చేస్తోంది | ప్రత్యక్షంగా లేదా యాదృచ్ఛికంగా ప్రాప్యత చేయబడింది, అనగా, శ్రేణి సూచిక లేదా సబ్స్క్రిప్ట్ను పేర్కొనండి. | వరుసగా ప్రాప్యత చేయబడింది, అనగా, జాబితాలోని మొదటి నోడ్ నుండి పాయింటర్ ద్వారా ప్రయాణించండి. |
మూలకం చొప్పించడం మరియు తొలగించడం | బదిలీ అవసరం కాబట్టి నెమ్మదిగా. | సులభమైన, వేగవంతమైన మరియు సమర్థవంతమైన. |
సెర్చింగ్ | బైనరీ శోధన మరియు సరళ శోధన | సరళ శోధన |
మెమరీ అవసరం | తక్కువ | మరింత |
మెమరీ వినియోగం | అసమర్థ | సమర్ధవంతమైన |
అర్రే యొక్క నిర్వచనం
శ్రేణిని నిర్దిష్ట సంఖ్యలో సజాతీయ మూలకాలు లేదా డేటా అంశాల సమితిగా నిర్వచించారు. దీని అర్ధం శ్రేణిలో ఒక రకమైన డేటా మాత్రమే ఉంటుంది, అన్ని పూర్ణాంకాలు, అన్ని ఫ్లోటింగ్ పాయింట్ సంఖ్యలు లేదా అన్ని అక్షరాలు. శ్రేణి యొక్క ప్రకటన క్రింది విధంగా ఉంది:
int a;
డేటా రకం లేదా రకం మూలకాల శ్రేణి దుకాణాలను పూర్ణాంకం నిర్దేశిస్తుంది. “A” అనేది శ్రేణి యొక్క పేరు, మరియు చదరపు బ్రాకెట్లలో పేర్కొన్న సంఖ్య శ్రేణి నిల్వ చేయగల మూలకాల సంఖ్య, దీనిని శ్రేణి యొక్క పరిమాణం లేదా పొడవు అని కూడా పిలుస్తారు.
శ్రేణుల గురించి గుర్తుంచుకోవలసిన కొన్ని భావనలను చూద్దాం:
- శ్రేణి యొక్క వ్యక్తిగత అంశాలను శ్రేణి యొక్క పేరును వివరించడం ద్వారా యాక్సెస్ చేయవచ్చు, తరువాత చదరపు బ్రాకెట్లలోని సూచిక లేదా సబ్స్క్రిప్ట్ (శ్రేణిలోని మూలకం యొక్క స్థానాన్ని నిర్ణయించడం). ఉదాహరణకు, శ్రేణి యొక్క 5 వ మూలకాన్ని తిరిగి పొందడానికి, మేము ఒక ప్రకటనను వ్రాయాలి a.
- ఏదైనా సందర్భంలో శ్రేణి యొక్క మూలకాలు వరుస మెమరీ స్థానంలో నిల్వ చేయబడతాయి.
- శ్రేణి యొక్క మొదటి మూలకం సూచిక సున్నా కలిగి ఉంటుంది. దీని అర్థం మొదటి మరియు చివరి మూలకం వరుసగా a మరియు వరుసగా పేర్కొనబడుతుంది.
- శ్రేణిలో నిల్వ చేయగల మూలకాల సంఖ్య, అనగా, శ్రేణి యొక్క పరిమాణం లేదా దాని పొడవు క్రింది సమీకరణం ద్వారా ఇవ్వబడుతుంది:
(ఎగువ బౌండ్-దిగువ బౌండ్) + 1
పై శ్రేణి కోసం, ఇది (9-0) + 1 = 10 అవుతుంది. ఇక్కడ 0 అనేది శ్రేణి యొక్క దిగువ బంధం, మరియు 9 శ్రేణి యొక్క ఎగువ బంధం. - శ్రేణులను లూప్ ద్వారా చదవవచ్చు లేదా వ్రాయవచ్చు. మేము ఒక డైమెన్షనల్ శ్రేణిని చదివితే, దీనికి చదవడానికి ఒక లూప్ అవసరం మరియు మరొకటి శ్రేణిని వ్రాయడానికి (ఇంగ్) అవసరం, ఉదాహరణకు:
ఒక. శ్రేణి చదవడానికి
(i = 0; i <= 9; i ++)
{స్కాన్ఫ్ (“% d”, & ఎ); }
బి. శ్రేణి రాయడం కోసం
(i = 0; i <= 9; i ++)
{f (“% d”, ఎ); } - 2-D శ్రేణి విషయంలో, దీనికి రెండు ఉచ్చులు అవసరం మరియు అదేవిధంగా n- డైమెన్షనల్ శ్రేణికి n ఉచ్చులు అవసరం.
శ్రేణులపై చేసే ఆపరేషన్లు:
- శ్రేణి యొక్క సృష్టి
- శ్రేణిని దాటుతుంది
- క్రొత్త మూలకాల చొప్పించడం
- అవసరమైన మూలకాల తొలగింపు.
- ఒక మూలకం యొక్క మార్పు.
- శ్రేణుల విలీనం
ఉదాహరణ
కింది ప్రోగ్రామ్ శ్రేణి యొక్క పఠనం మరియు రచనలను వివరిస్తుంది.
# ఉన్నాయి
# ఉన్నాయి
void main ()
{
int a, i;
f ("శ్రేణిని నమోదు చేయండి");
(i = 0; i <= 9; i ++)
{
scanf ("% d", & a);
}
f ("శ్రేణిని నమోదు చేయండి");
(i = 0; i <= 9; i ++)
{
f ("% d n", ఎ);
}
getch ();
}
లింక్డ్ జాబితా యొక్క నిర్వచనం
లింక్డ్ లిస్ట్ అనేది ఒకదానితో ఒకటి లింక్ చేయబడిన కొన్ని డేటా ఎలిమెంట్స్ యొక్క నిర్దిష్ట జాబితా. ఇందులో ప్రతి మూలకం తార్కిక క్రమాన్ని సూచించే తదుపరి మూలకానికి సూచిస్తుంది. ప్రతి మూలకాన్ని నోడ్ అంటారు, దీనికి రెండు భాగాలు ఉంటాయి.
సమాచారాన్ని నిల్వ చేసే INFO భాగం మరియు తదుపరి మూలకాన్ని సూచించే POINTER. చిరునామాను నిల్వ చేయడానికి మీకు తెలిసినట్లుగా, సి లో పాయింటర్లు అనే ప్రత్యేకమైన డేటా నిర్మాణాలు ఉన్నాయి. అందువల్ల జాబితా యొక్క రెండవ ఫీల్డ్ తప్పనిసరిగా పాయింటర్ రకంగా ఉండాలి.
లింక్ చేయబడిన జాబితాల రకాలు సింగ్లీ-లింక్డ్ లిస్ట్, డబుల్ లింక్డ్ లిస్ట్, సర్క్యులర్ లింక్డ్ లిస్ట్, సర్క్యులర్ డబుల్ లింక్డ్ లిస్ట్.
లింక్డ్ జాబితాలో చేసే ఆపరేషన్లు:
- సృష్టి
- నదీ ప్రవాహానికి అడ్డంగా ప్రయాణం
- చొప్పించడం
- తొలగింపు
- సెర్చింగ్
- జోడింపు
- ప్రదర్శన
ఉదాహరణ
కింది స్నిప్పెట్ లింక్ చేయబడిన జాబితాను సృష్టించడాన్ని వివరిస్తుంది:
struct నోడ్
{
పూర్ణాంకం సంఖ్య;
స్టక్ట్ నోడ్ * తదుపరి;
}
ప్రారంభం = NULL;
void create ()
{
typedef struct node NODE;
NODE * p, * q;
చార్ ఎంపిక;
మొదటి = NULL;
అలా
{
p = (NODE *) malloc (sizeof (NODE));
f ("డేటా అంశాన్ని నమోదు చేయండి n");
scanf ("% d", & p -> num);
if (p == NULL)
{
q = ప్రారంభం;
అయితే (q -> తదుపరి! = NULL)
{q = q -> తదుపరి
}
p -> తదుపరి = q -> తదుపరి;
q -> = p;
}
వేరే
{
p -> తదుపరి = ప్రారంభం;
ప్రారంభం = p;
}
f ("మీరు కొనసాగించాలనుకుంటున్నారా (y లేదా n అని టైప్ చేయండి? n");
scanf ("% c", & ఎంపిక);
}
while ((ఎంపిక == y) || (ఎంపిక == Y));
}
- శ్రేణి అంటే డేటా నిర్మాణం సారూప్య రకం డేటా మూలకాల సేకరణను కలిగి ఉంటుంది, అయితే లింక్డ్ జాబితాను ఆదిమేతర డేటా నిర్మాణంగా పరిగణిస్తారు, ఇది నోడ్స్ అని పిలువబడే క్రమం లేని లింక్డ్ ఎలిమెంట్ల సేకరణను కలిగి ఉంటుంది.
- శ్రేణిలో మూలకాలు సూచికలకు చెందినవి, అనగా, మీరు నాల్గవ మూలకంలోకి ప్రవేశించాలనుకుంటే, మీరు వేరియబుల్ పేరును దాని సూచికతో లేదా చదరపు బ్రాకెట్లోని స్థానంతో వ్రాయాలి.
లింక్ చేయబడిన జాబితాలో, మీరు తల నుండి ప్రారంభించి, నాల్గవ మూలకానికి వచ్చే వరకు మీ మార్గం ద్వారా పని చేయాలి. - లింక్డ్ జాబితా సరళ సమయం తీసుకుంటుండగా మూలకం శ్రేణిని యాక్సెస్ చేయడం వేగంగా ఉంటుంది, ఇది కొంచెం నెమ్మదిగా ఉంటుంది.
- శ్రేణులలో చొప్పించడం మరియు తొలగించడం వంటి ఆపరేషన్లు చాలా సమయం తీసుకుంటాయి. మరోవైపు, లింక్డ్ జాబితాలలో ఈ కార్యకలాపాల పనితీరు వేగంగా ఉంటుంది.
- శ్రేణులు స్థిర పరిమాణంలో ఉంటాయి. దీనికి విరుద్ధంగా, లింక్డ్ జాబితాలు డైనమిక్ మరియు సౌకర్యవంతమైనవి మరియు దాని పరిమాణాన్ని విస్తరించవచ్చు మరియు కుదించవచ్చు.
- శ్రేణిలో, కంపైల్ సమయంలో మెమరీ కేటాయించబడుతుంది, అయితే లింక్డ్ జాబితాలో అది అమలు లేదా రన్టైమ్ సమయంలో కేటాయించబడుతుంది.
- మూలకాలు వరుసగా శ్రేణులలో నిల్వ చేయబడతాయి, అయితే ఇది లింక్డ్ జాబితాలలో యాదృచ్ఛికంగా నిల్వ చేయబడుతుంది.
- శ్రేణిలోని సూచికలో వాస్తవ డేటా నిల్వ చేయబడటం వలన మెమరీ అవసరం తక్కువగా ఉంటుంది. దీనికి విరుద్ధంగా, అదనపు తదుపరి మరియు మునుపటి సూచన మూలకాల నిల్వ కారణంగా లింక్డ్ జాబితాలలో ఎక్కువ మెమరీ అవసరం.
- అదనంగా మెమరీ వినియోగం శ్రేణిలో అసమర్థంగా ఉంటుంది. దీనికి విరుద్ధంగా, మెమరీ వినియోగం శ్రేణిలో సమర్థవంతంగా ఉంటుంది.
ముగింపు
అర్రే మరియు లింక్డ్ జాబితాలు డేటా స్ట్రక్చర్ రకాలు వాటి నిర్మాణం, యాక్సెస్ మరియు మానిప్యులేషన్ పద్ధతులు, మెమరీ అవసరం మరియు వినియోగం. మరియు దాని అమలుపై ప్రత్యేక ప్రయోజనం మరియు అప్రయోజనాలు ఉన్నాయి. పర్యవసానంగా, అవసరానికి అనుగుణంగా ఒకటి ఉపయోగించవచ్చు.