పైథాన్‌లో లింక్డ్ జాబితాను ఎలా అమలు చేయాలి?



నవీకరణను చొప్పించడానికి మరియు లింక్ చేయబడిన జాబితాలోని అంశాలను తొలగించడానికి వివిధ పద్ధతులతో పైథాన్‌లో లింక్డ్ జాబితాను ఎలా సృష్టించవచ్చో ఈ వ్యాసం చూపిస్తుంది.

పైథాన్ ప్రోగ్రామింగ్ లాంగ్వేజ్ అనేది ఓపెన్-సోర్స్ భాష, ఇది వెలుపల పెట్టె అమలుతో ప్రత్యేకమైనది మరియు నేర్చుకోవడం సులభం చేస్తుంది. అయినప్పటికీ లింక్ చేయబడిన జాబితా యొక్క భావనకు మద్దతు ఇవ్వదు, లింక్ చేయబడిన జాబితాను పొందడానికి వేరే అమలు ద్వారా దాని చుట్టూ ఒక మార్గం ఉంది. ఈ వ్యాసంలో, పైథాన్‌లో లింక్డ్ జాబితాను ఎలా తయారు చేయవచ్చో నేర్చుకుంటాము. ఈ బ్లాగులో పొందుపరచబడిన విషయాలు క్రిందివి:

ప్రారంభిద్దాం !!





వస్తువుల శ్రేణిని ఎలా సృష్టించాలి

లింక్డ్ జాబితా అంటే ఏమిటి?

లింక్ జాబితా సారూప్య డేటా రకాన్ని కలిగి ఉన్న నోడ్‌ల క్రమం, ప్రతి నోడ్‌లో ఒక డేటా ఆబ్జెక్ట్ మరియు తదుపరి నోడ్‌కు పాయింటర్ ఉంటుంది.

లింక్డ్ జాబితా బహుళ నోడ్ల సేకరణతో సరళ డేటా నిర్మాణం. ఎక్కడ ఇach మూలకం దాని స్వంత డేటాను మరియు తదుపరి మూలకం యొక్క స్థానానికి పాయింటర్‌ను నిల్వ చేస్తుంది. లింక్ చేయబడిన జాబితాలోని చివరి లింక్ శూన్యంగా సూచిస్తుంది, ఇది గొలుసు ముగింపును సూచిస్తుంది. లింక్ చేయబడిన జాబితాలోని ఒక మూలకాన్ని a అంటారు నోడ్ . మొదటి నోడ్ను అంటారు తల .చివరి నోడ్ అంటారుది తోక .
లింక్డ్ లిస్ట్ - పైథాన్ - ఎడురేకాలో లింక్డ్ లిస్ట్ప్రామాణిక పైథాన్ లైబ్రరీకి లింక్డ్ జాబితా లేదు. నోడ్స్ యొక్క భావనను ఉపయోగించడం ద్వారా మేము లింక్ జాబితా డేటా నిర్మాణం యొక్క భావనను అమలు చేయవచ్చు.



లింక్ చేయబడిన దాని గురించి ఇప్పుడు మేము తెలుసుకున్నాము. కాబట్టి లింక్డ్ జాబితాను అమలు చేయడానికి ముందుకు వెళ్దాం.

లింక్డ్ జాబితాను అమలు చేస్తోంది

లింక్డ్ జాబితాను సృష్టించడానికి, మేము నోడ్ ఆబ్జెక్ట్‌ని సృష్టించి, ఈ నోడ్ ఆబ్జెక్ట్‌ని ఉపయోగించడానికి మరొక తరగతిని సృష్టిస్తాము.
నోడ్ క్లాస్ సృష్టించడానికి కోడ్.
పై ప్రోగ్రామ్ మూడు డేటా అంశాలతో అనుసంధానించబడిన జాబితాను సృష్టిస్తుంది.

క్లాస్ నోడ్ (ఆబ్జెక్ట్): # క్లాస్ వేరియబుల్స్ ను ప్రారంభించడానికి కన్స్ట్రక్టర్ డెఫ్ __ఇనిట్ __ (సెల్ఫ్, డేటా = ఏదీ లేదు, నెక్స్ట్_నోడ్ = ఏదీ లేదు): self.data = data self.next_node = next_node #get data def get_data (self): return self.data # తదుపరి విలువను పొందండి def get_next (self): return self.next_node # సెట్ తదుపరి డేటా def set_next (self, new_next): self.next_node = new_next

లింక్ జాబితా అమలులో లింక్ చేయబడిన జాబితాలో ఈ క్రింది కార్యాచరణ ఉంటుంది
ఒకటి. చొప్పించు : ఈ పద్ధతి లింక్ చేసిన జాబితాలో క్రొత్త నోడ్‌ను చొప్పిస్తుంది.
2. పరిమాణం : ఈ పద్ధతి లింక్ చేయబడిన జాబితా పరిమాణాన్ని తిరిగి ఇస్తుంది.
3. వెతకండి : ఈ పద్ధతి డేటాను కలిగి ఉన్న నోడ్‌ను తిరిగి ఇస్తుంది, లేకపోతే లోపం పెరుగుతుంది
నాలుగు. తొలగించు : ఈ పద్ధతి డేటాను కలిగి ఉన్న నోడ్‌ను తొలగిస్తుంది, లేకపోతే లోపం పెంచుతుంది



లింక్డ్ జాబితా యొక్క పద్ధతులను చూద్దాం

లింక్ చేసిన జాబితాలో ప్రారంభ పద్ధతి

తరగతి లింక్డ్లిస్ట్ (ఆబ్జెక్ట్): డెఫ్ __ఇనిట్ __ (సెల్ఫ్, హెడ్ = ఏదీ లేదు): self.head = head

ప్రారంభించడం కోసం ప్రారంభ పద్ధతి ఉపయోగించబడుతుంది తరగతి జాబితాలో నోడ్స్ లేకపోతే వేరియబుల్ అది ఏదీ సెట్ చేయబడదు.

చొప్పించు:

డెఫ్ చొప్పించు (స్వీయ, డేటా): new_node = నోడ్ (డేటా) new_node.set_next (self.head) self.head = new_node

ఈ చొప్పించు పద్ధతి డేటాను తీసుకుంటుంది, ఇచ్చిన డేటాతో క్రొత్త నోడ్‌ను ప్రారంభిస్తుంది మరియు దానిని జాబితాకు జోడిస్తుంది. సాంకేతికంగా మీరు జాబితాలో ఎక్కడైనా ఒక నోడ్‌ను చొప్పించవచ్చు, కాని దీన్ని చేయటానికి సరళమైన మార్గం ఏమిటంటే, దానిని జాబితా యొక్క తల వద్ద ఉంచడం మరియు క్రొత్త నోడ్‌ను పాత తలపై సూచించడం (ఇతర నోడ్‌లను లైన్‌లోకి నెట్టడం).

పరిమాణం

# జాబితా డెఫ్ సైజు (సెల్ఫ్) లోని మొత్తం నోడ్ సంఖ్యలను అందిస్తుంది: ప్రస్తుత = సెల్ఫ్ హెడ్ కౌంట్ = 0 ప్రస్తుతమున్నప్పుడు: కౌంట్ + = 1 కరెంట్ = కరెంట్.గెట్_నెక్స్ట్ () రిటర్న్ కౌంట్

పరిమాణ పద్ధతి చాలా సులభం, ఇది ప్రాథమికంగా ఇకపై కనుగొనలేని వరకు నోడ్‌లను లెక్కిస్తుంది మరియు ఎన్ని నోడ్‌లను కనుగొన్నదో తిరిగి ఇస్తుంది. ఈ పద్ధతి హెడ్ నోడ్ వద్ద మొదలవుతుంది, నోడ్ల రేఖ చివరికి వచ్చే వరకు ప్రయాణిస్తుంది (ప్రస్తుతానికి అది ముగింపుకు చేరుకున్నప్పుడు ఏదీ ఉండదు) అది ఎన్ని నోడ్లను చూస్తుందో ట్రాక్ చేస్తుంది.

వెతకండి

# నోడ్డేటా ఉన్న జాబితాలోని నోడ్‌ను తిరిగి ఇస్తుంది, నోడ్ డెఫ్ సెర్చ్ (సెల్ఫ్, నోడ్‌డేటా) లేకపోతే లోపం సంభవించింది: ప్రస్తుత = సెల్ఫ్.హెడ్ ఇస్ప్రెసెంట్ = ప్రస్తుతమున్నప్పుడు తప్పు మరియు ప్రస్తుతము తప్పు అయితే: ప్రస్తుతము.గెట్_డేటా () == నోడ్‌డేటా: isPresent = నిజం వేరే: ప్రస్తుత = current.get_next () కరెంట్ ఏదీ లేకపోతే: పెంచండి విలువ లోపం ('జాబితాలో డేటా లేదు') రిటర్న్ కరెంట్

శోధన వాస్తవానికి పరిమాణంతో సమానంగా ఉంటుంది, కానీ మొత్తం నోడ్‌ల జాబితాను దాటడానికి బదులుగా, ప్రస్తుత నోడ్‌లో అభ్యర్థించిన డేటా ఉందో లేదో చూడటానికి ప్రతి స్టాప్‌లోనూ తనిఖీ చేస్తుంది. అలా అయితే, ఆ డేటాను కలిగి ఉన్న నోడ్‌ను తిరిగి ఇస్తుంది. పద్ధతి మొత్తం జాబితా గుండా వెళితే, ఇంకా డేటాను కనుగొనలేకపోతే, అది విలువ లోపాన్ని లేవనెత్తుతుంది మరియు డేటా జాబితాలో లేదని వినియోగదారుకు తెలియజేస్తుంది.

తొలగించు

# నోడ్ లేకపోతే లింక్డ్ లిస్ట్ రిటర్న్స్ లోపం నుండి నోడ్‌ను తొలగించండి డెఫ్ డిలీట్ (సెల్ఫ్, నోడ్డేటా): ప్రస్తుత = సెల్ఫ్.హెడ్ మునుపటి = ఏదీ లేదు ప్రాతినిధ్యం = ప్రస్తుతమున్నప్పుడు తప్పు మరియు ప్రస్తుతము తప్పు అయితే: ప్రస్తుతము.గెట్_డేటా () == నోడ్‌డేటా: isPresent = నిజం వేరే: మునుపటి = ప్రస్తుత కరెంట్ = కరెంట్.గెట్_నెక్స్ట్ () ప్రస్తుతము లేకపోతే: మునుపటిది కాకపోతే విలువ లోపం ('జాబితాలో డేటా లేదు') పెంచండి: self.head = current.get_next () else: previous.set_next ( current.get_next ())

తొలగింపు పద్ధతి శోధన చేసిన విధంగానే జాబితాను దాటుతుంది, కానీ ప్రస్తుత నోడ్‌ను ట్రాక్ చేయడంతో పాటు, తొలగించు పద్ధతి చివరి నోడ్‌ను సందర్శించినట్లు కూడా గుర్తుంచుకుంటుంది. తొలగింపు చివరకు నోడ్ వద్దకు వచ్చినప్పుడు అది తొలగించాలనుకుంటుంది. ఇది గొలుసు నుండి “లీప్‌ఫ్రాగింగ్” ద్వారా ఆ నోడ్‌ను తొలగిస్తుంది.

దీని అర్థం, తొలగించే పద్ధతి అది తొలగించాలనుకుంటున్న నోడ్‌కు చేరుకున్నప్పుడు, అది సందర్శించిన చివరి నోడ్‌ను (‘మునుపటి’ నోడ్) చూస్తుంది మరియు మునుపటి నోడ్ యొక్క పాయింటర్‌ను రీసెట్ చేస్తుంది. త్వరలో తొలగించబడే నోడ్‌కు సూచించకుండా.

ఇది వరుసలోని తదుపరి నోడ్‌కు సూచిస్తుంది. తొలగించబడుతున్న పేలవమైన నోడ్‌కు నోడ్‌లు ఏవీ సూచించనందున, ఇది జాబితా నుండి సమర్థవంతంగా తొలగించబడుతుంది!

పైథాన్ అనుసంధాన జాబితా యొక్క భావనకు నిజంగా మద్దతు ఇవ్వనప్పటికీ, ఇదే విధమైన అమలుతో పైథాన్‌లో లింక్డ్ జాబితాను ఎలా తయారు చేయవచ్చో నేర్చుకున్న ఈ వ్యాసం చివరకి ఇది మనలను తీసుకువస్తుంది. ఈ ట్యుటోరియల్‌లో మీతో పంచుకున్న అన్ని విషయాలతో మీరు స్పష్టంగా ఉన్నారని నేను ఆశిస్తున్నాను.

“పైథాన్‌లో లింక్డ్ లిస్ట్” లో ఈ కథనాన్ని మీరు కనుగొంటే, చూడండి ప్రపంచవ్యాప్తంగా 250,000 కంటే ఎక్కువ సంతృప్తికరమైన అభ్యాసకుల నెట్‌వర్క్‌తో విశ్వసనీయ ఆన్‌లైన్ అభ్యాస సంస్థ.

మీ ప్రయాణంలో అడుగడుగునా మీకు సహాయం చేయడానికి మేము ఇక్కడ ఉన్నాము మరియు విద్యార్థులు మరియు నిపుణుల కోసం రూపొందించిన పాఠ్యాంశాలను రూపొందించండి. . ఈ కోర్సు మీకు పైథాన్ ప్రోగ్రామింగ్‌లోకి రావడానికి మరియు వివిధ మరియు ప్రధాన మరియు అధునాతన పైథాన్ భావనలకు శిక్షణ ఇవ్వడానికి రూపొందించబడింది వంటి

మీకు ఏవైనా ప్రశ్నలు వస్తే, “పైథాన్‌లో లింక్డ్ లిస్ట్” యొక్క వ్యాఖ్యల విభాగంలో మీ ప్రశ్నలన్నింటినీ అడగడానికి సంకోచించకండి మరియు మా బృందం సమాధానం ఇవ్వడానికి సంతోషిస్తుంది.

జావా డబుల్‌ను పూర్ణాంకానికి ఎలా మార్చాలి