[Powered by Google Translate] [6 వ వారం కొనసాగిన] [డేవిడ్ J. మలన్] [హార్వర్డ్ విశ్వవిద్యాలయం] [ఈ CS50 ఉంది.] [CS50.TV] ఈ CS50 మరియు ఈ వారం 6 ముగింపు. కాబట్టి CS50x, edX చొరవ ప్రమేయం హార్వర్డ్ యొక్క మొదటి కోర్సులు ఒక నిజానికి ఈ గత సోమవారం నిలిచింది. మీరు ఇంటర్నెట్ లో ఏమి ఇతరుల దృశ్యం పొందడానికి కావాలనుకుంటే ఇప్పుడు పాటు అనుసరిస్తున్నారు, మీరు x.cs50.net వెళ్ళవచ్చు. ఆ, edx.org న సరైన స్థలం మిమ్మల్ని మళ్లిస్తుంది ఈ మరియు MIT మరియు బెర్కిలీ నుండి ఇతర కోర్సులు ఇప్పుడు నివసిస్తున్న ప్రాంతం ఇది. మీరు ఒక ఖాతా కోసం సైన్ అప్ ఉంటుంది; మీరు భౌతిక ఎక్కువగా ఇదే అని చూడగలరు మీరు మేము ప్రతిదీ సిద్ధంగా వంటి, ఆలస్యం కొన్ని వారాల అయితే ఈ సెమిస్టర్ వచ్చింది. చేసిన వంటి కాని CS50x విద్యార్థులు ఇప్పుడు చూస్తారు చాలా ఇటువంటి ఒక అంతర్ముఖం. ఈ ఉదాహరణకు, సమస్య సెట్ 0 కోసం walkthrough ప్రముఖ Zamyla ఉంది. Edx.org లాగ్ ఇన్ అయిన తరువాత, ఒక CS50x విద్యార్థి విషయాలను రకాల చూస్తాడు ఒక కోర్సులో మీరు చూడాలనుకుంటున్నారా చేయాలి: సోమవారం కోసం ఉపన్యాసం, బుదవారం, వివిధ లఘు చిత్రాలు, సమస్య సెట్లు, పూర్తి వివరణలు, లు కోసం ఉపన్యాసం. అదనంగా, మీరు ఇక్కడ చూడండి వంటి, యంత్రం అనువాదాలు , ఇటాలియన్, స్పానిష్, జపనీస్, చైనీస్ లోకి ఆంగ్ల అనువాదాలు యొక్క ఖచ్చితంగా అసంపూర్ణ అని ఇతర భాషల మరియు మొత్తం బంచ్ మేము ఒక API అనే ఉపయోగించి programmatically వాటిని రోల్, వంటి Google నుండి లేదా అనువర్తన ప్రోగ్రామింగ్ అంతర్ముఖం, మాకు ఈ ఇతర భాషలకు ఇంగ్లీష్ మార్చేందుకు అనుమతిస్తుంది. కానీ కొన్ని వందల ప్లస్ వాలంటీర్లు అద్భుతమైన ఆత్మ కృతజ్ఞతలు, దయచేసి పాల్గొనడానికి ఇచ్చింది చేసిన ఇంటర్నెట్ లో అనుకోని వ్యక్తులు ఈ ప్రాజెక్ట్ లో, మేము క్రమంగా ఆ అనువాదాల నాణ్యత మెరుగుదల వస్తుంది మానవులు మా కంప్యూటర్లు చేసిన తప్పులను సరిచేయడానికి ద్వారా. మేము కొన్ని మరింత విద్యార్థులు మేము మొదట అంచనా కంటే సోమవారం అప్ చేస్తున్నాయి అవుట్ కనుక ఇది మారుతుంది. నిజానికి, ఇప్పుడు CS50x ఇంట్లో పాటు కింది 100,000 ప్రజలు కలిగి ఉంది. కాబట్టి మీరు కంప్యూటర్ సైన్స్ లో ఈ కోర్సు చేయడానికి ఈ ప్రారంభ తరగతి భాగంగా ఉంటాయి తెలుసుకుంటారు సాధారణంగా విద్య, విస్తృతంగా ఆక్సెస్. అండ్ రియాలిటీ, ఈ భారీ ఆన్లైన్ కోర్సులు కొన్ని, ఇప్పుడు వారు అన్ని మేము ఇక్కడ చేసిన కనిపిస్తుంది, ఈ చాలా ఎక్కువ సంఖ్యలో ప్రారంభం. గోల్, చివరికి, CS50x కోసం సాధ్యమైనంత ముగింపు రేఖకు వంటి అనేక మంది పొందడానికి నిజంగా ఉంది. డిజైన్ ద్వారా, CS50x ఈ గత సోమవారం నుంచి ఆఫర్ అన్నారు మిగిలిన ప్రాంతాల్లో పాఠశాల కట్టుబాట్లు ఉన్నాయి వారిని ఎవరు తద్వారా ఏప్రిల్ 15, 2013 ద్వారా అన్ని మార్గం,, పని, కుటుంబ, ఇతర విభేదాలు మరియు వంటి ఒక బిట్ మరింత వశ్యత కలిగి ఈ కోర్సు ప్రవేశిస్తాడు ఏ తో, ఇది, అది చెప్పడానికి తగినంత చాలా ఆశగా చేయబడుతుంది ఒక సాధారణ సెమిస్టర్ సమయంలో కేవలం మూడు నెలల కాలంలో మాత్రమే. కానీ ఈ విద్యార్థులు, అదే విషయాన్ని చూసే, అదే సమస్య సెట్లు పరిష్కారంలో ఉంటుంది అదే లఘు చిత్రాలు మరియు వంటి యాక్సెస్ కలిగి. కాబట్టి మేము ఈ కలిసి అన్ని నిజంగా అని తెలుసుకుంటారు. మరియు CS50x ముగింపు లక్ష్యాలలో ఒకటి కేవలం చాలా వారిని పొందడానికి కాదు ముగింపు రేఖకు మరియు వాటిని కంప్యూటర్ సైన్స్ యొక్క ఈ ఏర్పడిన అర్థం చేసుకోవడానికి మరియు ప్రోగ్రామింగ్ కాకుండా వారిని ఈ భాగస్వామ్యం అనుభవం కలిగి కలిగి. ప్రాంగణంలో 50 నిర్వచించే లక్షణాలను ఒకటి, మేము ఆశిస్తున్నాము, కొన్నిసార్లు, బాగా లేదా చెడుకో, వర్గ అనుభవం ఈ విధమైన ఉంది కానీ ఈ ప్రజలు ఎడమ మరియు కుడి చెయ్యి అవసరం, మరియు కార్యాలయం గంటల hackathon మరియు ఫెయిర్. ఇది, ఆన్లైన్ ఫొల్క్స్ ఉన్న వ్యక్తులను అలా ఒక చిన్న కష్టం కానీ CS50x, మొట్టమొదటి CS50 ఎక్స్పో ఏప్రిల్ లో ముగించారు కనిపిస్తుంది ఫెయిర్ మా ఆలోచన యొక్క ఒక ఆన్లైన్ అనుకరణగా చెప్పవచ్చు, ఇది , 2 నిమిషాల వీడియో - పేరు విద్యార్థులు ఈ వేల అన్ని ఒక 1 submit ఆహ్వానించబడతారు వాటిని వారి ఫైనల్ ప్రాజెక్ట్ లేదా వీడియో యొక్క ఒక స్క్రీన్కాస్ట్ను హలో ఊపుతూ గాని మరియు వారి ప్రాజెక్ట్ గురించి మాట్లాడటం మరియు demoing, చాలా మీ పూర్వీకుల మాదిరిగానే ఫెయిర్ లో ప్రాంగణంలోని ఇక్కడ చేసిన సెమిస్టర్ చివరి నాటికి, ఆశ ప్రపంచ ప్రదర్శన కలిగి ఉంటుంది, కాబట్టి CS50x విద్యార్థులు 'చివరి ప్రాజెక్టుల, చాలా ఆ మాదిరిగా ప్రాంగణంలో ఇక్కడ మీరు ఈ డిసెంబర్ జరుపుతున్నారు. రాబోయే నెలల్లో ఆ కాబట్టి మరింత. 100,000 విద్యార్ధులు, అయితే, కొన్ని CA ల అవసరం వస్తుంది. మీరు అబ్బాయిలు ఇక్కడ ట్రయల్ బ్లేజింగ్ మరియు CS50 తీసుకొని చేయబడతాయి కొన్ని వారాల edX న వారిని ఈ విషయాన్ని విడుదల ముందుగా, మేము ఈ చొరవ సాధ్యమైనంత మా స్వంత విద్యార్ధులు అనేక కలిగి చేయాలనకుంటున్నాను తెలుసుకుంటారు, సెమిస్టర్ అలాగే ఈ శీతాకాలంలో మరియు ఈ వస్తున్న వసంత రెండు. కాబట్టి మీరు CS50x లో పాల్గొనడానికి అని, ముఖ్యంగా CS50x చర్చించండి, CS50 చర్చించండి యొక్క edX వెర్షన్ లో చేరారు మీరు అనేక ప్రాంగణంలో ఉపయోగించి చేయబడ్డాయి, ఆన్లైన్ బులెటిన్ బోర్డు, URL కి తల చెయ్యండి,, మాకు మీరు ఎవరో తెలియజేయండి మేము ఇలానే ఒక విద్యార్థులు మరియు సిబ్బంది యొక్క జట్టు మరియు అధ్యాపకులు నిర్మించటానికి ఇష్టం ఎందుకంటే ప్రాంగణంలో వారు కేవలం ప్రదర్శన మరియు సహాయం చేస్తారు. మరియు వారు వారికి తెలిసిన అని ఒక ప్రశ్న చూసినప్పుడు, మీరు ఇంటర్నెట్ లో కొన్ని దేశం లో అక్కడ ఎక్కడో కొన్ని బగ్ రిపోర్ట్ ఒక విద్యార్థి వినడానికి మరియు మీరు కూడా ఇదే విషయం రింగ్ చేసే ఒక గంట ఎందుకంటే కొంతకాలం క్రితం మీ D-హాల్ లో, ఆశాజనక అప్పుడు మీరు చిమ్ మరియు మీ స్వంత అనుభవాన్ని భాగస్వామ్యం చేయవచ్చు. కాబట్టి మీరు అని పాల్గొనే దయచేసి. హార్వర్డ్ వద్ద కంప్యూటర్ సైన్స్ కోర్సులు, ఒక సంప్రదాయం యొక్క ఒక బిట్ కలిగి మీరు గర్వంగా ధరిస్తారు కొన్ని దుస్తులు, కొన్ని బట్టలు, కలిగి వాటిలో CS50, సెమిస్టర్ చివరిలో, మీరు CS50 నిలిచిన చాలా గర్వంగా చెప్పడం మరియు CS50 మరియు వంటి పట్టింది, మరియు మేము ఎల్లప్పుడూ విద్యార్థులు ఇందులో పాల్గొన్నారు ప్రయత్నించండి ఈ ప్రక్రియ వీలైనంత, మేము ఆహ్వానిస్తున్నాము వస్తే లో, సెమిస్టర్ ఈ సమయంలో, విద్యార్థులు నమూనాలు సమర్పించడానికి మీరు మీరు ఉపయోగించాలనుకుంటున్న నచ్చిన Photoshop ఉపయోగించి, లేదా ఏ సాధనం మీరు టీ షర్టులు మరియు అలంకరించిన కోసం నమూనాలు సమర్పించడానికి, ఒక రూపకర్త అయితే మరియు కుక్కల గొడుగులతో, చిన్న bandanas మేము ఇప్పుడు మరియు ఇష్టం. మరియు అన్ని అప్పుడు - విజేతలు ప్రతి సంవత్సరం తర్వాత ప్రదర్శించబడుతున్నాయి store.cs50.net వద్ద కోర్సు యొక్క వెబ్ సైట్ లో. అంతా అక్కడ ఖర్చు అమ్మారు, కానీ వెబ్సైట్ కేవలం స్వయంగా పరుగుల మరియు ప్రజలు వారు నచ్చిన రంగులు మరియు నమూనాలు ఎంచుకోవడానికి అనుమతిస్తుంది. కాబట్టి మనం కేవలం గత ఏడాది డిజైన్లు కొన్ని భాగస్వామ్యం కావలసిన ఆలోచన ఒక వార్షిక సంప్రదాయంగా ఉంది, ఇక్కడ ఈ ఒక పాటు వెబ్సైట్లో ఉన్నాయి. "నేను Faultn Seg నేను ప్రతి రోజు", గత ఏడాది సమర్పణలు ఒకటి ఇది పూర్వ విద్యార్థులు కోసం ఇప్పటికీ అందుబాటులో ఉంది. మేము ఈ ఒకదాన్ని కలిగి ఉన్నారు "CS50, 1989 స్థాపించబడినది." మా Bowdens ఒకటి, రాబ్, గత ఏడాది బాగా ప్రసిద్ధి చెందింది. "టీమ్ బౌడెన్" జన్మించాడు, ఈ డిజైన్ ఎక్కువగా విక్రయించే మధ్య, సమర్పించారు. ఇక్కడ ఈ ఒకటి. చాలా మంది అమ్మకాలు లాగ్లను ప్రకారం "బౌడెన్ ఫీవర్" వచ్చింది. ఇప్పుడు అప్ ఇంటర్నెట్ లో, మీ డిజైన్ ఉంటుంది గుర్తిస్తారు. తదుపరి సమస్య ఈ మరిన్ని వివరాలకు వచ్చిన అమర్చుతుంది. మరొక సాధనం: మీరు ఇప్పుడు ఆశాజనక కొన్ని ప్రాచుర్యంలో మరియు చేసిన GDB కొన్ని చేతులు ప్రయోగములు ఇది వాస్తవానికి, ఒక డీబగ్గర్ మరియు మీరు సవరించడానికి అనుమతిస్తుంది పూర్తి తక్కువ స్థాయిలో మీ ప్రోగ్రామ్, ఏ రకాల పనులను? GDB మీరు ఏమి వీలు లేదు? Yeah? నాకు ఏదో ఇవ్వాలని. [స్టూడెంట్ సమాధానం, అపారదర్శక] గుడ్. ఫంక్షన్ లో దశ, కనుక మీరు అమలు టైప్ లేదు మరియు ప్రామాణిక అవుట్పుట్ విషయాలను ముద్రించిన, దాని మొత్తం ద్వారా కార్యక్రమం దెబ్బ ఉన్నాయి. అయితే, మీరు తదుపరి టైప్, లైన్ ద్వారా లైన్ ద్వారా అడుగు చేయవచ్చు గీత లేదా మీరు రాసిన ఒక సాధారణంగా, ఒక ఫంక్షన్ ప్రవేశిస్తాడు మెట్టు ద్వారా లైన్ ద్వారా లైన్ చెయ్యండి. GDB మీరు ఏమి వీలు లేదు? Yeah? [స్టూడెంట్ సమాధానం, అపారదర్శక] వేరియబుల్స్ ముద్రించండి. మీరు మీ కార్యక్రమాన్ని లోపలి చిన్న ఆత్మశోధన చేయాలనుకుంటున్నారా అయితే అన్ని చోట్ల printf ప్రకటనలు రాయడం ఆశ్రయించాల్సిన అవసరం లేకుండా, మీరు ఒక వేరియబుల్ ప్రింట్ ఒక వేరియబుల్ ప్రదర్శిస్తుంది. మీరు GDB వంటి ఒక డీబగ్గర్ తో ఇంకా ఏమి చేయగలను? [స్టూడెంట్ సమాధానం, అపారదర్శక] సరిగ్గా. మీరు బ్రేక్ పాయింట్స్ సెట్ చేయవచ్చు; మీరు బ్రేక్ అమలు చెప్పగలదు ప్రధాన చర్య లేదా foo ఫంక్షన్ వద్ద. మీరు లైన్ 123 వద్ద బ్రేక్ అమలు చెప్పగలను. మరియు బ్రేక్ పాయింట్స్ ఒక నిజంగా శక్తివంతమైన పద్ధతులు ఎందుకంటే మీరు ఎక్కడ మీ సమస్య ఒక సాధారణ భావన ఉంటే బహుశా, మీరు ప్రోగ్రామ్ యొక్క మొత్తం ద్వారా పునాది సమయం వృధా లేదు ఉంది. మీరు తప్పనిసరిగా అక్కడే జంప్ మరియు తరువాత టైప్ చెయ్యవచ్చు - దశ లేదా తదుపరి లేదా అలాంటి దాని ద్వారా పునాది. కానీ GDB వంటి ఏదో తో క్యాచ్, అది మానవ, మీరు సహాయపడే ఉంది మీ సమస్యలను గుర్తించడానికి మరియు మీ దోషాలను గుర్తించడం. ఇది తప్పనిసరిగా వాటిని మీ కోసం చాలా కనుగొనేందుకు లేదు. కాబట్టి మేము ఒక చిన్న కమాండ్ లైన్ సాధనం, ఇది ఇతర రోజు style50 పరిచయం ఒక కొద్దిగా ఎక్కువ సజావుగా మీరు కంటే మీ కోడ్ stylize ప్రయత్నిస్తుంది, మానవ, పూర్తి ఉండవచ్చు కలిగి ఉంటాయి. కానీ, చాలా, నిజంగా కేవలం ఒక సౌందర్య విషయం. ఉపయోగించడానికి కొంత రహస్య అని Valgrind అని ఈ ఇతర సాధనం లేదు అవుట్ కానీ మారుతుంది. దీని అవుట్పుట్ మొదటి చూపులో atrociously గుప్తమైన ఉంది. కానీ ముఖ్యంగా ఇప్పుడు మేము పదం భాగంగా వద్ద ఉన్నట్లు, అద్భుతంగా ఉపయోగం మీరు malloc మరియు డైనమిక్ మెమరీ కేటాయింపు ఉపయోగించడానికి మొదలు పెడుతున్నారు. థింగ్స్ త్వరగా నిజంగా తప్పు వెళ్ళవచ్చు. ఎందుకంటే మీరు మీ మెమోరీని విముక్తికై మర్చిపోతే, లేదా మీరు కొన్ని నల్ పాయింటర్ dereference ఉంటే, లేదా మీరు కొన్ని చెత్త పాయింటర్ dereference, సాధారణంగా ఫలితాలు ఆ లక్షణం ఏమిటి? తప్పు Seg. మరియు మీరు లు లేదా మెగాబైట్ల కొన్ని సంఖ్య ఈ కోర్ ఫైల్ ఇది కూలిపోవడంతో ఆ, మీ ప్రోగ్రామ్ యొక్క మెమరీ రాష్ట్ర సూచిస్తుంది కానీ మీ ప్రోగ్రామ్ చివరికి, విభజన లోపంగా లోపాలుగా seg ఇది ఏదో చెడు దాదాపు ఎల్లప్పుడూ సంబంధించిన జరిగింది అర్థం మీరు ఎక్కడో చేసిన ఒక మెమరీ సంబంధిత తప్పు కు. కాబట్టి Valgrind మీరు ఈ వంటి వాటిని కనుగొనడానికి సహాయం చేస్తుంది. మీరు మీ కార్యక్రమాన్ని సంకలనం చేసిన తర్వాత ఇది, GDB వంటి, మీరు అమలు ఒక సాధనం కానీ నేరుగా మీ అమలు కాకుండా, మీరు Valgrind అమలు మరియు మీరు GDB ఏమి వలె, ఇది మీ ప్రోగ్రామ్ పాస్. ఇప్పుడు, వినియోగం, ఉత్తమ రకం అవుట్పుట్ యొక్క పొందడానికి , కాబట్టి అక్కడే స్క్రీన్ పైన మీరు Valgrind-v కొద్దిగా పొడవుగా చూస్తారు ఉంది. మీరు ఒక Linux కంప్యూటర్లో ప్రోగ్రామ్ల ఉంటే, "-v" దాదాపు విశ్వవ్యాప్తంగా వాచాల అర్థం. కాబట్టి మీరు సిద్ధంగా వాటిని కంటే ఎక్కువ డేటా అవుట్ ఉమ్మి అర్థం. "- = పూర్తి లీక్-తనిఖీ చేసుకోండి." ఇది, అన్ని సాధ్యం మెమరీ లీకేజ్ కోసం చెక్ చెప్పడం నేను ఉండవచ్చు పొరపాట్లు. ఈ కూడా Linux కార్యక్రమాలు ఒక సాధారణ సమాహారం. మీరు ఒక కమాండ్ లైన్ వాదన ఉంటే సాధారణంగా, ఒక "స్విచ్" యొక్క ఆ కార్యక్రమం యొక్క ప్రవర్తనను మార్చడానికి కోరుకుంటున్నాము, మరియు అది ఒక అక్షరాల యొక్క ఇది-v, కాని స్విచ్ చేసే అవసరమైతే, ప్రోగ్రామర్ రూపకల్పన ద్వారా, , కమాండ్ లైన్ వాదన తో పదాల పూర్తి పదం లేదా సిరీస్ ప్రారంభమవుతుంది -. ఇవి మానవ సమావేశాలు, కానీ మీరు మరింత వాటిని చూస్తారు. ఆపై, చివరకు, "a.out" ఈ ప్రత్యేక ఉదాహరణ కార్యక్రమాన్ని ఆర్బిటరీ పేరు. మరియు ఇక్కడ కొన్ని ప్రతినిధి అవుట్పుట్ ఉంది. మేము అర్థం గల చూడండి ముందు, నాకు ఇక్కడ పైగా కోడ్ యొక్క స్నిప్పెట్ కు వీడలేదు. మరియు, త్వరలో వస్తుంది, నాకు మార్గం ఈ బయట తెలియజేయండి మరియు యొక్క ఇక్కడ ఈ చిన్న ఉదాహరణ ఇది memory.c, పరిశీలించి అనుమతిస్తుంది. కాబట్టి ఈ ప్రోగ్రామ్ లో, నాకు విధులు మరియు ప్రశ్నలు లో జూమ్ తెలియజేయండి. మేము ఒక ఫంక్షన్ ప్రధాన విధిగా, f, కలిగి తరువాత ఏమి F కొద్దిగా సాంకేతిక ఇంగ్లీష్ లో, ఏమి కొనసాగండి లేదు? F ఏమి కొనసాగండి లేదు? ఎలా నేను లైన్ 20 ప్రారంభం చేస్తాము, మరియు స్టార్ యొక్క నగర పట్టింపు లేదు, కానీ నేను లాస్ట్ లెక్చర్ ఇక్కడ స్థిరమైన ఉంటాం. మా లైన్ 20 ఏమి ఉంది? ఎడమ చేతి వైపు. మేము మరింత అది విచ్ఛిన్నం చేస్తాము. Int * x: ఆ ఏమి చేస్తుంది? సరే. ఇది ఒక పాయింటర్ ప్రకటించారు, మరియు ఇప్పుడు యొక్క మరింత సాంకేతిక ఉంటుంది లెట్స్. అది ఒక పాయింటర్ ప్రకటించాలని, చాలా concretely, శతకము వేరొకరు? Yeah? [స్టూడెంట్ సమాధానం, అపారదర్శక] టూ ఫార్. కాబట్టి మీరు సమాన గుర్తు కుడి చేతి వైపు చదువుతున్న. కేవలం Int * x, కేవలం ఎడమవైపు దృష్టి లెట్. ఈ ఒక పాయింటర్ "డిక్లేర్", కానీ ఇప్పుడు లెట్స్ ఆ నిర్వచనం లోతైన లో ఈత కొట్టడానికి. ఆ concretely, సాంకేతికంగా శతకము Yeah? [స్టూడెంట్ సమాధానం, అపారదర్శక] సరే. ఇది మెమరీ లో ఒక చిరునామా సేవ్ తయారు చేసిన. గుడ్. మరియు మరింత ఈ ఒక అడుగు తీసుకుందాం ఇది 32 బిట్స్ ఉన్న ఒక వేరియబుల్, x ప్రకటించే యొక్క. మరియు నేను దానిని ఎందుకంటే 32 బిట్స్ తెలిసిన -? ఈ సందర్భంలో ఒక పాయింటర్ ఎందుకంటే, ఒక పూర్ణాంకానికి ఎందుకంటే ఇది కాదు. అది ఒక పూర్ణాంకానికి తో ఒకే, ఆ యాద్రుచ్చికమా కానీ స్టార్ అక్కడ నిజానికి ఈ ఒక పాయింటర్ గా అక్కడ అర్థం మరియు పరికరంలోని, అనేక కంప్యూటర్లతో వంటి, కానీ అన్ని, గమనికలు 32 బిట్స్ ఉంటాయి. తాజా Macs, తాజా PC లు వంటి ఆధునిక హార్డ్వేర్, మీరు, 64-bit గమనికలు ఉండవచ్చు కానీ పరికరంలోని, ఈ విషయాలు 32 బిట్స్ ఉంటాయి. కాబట్టి మేము ఆ ప్రామాణికంగా చేస్తాము. మరిన్ని concretely, కథ కింది విధంగా సాగుతుంది: మేము ఒక పాయింటర్ "డిక్లేర్"; ఆ అర్థం ఏమిటి? మేము ఒక మెమరీ చిరునామా నిల్వ సిద్ధం. ఆ శతకము మేము 32 బిట్స్ తీసుకుంటుంది ఒక వేరియబుల్ అని x సృష్టించడానికి ఆ వెంటనే ఒక పూర్ణ సంఖ్య యొక్క చిరునామా నిల్వ చేస్తుంది. మరియు ఆ బహుశా మేము పొందవచ్చు వంటి గురించి ఖచ్చితమైన ఉంది. ప్రపంచంలో సులభతరం మరియు కేవలం x అనే పాయింటర్ డిక్లేర్ చెప్పడానికి ముందుకు వెళ్లడానికి మంచిది. ఒక పాయింటర్ ప్రకటించి, కాని ఏ వాస్తవానికి జరగబోతోంది అర్థం కూడా కేవలం కొన్ని అక్షరాలు లో. ఇప్పుడు, ఈ ఒకరు ఎక్కువ వ్యక్తీకరణ యొక్క అయినప్పటికీ, దాదాపు ఒక చిన్న సులభం. కాబట్టి ఈ ఇప్పుడు హైలైట్ చేసే, ఏమి ఉంది: "malloc (10 * sizeof (Int));" Yeah? [స్టూడెంట్ సమాధానం, అపారదర్శక] గుడ్. నేను అక్కడ అది తీసుకొని వెళ్తాము. ఇది పది పూర్ణ సంఖ్యలు మెమరీ భాగం కేటాయించడం యొక్క. ఇప్పుడు యొక్క కొద్దిగా లోతుగా లో ఈత కొట్టడానికి అనుమతిస్తుంది; అది పది పూర్ణ సంఖ్యలు మెమరీ భాగం కేటాయించడం యొక్క. Malloc తర్వాత ఏమి తిరిగి? మరింత concretely ఆ భాగం యొక్క చిరునామా, లేదా, ఆ భాగం యొక్క మొదటి బైట్ యొక్క చిరునామా. నేను ఎలా తర్వాత am, ప్రోగ్రామర్, తెలిసిన ఎక్కడ మెమరీ ముగుస్తుంది ఆ భాగం? నేను ఆనుకొని మనకు తెలుసు. Malloc, నిర్వచనం ప్రకారం, మీరు మెమరీ అవిచ్ఛిన్నంగా భాగం ఇస్తుంది. అది ఏ ఖాళీలు. మీరు, ఆ భాగం ప్రతి బైట్ ప్రాప్తి బ్యాక్ టు బ్యాక్ వెనుకకు, కాని మెమొరీ ఈ భాగం చివరిలో ఉన్న ఎలా తెలుసు? మీరు malloc ఉపయోగిస్తున్నప్పుడు? [స్టూడెంట్ సమాధానం, అపారదర్శక] గుడ్. మీరు లేదు. మీరు గుర్తు పెట్టుకోవాలి. నేను విలువ 10 ఉపయోగిస్తారు అని గుర్తుంచుకోండి, మరియు నేను కూడా ఇక్కడ చేసిన కనిపించడం లేదు. కానీ బాధ్యత నాకు పూర్తిగా ఉంది. మేము తీగలను కోసం కొద్దిగా ఆధారపడి మారింది చేసిన ఇది Strlen, ఎందుకంటే \ 0 కలిగి ఈ సమావేశం యొక్క మాత్రమే పనిచేస్తుంది లేదా ఒక స్ట్రింగ్ చివరిలో ఈ ప్రత్యేక nul పాత్ర NUL. ఆ జ్ఞాపకశక్తిని ఏకపక్ష భాగాలుగా కోసం నిలువరించదు. ఇది మీ ఇష్టం. లైన్ 20 కాబట్టి, అప్పుడు, మెమరీ భాగం కేటాయించుకునే ఆ పది పూర్ణాంకాల నిల్వ చేయవచ్చు, మరియు అది మొదటి బైట్ యొక్క చిరునామా నిల్వ వేరియబుల్ అని x లో మెమరీ ఆ భాగం యొక్క. ఒక పాయింటర్ ఇది Ergo. లైన్ 21 కాబట్టి, దురదృష్టవశాత్తూ, తప్పు. కానీ మొదటి, ఇది ఏమి ఉంటుంది? ఇది నగర 10, ఇండెక్స్ 0 వద్ద స్టోర్ చెప్పడం యొక్క x విలువ 0 అని మెమరీ భాగం యొక్క. కాబట్టి కొన్ని విషయాలను జరుగుతున్నాయి గమనిస్తారు. X ఒక పాయింటర్ అయినప్పటికీ, ఒక జంట వారాల క్రితం నుండి రీకాల్ మీరు ఇప్పటికీ శ్రేణి-శైలి చదరపు బ్రాకెట్ సంజ్ఞామానం ఉపయోగించే. వాస్తవానికి మరింత గుప్తమైన కనిపించే అంక గణితానికి కోసం తక్కువ సంకేత గుర్తులను ఎందుకంటే. మేము ఈ వంటి ఏదో ఒకటి అని పేరు: చిరునామా x టేక్, 10 మచ్చలు తరలించడానికి ఆ స్థానంలో నిల్వ ఏమైనా చిరునామా అక్కడికి వెళ్లాలి. కానీ స్పష్టముగా, ఈ చదివి సౌకర్యవంతంగా పొందడానికి కేవలం దారుణమైన ఉంది. కాబట్టి ప్రపంచ సాధారణంగా మరింత మానవ పరిచిత చదవడానికి యొక్క కనుక చదరపు బ్రాకెట్లలో ఉపయోగిస్తుంది. కానీ ఏమి నిజంగా హుడ్ కింద జరగబోతోంది ఉంది; x చిరునామా, అర్రే కాదు, ప్రతి SE ఉంది. కాబట్టి ఈ x స్థానాన్ని 10 వద్ద 0 నిల్వ. ఎందుకు ఈ తప్పు? Yeah? [స్టూడెంట్ సమాధానం, అపారదర్శక] ఖచ్చితంగా. , మేము మాత్రమే పది ints కేటాయించింది, కానీ సి ప్రోగ్రామింగ్ మేము 0 నుండి COUNT కాబట్టి మీరు 0 1 2 3 4 5 6 7 8 9, కానీ 10 ప్రాప్తి. కాబట్టి గాని ప్రోగ్రామ్ seg తప్పు అన్నారు లేదా కాదు. కానీ మేము నిజంగా నాకు తెలియదు, ఈ ఒక nondeterministic ప్రవర్తన యొక్క విధమైన ఉంది. మేము లక్కీ పొందండి అనేదాని మీద ఆధారపడి ఉంటుంది. నేను ఆ అదనపు బైట్ ఉపయోగిస్తే అది ఆపరేటింగ్ సిస్టమ్ పట్టించుకోవడం లేదని అవుతుంది ఉంటే, అది నాకు అది ఇవ్వలేదు అయినప్పటికీ, నా ప్రోగ్రామ్ నాశనం కాదు. , ఇది ముడి దీనిని బగ్గీ, కానీ మీరు ఆ లక్షణం చూడండి కాదు లేదా మీరు మాత్రమే ఒక సమయంలో అది చూడవచ్చు. అయితే వాస్తవికత బగ్ అక్కడ, నిజానికి, ఉంది. మీరు సరైన ఉండాలనుకుంటున్నాను ఒక కార్యక్రమం వ్రాయలేదు ఉంటే అది నిజంగా సమస్యాత్మక ఉంది మీరు ప్రజలు ఒక సమయంలో లో కూలిపోతుంది ఉపయోగించి ప్రోగ్రామ్ విక్రయించింది చేసిన ఎందుకంటే, ఐనప్పటికీ, మంచి కాదు. నిజానికి, మీరు Android ఫోన్ లేదా ఒక ఐఫోన్ ఉంటే మరియు, మీరు, ఈ రోజుల్లో Apps డౌన్లోడ్ మీరు కలిగి ఉంటే ఒక అనువర్తనం కేవలం విడిచి మాయమవుతుంది ఒక అకస్మాత్తుగా, ఆ, దాదాపు ఎల్లప్పుడూ కొన్ని మెమరీ సంబంధిత సమస్య యొక్క ఫలితం ప్రోగ్రామర్ ఒక పాయింటర్ ఇరుక్కొనిపోయింది మరియు dereferenced వస్తే అతను లేదా ఆమె ఉండకూడదు, మరియు iOS లేదా Android యొక్క ఫలితంగా కేవలం మొత్తంగా కార్యక్రమం చంపడానికి అని బదులుగా ప్రమాదం వివరింపబడని ప్రవర్తన లేదా భద్రతా రాజీ ఏదో కంటే. ఈ ఒక పాటు ఈ కార్యక్రమంలో మరో బగ్ ఉంది. నేను ఈ కార్యక్రమంలో ఇంకా ఏమి ఇరుక్కొనిపోయింది చేశారు? నేను బోధించిన వాటిని ఆచరణలో చెయ్యలేదు. Yeah? [స్టూడెంట్ సమాధానం, అపారదర్శక] గుడ్. నేను మెమరీ విముక్తి లేదు. కాబట్టి ఇప్పుడు సైద్ధాంతిక నియమం మీరు malloc కాల్ ఎప్పుడైనా మీరు పూర్తి చేసినప్పుడు, మీరు ఆ మెమరీ ఉపయోగించడం ఉచిత కాల్ చేయాలి ఉండాలి. ఇప్పుడు, నేను ఈ మెమరీ విముక్తికై కావాలో? బహుశా, ఈ మొదటి లైన్ సరైనదని భావించి, నేను ఇక్కడ అది ఏమి కావాలో. నేను, ఉదాహరణకు, ఇక్కడ అది అధిగమించుట వలన. ఎందుకు? జస్ట్ ఔట్ స్కోప్. కాబట్టి మేము, గమనికలు గురించి మాట్లాడటం ఉన్నప్పటికీ ఈ వారం 2 లేదా x మాత్రమే ప్రకటించబడింది పేరు వంకర జంట కలుపులు లోపలి పరిధిని ఉన్న 3 సమస్య. కాబట్టి మీరు ఖచ్చితంగా అక్కడ ఇది ఉచితం కాదు. ఇది ఉచితం నా మాత్రమే అవకాశం సుమారు లైన్ 21 తర్వాత ఉంది. ఈ ఒక నిరాడంబర కార్యక్రమంగా చెప్పవచ్చు; మీరు రకమైన మీ మనస్సు చుట్టి ఒకసారి అది చాలా సులభం తప్పులు ఉన్న ఏమి చుట్టూ కార్యక్రమం, చేయుచున్నాడు. మరియు మీరు మొదటి వద్ద చూడలేదు కూడా, ఆశాజనక అది ఇప్పుడు చిన్న స్పష్టమైన యొక్క ఈ పొరపాట్లు అందంగా సులభంగా పరిష్కరించవచ్చు మరియు సులభంగా తయారు చేయబడ్డాయి. కానీ ఒక కార్యక్రమం కంటే ఎక్కువ పంక్తులు 12 పొడవుగా ఉంది, అది, 100 లైన్ల పొడవైన, 50 పంక్తులు ఉంది తార్కికంగా ఇది ద్వారా ఆలోచిస్తూ, లైన్ ద్వారా మీ కోడ్ లైన్ ద్వారా వాకింగ్, నిరంతరం, దోషాలు కోసం చూస్తూ, సాధ్యం కాని ఏమి ముఖ్యంగా సరదాగా కాదు అది చేసేందుకు కూడా కష్టం, మరియు Valgrind వంటి సాధనం ఉంది ఎందుకు ఆ. నాకు ముందుకు వెళ్లి మనం: నా టెర్మినల్ విండోను తెరవడానికి వీలు, మరియు మెమరీ బాగానే ఉంది ఎందుకంటే నాకు కేవలం, మెమరీ అమలు కాదు అనుమతిస్తాయి. నేను లక్కీ పొందుతున్నాను. అర్రే చివరిలో అదనపు బైట్ గోయింగ్ టు చాలా సమస్యాత్మకంగా కనిపించడం లేదు. కానీ తనిఖీ అంటే ఒక పవిత్రత చెక్, ఏమి, అయితే, నాకు తెలియజేయండి ఈ నిజానికి సరైనది లేదో. కాబట్టి valgrind-v చేయండి లెట్స్ - = పూర్తి లీక్ తనిఖీ మరియు ఈ సందర్భంలో కార్యక్రమం పేరు మెమరీ, కాని a.out ఉంది. నాలో ముందుకు వెళ్లి మనం. ఎంటర్ నొక్కండి. ప్రియమైన దేవా. ఈ దాని అవుట్పుట్, మరియు ఈ నేను ముందు పేర్కొన్నట్లు ఏమిటి. కానీ, మీరు ఇక్కడ అర్ధంలేని అన్ని ద్వారా చదవడం నేర్చుకోవడం ఉంటే, ఈ అత్యంత ఆసక్తికరమైన కాదు కేవలం విశ్లేషణ అవుట్పుట్ ఉంది. మీ కన్ను నిజంగా వెతుకుతున్న వాంట్స్ టు బి లోపం లేదా చెల్లని సంబంధించిన అంశాలను ఉంది. సమస్యలు సూచిస్తున్నాయి పదాలు. నిజానికి, డౌన్ ఇక్కడ తప్పు ఏమి చూద్దాం. నేను కొన్ని రకాల సారాంశం కలిగి "నిష్క్రమించండి ఉపయోగంలో:. 1 బ్లాక్లలో 40 బైట్లు" నేను ఇంకా నిజంగా ఒక బ్లాక్ ఏమి తెలియదు, కానీ 40 బైట్లు నుండి వస్తున్నాయో నేను ఎక్కడ గుర్తించడానికి కాలేదు వంటి వాస్తవానికి భావిస్తాడు. 40 బైట్లు. ఎందుకు నిష్క్రమించండి ఉపయోగంలో 40 బైట్లు ఉంటాయి? మరియు ముఖ్యంగా మేము ఇక్కడ స్క్రోల్ డౌన్ ఉంటే, నేను ఖచ్చితంగా 40 బైట్లు కోల్పోయారు? Yeah? [స్టూడెంట్ సమాధానం, అపారదర్శక] పర్ఫెక్ట్. అవును, సరిగ్గా. అక్కడ పది పూర్ణాంకాల వారిలో ప్రతి 4, లేదా 32 బిట్స్ పరిమాణం మీరు ప్రతిపాదించిన, నేను ఉచిత అని లేదు, ఎందుకంటే నేను ఖచ్చితంగా 40 బైట్లు కోల్పోయి. అంటే, ఒక బగ్ ఉంది, మరియు ఇప్పుడు మరింత కొద్దిగా క్రిందికి చూడండి యొక్క తెలపండి మరియు ఈ పక్కన చూడండి "చెల్లని పరిమాణం 4 యొక్క వ్రాయండి." ఇప్పుడు ఈ ఏమిటి? ఈ చిరునామా స్పష్టంగా, ఏ ఆధారం సంజ్ఞామానం సూచిస్తారు? , ఈ హెక్సాడెసిమల్, మరియు ఏ సమయంలో మీరు 0x తో ప్రారంభమైన సంఖ్య చూడండి అది, మేము తిరిగి ప్రశ్నలు, నేను అనుకుంటున్నాను, pset 0 యొక్క విభాగం మార్గం అది, హెక్సాడెసిమల్ అర్థం ఇది బైనరీ కు hex కు దశాంశ మార్పిడి మరియు మొదలైనవి, ఒక సన్నాహక వ్యాయామం చేయడానికి కేవలం ఉంది. హెక్సాడెసిమల్, కేవలం మానవ కన్వెన్షన్ ప్రకారం, సాధారణంగా గమనికలు ప్రాతినిధ్యం ఉపయోగిస్తారు లేదా, మరింత సాధారణంగా, చిరునామాలు. ఇది కేవలం ఒక సమావేశముల ఇది చదవడం కొంచెం సులభం ఎందుకంటే, అది, దశాంశ లో లాగ కన్నా కొంచం ఎక్కువగా కాంపాక్ట్ యొక్క చాలా మానవులు ఉపయోగించడానికి మరియు బైనరీ నిరుపయోగం. కాబట్టి ఇప్పుడు దీని అర్థం ఏమిటి? చెల్లని రాసే ఉన్నట్లు సరే, కనిపిస్తోంది memory.c యొక్క లైన్ 21 న పరిమాణం 4 యొక్క. కాబట్టి లైన్ 21 తిరిగి వెళ్ళడానికి వీలు, మరియు నిజానికి ఇక్కడ చెల్లని రాసే ఉంది. కాబట్టి Valgrind, పూర్తిగా హోల్డ్ మై హ్యాండ్ మరియు పరిష్కార ఉంది నాకు చెప్పడం వెళ్ళడం లేదు కానీ నేను ఒక చెల్లని రాసే చేయడం కాబట్టి గుర్తించడం ఉంది. నేను చేయకూడని 4 బైట్లు తాకడం చేస్తున్నాను, మరియు స్పష్టంగా ఆ, కాబట్టి మీరు ఎత్తి చూపారు, నేను బదులుగా [9] [10] చేస్తున్నదాన్ని గరిష్టంగా లేదా [0] లేదా మధ్య ఏదో. Valgrind ఇప్పుడు మీరు ప్రోగ్రామ్ రాయడం చేసినప్పుడు గుర్తించలేరు గమనికలు ఉపయోగిస్తుంది మరియు మెమొరీ ఉపయోగిస్తుంది, మరియు malloc ముఖ్యంగా ఆ ఖచ్చితంగా ఈ సుదీర్ఘ అలవాటును పొందడానికి కానీ చాలా సులభంగా Valgrind యొక్క ఆదేశం కాపీ అతికించినది అక్కడ కొన్ని లోపాలు ఉంటే చూడటానికి. మరియు ఇది మీరు అవుట్పుట్ చూడండి ప్రతి సమయం అధిక ఉంటాం కానీ దృశ్యమానంగా అన్ని ఉత్పత్తిలో ద్వారా విశ్లేషించడం మరియు మీరు చూడండి చూడండి లోపాలు గురించి లేదా హెచ్చరికలు లేదా చెల్లని లేదా కోల్పోయింది. మీ వంటి ధ్వని ఎక్కడో ఇరుక్కొనిపోయింది ఏ పదాలు. మీ సంచిలో ఒక కొత్త సాధనం కాబట్టి తెలుసుకుంటారు. ఇప్పుడు సోమవారం, మేము వారిని యొక్క మొత్తం బంచ్ కలిగి ఇక్కడ వస్తాయి మరియు అనుబంధ జాబితా భావన సూచిస్తాయి. మరియు మేము ఏమి సమస్య ఒక పరిష్కారంగా లింక్ జాబితా పరిచయం? Yeah? [స్టూడెంట్ సమాధానం, అపారదర్శక] గుడ్. వ్యూహాలను మెమరీ వాటిని కలుపుతారు కాదు. మీరు పరిమాణం 10 యొక్క వ్యూహం, మీరు పొందండి అంతే కేటాయించాలని ఉంటే. మీరు మొదట malloc అని మీరు, realloc వంటి ఫంక్షన్ కాల్ చేయవచ్చు అంతరాళం యొక్క చివరిలో అక్కడ ఉంటే ఆ శ్రేణి పెరగడం ప్రయత్నించవచ్చు ఎవరూ ఉపయోగిస్తుంది, మరియు అక్కడ కాదు, అది కేవలం ఎక్కడైనా మీరు ఒక పెద్ద భాగం కనుగొంటారు ఆ. కానీ కొత్త శ్రేణి లోకి ఆ బైట్లు అన్ని కాపీ చేస్తుంది. ఇది చాలా సరైన పరిష్కారం లాగా ఉంటుంది. ఎందుకు ఈ ఆకర్షణీయం కాని ఉంది? నేను పని అర్థం, మానవులు ఈ సమస్య పరిష్కరించినట్లు. ఎందుకు మేము లింక్ జాబితాలు తో సోమవారం పరిష్కరించేంత అవసరం లేదు? Yeah? [స్టూడెంట్ సమాధానం, అపారదర్శక] ఇది చాలా కాలం పడుతుంది. నిజానికి, మీరు malloc లేదా realloc లేదా మరొక ఒకటి calloc, కాల్ చేసినప్పుడు, ఏ సమయంలో మీరు, కార్యక్రమం, ఆపరేటింగ్ సిస్టమ్ మాట్లాడుతున్నారా, మీరు ప్రోగ్రామ్ వేగాన్ని ఉంటాయి. మీరు పాశ్యాలలో విషయాలను ఈ రకాల చేస్తున్నా ఉంటే మీరు నిజంగా విషయాలు నెమ్మదిగా పని చేస్తున్నారు. మీరు, "హలో వరల్డ్" రకం కార్యక్రమాలను సరళమైన కోసం ఈ గమనించి వెళ్ళి లేదు కానీ పెద్ద కార్యక్రమాలలో, మెమరీ కోసం మళ్లీ మళ్లీ ఆపరేటింగ్ సిస్టమ్ అడగడం లేదా మళ్ళీ మళ్ళీ తిరిగి ఇవ్వడం మంచిది కాదని ఉంటుంది. అంతేకాకుండా, ఇది కేవలం తెలివైన యొక్క విధమైన - అది సమయం పూర్తి వేస్ట్ ఉంది. కొత్త శ్రేణి లోకి ప్రతిదీ కాపీ మరింత మెమరీని కేటాయించాల్సిన ఎందుకు, ప్రమాదం మీరు నిజంగా మీకు మాత్రమే మెమరీని కేటాయించాల్సిన అనుమతించే ఒక ప్రత్యామ్నాయ ఉంటే? కాబట్టి ఇక్కడ pluses మరియు minuses ఉంది. Pluses ఒకటి ఇప్పుడు మేము చైతన్యానికి కలిగి ఉంది. మెమరీ భాగాలుగా ఉచితంగా ఉండే ఎక్కడ లేదు, నేను గమనికలు ద్వారా సృష్టించడానికి ఈ బ్రెడ్ ముక్కలు క్రమం చేయవచ్చు కలిసి నా మొత్తం లింక్ జాబితా స్ట్రింగ్ కు. కానీ నేను కనీసం ఒక ధర చెల్లిస్తారు. నేను లింక్ జాబితాలు పొంది లో ఇవ్వాలని ఉన్నాయి? Yeah? [స్టూడెంట్ సమాధానం, అపారదర్శక] గుడ్. మీరు అధిక మెమరీ అవసరం. ఇప్పుడు నేను, ఈ గమనికలు స్థలాన్ని అవసరం మరియు ఈ సూపర్ సాధారణ లింక్ జాబితా విషయంలో కేవలం 4 బైట్లు ఇవి పూర్ణ, నిల్వ చేయడానికి ప్రయత్నిస్తున్న అని, మేము చెప్పడం ఉంచడానికి అలాగే, ఒక పాయింటర్ 4 బైట్లు కాబట్టి ఇప్పుడు నేను అక్షరాలా రెట్టింపు చేసిన మెమొరీ మొత్తం నేను ఈ జాబితా నిల్వ చేయాలి. కానీ మళ్ళీ, ఈ కంప్యూటర్ సైన్స్ లో ఒక స్థిర బేరీజుగా ఉంది టైమ్ అండ్ స్పేస్ మరియు అభివృద్ధి, కృషి మరియు ఇతర వనరులను మధ్య. ఒక లింక్ జాబితా ఉపయోగించి మరొక స్థితి ఏమిటి? Yeah? [స్టూడెంట్ సమాధానం, అపారదర్శక] గుడ్. ప్రాప్తి చేయడం సులభం కాదు. మేము పరపతి ఇకపై చెయ్యవచ్చు వంటి వారం 0 సూత్రాలు విభజించి జయించటానికి. మరియు ముఖ్యంగా బైనరీ శోధన. ఎందుకంటే అయినప్పటికీ మనం మానవులు ఈ జాబితా యొక్క మధ్య ఉన్న సుమారు చూడగలరు, కంప్యూటర్ మాత్రమే ఈ లింక్ జాబితా మొదటి అనే చిరునామా వద్ద ప్రారంభమయ్యే తెలుసు. మరియు ఆ 0x123 లేదా అలాంటిదే ఉంది. మరియు కార్యక్రమం మాత్రమే మార్గం మధ్య మూలకం పొందవచ్చు నిజానికి మొత్తం జాబితా శోధన ఉంది. మరియు అది కూడా, వాచ్యంగా మొత్తం జాబితా శోధన ఎందుకంటే కూడా ఒకసారి మీరు, గమనికలు అనుసరించడం ద్వారా మధ్య మూలకం చేరుకోవడానికి మీరు, కార్యక్రమం, సమర్థవంతంగా, ఈ జాబితా ఏవిధమైన ఆలోచన ఉంది మీరు ముగింపు హిట్, మరియు మీరు ఎలా programmatically తెలుసు వరకు మీరు ఒక లింక్ జాబితా చివరిలో అని? ప్రత్యేక నల్ పాయింటర్, మరలా, ఒక కన్వెన్షన్ ఉంది. ఈ పాయింటర్ ఉపయోగించడానికి బదులుగా, మేము ఖచ్చితంగా అది కొన్ని చెత్త విలువ ఉండాలనుకుంటున్నాను లేదు ఎక్కడో దశ ఆఫ్ గురిపెట్టి; మేము, అది చేతిని అని NULL డౌన్ కావాలి, ఇది ముగుస్తుంది మేము తెలిసిన కాబట్టి మేము ఈ డేటాను నిర్మాణంలో ఈ టెర్మినస్ కలిగి ఉంటారు. మనం ఈ సర్దుబాటు అనుకుంటే? మేము, ఈ దృశ్య చాలా, మరియు మానవులు కలిసి కానీ మనం ఒక చొప్పించడం చేయాలనుకుంటున్నారా ఉంటే? కాబట్టి అసలు జాబితా 9, 17, 20, 22, 29, 34 ఉంది. మేము అప్పుడు సంఖ్య 55, అది ఒక నోడ్ కొరకు malloc స్పేస్ అనుకున్నారు ఏం మరియు తర్వాత మేము సోమవారం లాగా జాబితాలో 55 ఇన్సర్ట్ అనుకుంటున్నారా? దీన్ని మేము ఎలా చేయాలి? Well, అనిత వచ్చింది మరియు ఆమె తప్పనిసరిగా జాబితా వెళ్ళిపోయాడు. తర్వాత ఆమె తరువాత, తదుపరి, తర్వాత, తదుపరి తర్వాత, మొదటి మూలకం వద్ద ప్రారంభించారు. చివరగా ఎడమ చేతి అన్ని మార్గం డౌన్ హిట్ మరియు OH గ్రహించాడు ఈ NULL. సో వాట్ పాయింటర్ తారుమారు చేసేందుకు అవసరమైన? పొందాడు వ్యక్తి, సంఖ్య 34, తన ఎడమ చేతి పెంచింది అవసరం 55 దశలో, 55 కొత్త NULL టెర్మినేటర్ అని డౌన్ పై వారి ఎడమ చేతి అవసరం. పూర్తయింది. ప్రెట్టీ సులభం ఒక క్రమబద్ధీకరించబడతాయి జాబితాలో 55 ఇన్సర్ట్ చెయ్యడానికి. ఎలా ఈ చూడండి ఉండవచ్చు? నాకు ముందుకు వెళ్లి ఇక్కడ కొన్ని కోడ్ ఉదాహరణ ప్రారంభం లెట్. నేను gedit అప్ తెరిచి, నన్ను మొదటి రెండు ఫైళ్ళను తెరవడానికి తెలియజేస్తాము. ఒక list1.h, మరియు ఈ కోడ్ యొక్క భాగం అని నాకు ఇప్పుడే గుర్తు తెలియజేయండి మేము ఒక నోడ్ ప్రాతినిధ్యం ఉపయోగించారు. ఒక నోడ్ జాబితా తదుపరి విషయం కేవలం పాయింట్లు ఆ తర్వాత అని n అనే ఒక Int మరియు ఒక పాయింటర్ రెండూ ఉన్నాయి. ఒక. H ఫైలు లో ఉంది. ఎందుకు? , ఈ కన్వెన్షన్, మరియు మేము ఈ భారీ మొత్తం మేమే ప్రయోజనం దాల్చలేదు printf మరియు ఇతర చర్యలు రాసిన కాని వ్యక్తి stdio.h అనే ఫైల్ వ్రాయడం ద్వారా ప్రపంచానికి బహుమతిగా ఆ విధులను అన్ని ఇచ్చింది. ఆపై string.h ఉన్నది, అప్పుడు map.h ఉంది, మరియు ఈ h ఫైళ్లను లేదు మీరు చూసిన లేదా ఇతర ప్రజలు రాసిన పదం ఉపయోగిస్తారు ఉండవచ్చని. సాధారణంగా ఆ లో. H ఫైళ్లను typedefs వంటి మాత్రమే విషయాలు లేదా అనుకూల రకాల లేదా స్థిరాంకాలు ప్రకటనల ప్రకటనలు. మీరు శీర్షిక ఫైళ్లు లో విధులు 'అమలు ఉంచవద్దు. మీరు బదులుగా, కేవలం వారి నమూనాలను ఉంచండి. మీరు వారికి అవసరమైన ప్రపంచంతో మీరు భాగస్వామ్యం చెయ్యాలనుకుంటున్నారా విషయాలు ఉంచండి వారి కోడ్ కంపైల్ చేయడానికి. కాబట్టి ఈ అలవాటు పొందడానికి, మేము కూడా ఇదే నిర్ణయించుకుంది. చాలా, list1.h లో కాదు కానీ ప్రపంచంలో ప్రజలు ఆసక్తి ఉండవచ్చు అని ఏదో ఉంచాము ఎవరు మా అనుబంధ జాబితా అమలు ఉపయోగించాలనుకుంటున్నాను. ఇప్పుడు, list1.c లో, నేను ఈ మొత్తం విషయం ద్వారా కాదు అది ఒక బిట్ ఉంది ఎందుకంటే, ఈ కార్యక్రమం, కానీ యొక్క ప్రాంప్టులో త్వరగా రియల్ అమలు అనుమతిస్తాయి. నాకు, list1 కంపైల్ నాకు అప్పుడు list1 అమలు అనుమతిస్తాయి, మరియు మీరు చూస్తారు తెలియజేస్తాము మేము ఇక్కడ అనుకరణ ఒక సాధారణ చిన్న ప్రోగ్రామ్ మీరు నాకు ఒక జాబితాకు సంఖ్యలు జోడించడానికి మరియు తొలగించడానికి అనుమతించే అవకాశముంది. నాలో ముందుకు వెళ్లి మెను ఎంపిక 3 3 టైప్ తెలియజేయండి. నేను సంఖ్య ఇన్సర్ట్ చెయ్యడానికి ఎంచుకోండి - లెట్స్ 9 మొదటి సంఖ్య, చేయండి మరియు ఇప్పుడు నేను జాబితా ఇప్పుడు 9 ఉంటుంది చెప్పాడు చేస్తున్నాను. నాకు ముందుకు వెళ్లి మరొక చొప్పించడం తెలియజేసేలా, నేను మెను ఎంపిక 3 నొక్కండి. ఏమి సంఖ్య నేను ఇన్సర్ట్ అనుకుంటున్నారు? 17. నమోదు చేయండి. నేను కేవలం ఒక మరింత చేస్తాను. నాకు సంఖ్య 22 ఇన్సర్ట్ లెట్. కనుక మేము ఒక క్షణం క్రితం స్లయిడ్ రూపం ఆ లింక్ జాబితా ప్రారంభం ఉన్నాయి. ఈ ప్రవేశాన్ని నిజానికి ఎలా జరుగుతుందో? నిజానికి, 22 జాబితా చివరిలో ఉంది. కథ కాబట్టి మేము సోమవారం వేదికపై చెప్పారు మరియు ఇప్పుడు recapped వాస్తవానికి కోడ్ వస్తున్న ఉండాలి. యొక్క పరిశీలించి చూద్దాం. ఈ ఫైలులో స్క్రోల్ డౌన్ లెట్. మేము, ఫంక్షన్స్ కొన్ని మీద వ్యాఖ్యానం చేస్తాము కానీ మేము, క్రిందికి వెళ్ళి చెప్పిన చొప్పించు ఫంక్షన్ చేస్తాము. మేము ఈ లింక్ జాబితా ఒక కొత్త నోడ్ ఇన్సర్ట్ గురించి వెళ్ళండి ఎలా చూద్దాం. జాబితా ఎక్కడ ప్రకటిస్తారు? Well, లెట్స్, ఎగువన అన్ని మార్గం అప్ స్క్రోల్ మరియు నా లింక్ జాబితా ముఖ్యంగా ప్రారంభంలో NULL అని ఒక పాయింటర్ గా ప్రకటించింది ఉంది అని గుర్తించలేకపోతే. నేను సాధారణంగా మేము వ్యతిరేకంగా బోధనలు చేసిన, ఇక్కడ ఒక ప్రపంచ వేరియబుల్ ఉపయోగించి నేను నిర్వహించడానికి మీ కోడ్ కొద్దిగా దారుణంగా చేస్తుంది ఎందుకంటే అది సోమరి, సాధారణంగా ఒక రకమైన, కానీ అది సోమరి కాదు మరియు ఇది తప్పు కాదు మరియు అది చెడ్డ కాదు జీవితంలో మీ ప్రోగ్రామ్ యొక్క ఏకైక ప్రయోజనం ఒక అనుబంధ జాబితా అనుకరించేందుకు ఉంటే. ఏ మేము చేస్తున్న దాన్ని ఖచ్చితంగా ఉంది. ప్రతి ఫంక్షన్ కి పాస్ అప్పటి ప్రధాన ఈ ప్రకటించి కాబట్టి కాకుండా మేము ఈ కార్యక్రమంలో వ్రాయలేదు, మేము బదులుగా OH తెలుసుకుంటారు, యొక్క దీనిని ప్రపంచ తయారు చేద్దాము ఈ కార్యక్రమం మొత్తం ప్రయోజనం ఒకే ఒక లింక్ జాబితా ప్రదర్శించేందుకు ఎందుకంటే. కాబట్టి సరే భావిస్తాడు. ఇక్కడ నా నమూనాలను, మేము, ఈ అన్ని ద్వారా కాదు కానీ నేను తొలగింపు చర్య, ఒక కనుగొనడానికి ఫంక్షన్, ఒక చొప్పించు ఫంక్షన్, మరియు ఒక యాత్ర ఫంక్షన్ రాశారు. కానీ ఇప్పుడు యొక్క ఇన్సర్ట్ ఫంక్షన్ తిరిగి కోల్పోండి మరియు ఈ ఒక ఇక్కడ ఎలా పని చేస్తుందో చూడండి. చొప్పించు లైన్ మీద ఉంది - ఇక్కడ మేము వెళ్ళండి. చొప్పించు. మేము అడగవచ్చు చూడాలని ఎందుకంటే అది ఏ వాదనలు తీసుకోదు వారు ఇన్సర్ట్ చెయ్యడానికి మీరు సంఖ్య ఈ చర్యను యూజర్ లోపల. కానీ మొదటి, మేము వాటిని కొన్ని అంతరిక్ష ఇవ్వాలని సిద్ధం. ఈ ఇతర ఉదాహరణకు నుండి కాపీ మరియు పేస్ట్ యొక్క విధమైన ఉంది. ఆ సందర్భంలో, మేము ఒక పూర్ణాంకానికి పెడుతోంది చేయబడ్డాయి; ఈ సమయంలో మేము ఒక నోడ్ పెడుతోంది చేస్తున్నారు. నేను నిజంగా ఒక నోడ్ ఎన్ని బైట్లు గుర్తు లేదు, కానీ ఆ మంచిది. Sizeof నాకు ఆ గుర్తించడానికి చేయవచ్చు. మరియు నేను లైన్ 120 లో NULL తనిఖీ వున్నాను? లైన్ 119 లో తప్పు ఏం చేయాలో? Yeah? [స్టూడెంట్ సమాధానం, అపారదర్శక] గుడ్. జస్ట్ నేను చాలా మెమరీని అడిగారు చేసిన సంభవ లేదా ఏదో యొక్క తప్పు మరియు ఆపరేటింగ్ సిస్టమ్, నాకు అందించడానికి తగినంత బైట్లు లేదు కాబట్టి ఇది NULL రావడం ద్వారా ఎక్కువ సూచిస్తుంది, మరియు ఆ తనిఖీ లేకపోతే మరియు నేను గుడ్డిగా చిరునామా తిరిగి ఉపయోగించడానికి ముందుకు, అది NULL ఉంటుంది. ఇది కొన్ని తెలియని విలువ ఉంటుంది; ఒక మంచి విషయం తప్ప - వాస్తవానికి ఒక తెలియని విలువ ఉండదు. ఇది NULL ఉంటుంది, నేను అనుకుంటున్నాను కాబట్టి అది దుర్వినియోగం మరియు అది dereferencing రిస్క్. అలా జరిగితే, నేను తిరిగి మరియు నేను ఏ మెమరీ తిరిగి రాలేదు వంటి మేము నటిస్తారు చేస్తాము. లేకపోతే, నేను యూజర్ me ఇన్సర్ట్ చెయ్యడానికి సంఖ్య ఇవ్వండి చెప్పండి, నేను, మా పాత స్నేహితుడు GetInt కాల్ మరియు ఈ సోమవారం ప్రవేశపెట్టిన కొత్త సింటాక్సు ఉంది. 'Newptr-> n' మీరు malloc ద్వారా ఇవ్వబడింది ఆ చిరునామా తీసుకుంటాయి ఇది ఒక కొత్త నోడ్ వస్తువు యొక్క మొదటి బైట్ సూచిస్తుంది ఆపై n అనే field వెళ్ళండి. ఒక చిన్న ప్రశ్న ట్రివియా: ఈ కోడ్ యొక్క ఏమి మరింత గుప్తమైన లైన్ సమానం? ఎలా else ఈ వ్రాసిన ఉండవచ్చు? ఒక ఉదంతం తీసుకోవాలని అనుకుంటున్నారా? [స్టూడెంట్ సమాధానం, అపారదర్శక] గుడ్. . N ఉపయోగించి, కానీ ఈ వంటి చాలా సాధారణ కాదు. నేను మొదటి ఏమి చేయాలి? [స్టూడెంట్ సమాధానం, అపారదర్శక] గుడ్. నేను * newptr.n చేయాలి. కాబట్టి ఈ కొత్త పాయింటర్ స్పష్టంగా చిరునామా తెలిపారు ఉంది. ఎందుకు? అది malloc ద్వారా తిరిగి ఎందుకంటే. చెప్పడం * newptr ", అక్కడ వెళ్ళు" మీరు అక్కడ చేశాక మరియు అప్పుడు, మీరు బాగా పరిచయం. n, ఉపయోగించవచ్చు కానీ ఇది మేము మానవులకు వెళ్తున్నారు ప్రత్యేకించి, చిన్న అగ్లీ కనిపిస్తోంది బాణాలు తో గమనికలు అన్ని సమయం డ్రా; ప్రపంచ ఈ బాణం సంజ్ఞామానం న ప్రామాణిక ఉంది, ఇది ఖచ్చితంగా ఇదే చేస్తుంది. ఎడమవైపు విషయం ఒక పాయింటర్ ఉన్నప్పుడు> సంజ్ఞామానం - కాబట్టి మీరు ఉపయోగిస్తారు. అది అసలైన struct అయితే లేకపోతే,. N ఉపయోగించండి. మరియు ఈ: నేను newptr-> తదుపరి ప్రారంభించడం లేదు శూన్య కు? మేము వేదిక యొక్క ముగింపు యొక్క డాంగ్లింగ్ ఎడమ చేతి ఆఫ్ ఇష్టం లేదు. మేము నేరుగా డౌన్ పై కావాలి, ఇది ఈ జాబితాలో చివరి అర్థం సమర్థవంతమైన ఈ నోడ్ వద్ద ఉంటుంది, అందువలన మేము దానిని NULL ఉన్నట్లు నిర్ధారించుకోండి. మరియు, సాధారణంగా, మీ చరరాశులు లేదా మీ డేటా సభ్యులు మరియు structs ప్రారంభించడం ఏదో కేవలం మంచి పద్ధతి. జస్ట్ చెత్త ఉన్నాయి మరియు సాధారణంగా ఇప్పటికీ కొనసాగుతున్నాయి తెలియజేసినందుకు ఇబ్బందుల్లో మీరు గెట్స్ మీరు తర్వాత ఏదో ఒకటి చేయడానికి మర్చిపోతే. ఇక్కడ కొన్ని సందర్భాలలో ఉంది. ఈ, మళ్ళీ, చొప్పించు విధి వేరియబుల్ మొదటి అనే ఉంటే నేను తనిఖీ మొదటి విషయం, ఉంది ప్రపంచ వేరియబుల్ NULL ఉంది, ఏ లింక్ జాబితా ఉంది అని అర్థం. మేము ఏ సంఖ్యలు చేర్చబడుతుంది, కాబట్టి అది ప్రస్తుత సంఖ్య ఇన్సర్ట్ చిన్నవిషయం యొక్క జాబితాలో, ఎందుకంటే అది కేవలం జాబితా ప్రారంభంలో చెందినది. అనిత కేవలం నటిస్తున్న ఒంటరిగా ఇక్కడ నిలబడి కనుక ఈ ఉంది మేము ఒక నోడ్ కేటాయించింది వరకు ఎవరూ, వేదికపై ఇక్కడ ఉంది అప్పుడు ఆమె, మొదటి సారి ఆమె చేతిని పెంచుకోవచ్చు ప్రతి ఒక్కరూ సోమవారం ఆమె తర్వాత దశ లో వస్తే. ఇప్పుడు ఇక్కడ, ఈ నేను ఉన్న ఒక చిన్న చెక్ ఉంటే n యొక్క కొత్త నోడ్ యొక్క విలువ ప్రస్తుత మొదటి నోడ్ లో n విలువ <ఉంది ఆ ప్రారంభమైన ఒక అనుబంధ జాబితా ఉంది అని అర్థం. అక్కడ జాబితాలో కనీసం ఒక నోడ్, కానీ ఈ కొత్త వ్యక్తి అది, కాబట్టి మేము విషయాలను కదిలిస్తూ ఉండాలి ముందు చెందినది. జాబితా కేవలం ప్రారంభించారు మరొక మాటలో, సే తెలియజేయండి అని కేవలం సంఖ్య 17, - నిజానికి, మేము మరింత స్పష్టంగా చేయవచ్చు. మేము మొదటి అనే ఇక్కడ ఒక పాయింటర్ మన కథ మొదలు ఉంటే, మరియు ప్రారంభంలో ఇది NULL, మరియు మేము సంఖ్య 9 ఇన్సర్ట్ సంఖ్య 9 స్పష్టంగా జాబితా ప్రారంభంలో చెందినది. కాబట్టి మేము కేవలం చిరునామా లేదా సంఖ్య 9 malloced మరియు ఇక్కడ ఉంచండి యొక్క నటిస్తారు తెలియజేయండి. మొదటి సిద్ధంగా 9 ఉంటే, మేము చర్చించారు మొదటి సందర్భంలో కేవలం ఇక్కడ లెట్స్ పాయింట్ ఈ గై అంటే ఈ వంటి NULL వదిలి; ఇప్పుడు మేము సంఖ్య 9 ఉన్నాయి. మేము ఇన్సర్ట్ చెయ్యడానికి కావలసిన తదుపరి సంఖ్య 17 ఉంది. 17 ఇక్కడ పైగా చెందిన, కాబట్టి మేము ఈ ద్వారా కొన్ని తార్కిక పునాది చేయడానికి చూడాలని. మేము, మేము యొక్క సంఖ్య 8 ఇన్సర్ట్ కోరుకున్నాడు నటిస్తారు అనుమతించే విధంగా ముందు, బదులుగా చూద్దాం. కాబట్టి కేవలం సౌలభ్యం కోసమని, నేను ఇక్కడ డ్రా వెళుతున్న. కానీ గుర్తుంచుకోండి, malloc అత్యంత ఎక్కడైనా ఉంచవచ్చు. కానీ డ్రాయింగ్ కోసమని, నేను ఇక్కడ ఉంచుతాము. కాబట్టి నేను సంఖ్య 8 ఒక నోడ్ కేటాయించింది చేసిన నటిస్తారు; ఈ సిద్ధంగా NULL. ప్రస్తుతం జరిగే ఉంది? కొన్ని విషయాలను. మేము ఈ వంటి పాయింటర్ నవీకరించబడింది పేరు మేము, సోమవారం వేదికపై ఈ పొరపాటు అప్పుడు ఈ, మరియు అప్పుడు మేము దావా - మేము వేదిక పైన అందరి అనాథ. మీరు can't ఎందుకంటే - ఇక్కడ క్రియల క్రమం, ముఖ్యం ఇప్పుడు ఎందుకంటే మేము ప్రదేశంలో తేలుతూ యొక్క విధమైన అని ఈ నోడ్ 9 కోల్పోయి. కాబట్టి ఈ సోమవారం కుడి విధానం కాదు. మేము మొదటి ఏదో చేయాలి. ప్రపంచం యొక్క స్థితిని ఈ కనిపిస్తోంది. మొదట్లో, 8 కేటాయించింది చేయబడింది. ఏ 8 ఇన్సర్ట్ చేసే మంచి మార్గం? బదులుగా ఈ పాయింటర్ నవీకరించడానికి, కేవలం బదులుగా ఇక్కడ ఈ ఒక నవీకరించండి. కాబట్టి మేము ఈ NULL పాత్ర చేయడానికి జరగబోతోంది కోడ్ యొక్క ఒక లైన్ అవసరం నోడ్ 9 వద్ద గురిపెట్టి చేసే ఒక వాస్తవ పాయింటర్ వలె, మరియు తర్వాత మేము సురక్షితంగా ఇక్కడ ఈ గై దశలో మొదటి మార్చవచ్చు. ఇప్పుడు మేము రెండు అంశాల జాబితా, అనుబంధ జాబితా, ఉన్నాయి. మరియు ఈ నిజంగా ఇక్కడ వంటి లుక్ వాట్ లేదు? మేము కోడ్ విషయంలో చూస్తే, నేను ఖచ్చితంగా ఆ పని చేసిన గమనిస్తారు. నేను newptr చెప్పారు చేసిన, మరియు ఈ కథ లో, newptr ఈ గై వద్ద గురిపెట్టి జరిగినది. కాబట్టి నాకు మరొక విషయం డ్రా వివరించారు, నేను ఈ కోసం కొంచం ఎక్కువగా గది వదలి ఉండవలసిందని. కాబట్టి చిన్న చిన్న డ్రాయింగ్ క్షమించు. ఈ వ్యక్తి newptr అంటారు. అంటే వరుస, కొన్ని పంక్తులను ముందుగా ప్రకటించిన చరరాశి - కేవలం 25 పై. మరియు అది 8 సూచించే యొక్క. నేను newptr-> తదుపరి చెప్పినప్పుడు struct వెళ్ళండి అనగా newptr ద్వారా దిశగానే చేయబడిన ఆ, కాబట్టి ఇక్కడ ఉన్నారు, అక్కడ వెళ్ళండి. అప్పుడు బాణం తర్వాత రంగంలో పొందండి అని, ఆపై = అక్కడ ఏమి విలువ ఉంచారు అని? ఏ విలువ మొదటి లో;? మొదటి లో విలువ ఈ ఇప్పుడు ఈ నోడ్ సమయంలో ఉండాలి అంటే, కాబట్టి ఈ నోడ్ వద్ద గురిపెట్టి జరిగినది. ఇతర మాటలలో, ఏమిటి, నా చేతిరాత ఒక నమ్మశక్యం మెస్ అయితే కనిపిస్తుంది కేవలం చుట్టూ ఈ బాణాలు కదిలే సాధారణ ఆలోచన ఏమిటి ఈ ఒక లైనర్ తో కోడ్ అని అనువదించారు. తదుపరి రంగంలో మొదటి ఉంది ఏమి నిల్వ చేసి మొదటి అసలు నవీకరించండి. యొక్క ఈ కొన్ని ద్వారా ముందుకు మరియు వేగంగా ముందుకు వెళ్ళి తెలపండి, మరియు ఇప్పుడు ఈ తోక చొప్పించడం వద్ద మాత్రమే కనిపిస్తాయి. నేను కొన్ని నోడ్ యొక్క తదుపరి రంగంలో NULL అని కనుగొనే పాయింట్ ను అనుకుందాం. మరియు కథ, ఒక వివరాలు ఈ సమయంలో నేను glossing కాబట్టి నేను లైన్ 142, ముందున్న పాయింటర్ ఇక్కడ మరొక పాయింటర్ అప్ పరిచయం చేసిన ఉంది. ముఖ్యంగా, కథ ఈ సమయంలో, ఒకసారి జాబితా దీర్ఘ వస్తుంది, నేను రకమైన రెండు వేళ్ళతో అది నడుస్తూ అవసరం నేను చాలా దూరం వెళ్ళి ఉంటే ఎందుకంటే, ఒకే పొడవు జాబితాలో గుర్తుంచుకోండి, మీరు వెనక్కి వెళ్ళి కాదు. కాబట్టి predptr ఈ ఆలోచన నా ఎడమ చేతి వేళ్ళ, మరియు newptr - కాదు newptr. ఇక్కడ మరొక పాయింటర్ నా ఇతర వేలు, నేను జాబితా వాకింగ్ చూస్తూ ఉంటాము ఉన్నాను. ఆ ఉంది ఎందుకు పేర్కొంది. కానీ యొక్క మాత్రమే ఇక్కడ సాధారణ సందర్భాల్లో ఒకటి భావిస్తారు తెలియజేయండి. ఆ పాయింటర్ తరువాత ఫీల్డ్ NULL ఉంటే, తార్కిక సూత్రప్రాయంగా ఏది? మీరు ఈ జాబితా నదీ ప్రవాహానికి అడ్డంగా ప్రయాణం మరియు ఉంటే మీరు ఒక నల్ పాయింటర్ హిట్? మీరు జాబితా చివరిలో ఉన్నారు, అందువలన కోడ్ అప్పుడు ఈ ఒక అదనపు మూలకం జోడించే చూడగానే విదంగా దీని తర్వాత పాయింటర్ NULL అని నోడ్ పడుతుంది ఉంది ఈ ప్రస్తుతం NULL, మరియు కొత్త నోడ్ యొక్క చిరునామా అవసరం, అయితే దాన్ని మార్చండి. కాబట్టి మేము ఒకరి ఎడమ చేతి పెంచడం ద్వారా దశ తీసుకున్న కోడ్ బాణం గీయడం చేస్తున్నారు. ఇప్పుడు కోసం నా చేతులు దుర్చాల్సిన మేము కేసు మనం పర్యావరణం యొక్క ఈ విధమైన లో చేసినప్పుడు అది కోల్పోయింది సులభం భావిస్తున్న ఎందుకంటే, జాబితా యొక్క మధ్య వద్ద చొప్పించడం తనిఖీ ఉంది. మీరు గుర్తించడానికి కావలసిన అయితే కేవలం intuitively, ఏ జరిగే అవసరం కొన్ని సంఖ్య మధ్య చెందిన పేరు మీరు నడవడానికి ఉన్నాయి ఒకటి కంటే ఎక్కువ వేలితో, ఒకటి కంటే ఎక్కువ పాయింటర్, అది ఎంచుకోవడం ద్వారా చెందిన పేరు గుర్తించడానికి అంశం <ప్రస్తుత ఒకటి, > ప్రస్తుత ఒకటి, మరియు ఒకసారి మీరు ఆ స్థలాన్ని మీరు చాలా జాగ్రత్తగా చుట్టూ గమనికలు కదిలే షెల్ గేమ్ యొక్క ఈ విధమైన లేదు. ఆ సమాధానం, మీరు మీ స్వంత ఇంటిలో ఈ ద్వారా కారణం చెయ్యాలనుకుంటే, డౌన్ కేవలం కోడ్ ఈ రెండు మార్గాల దిమ్మల, కాని ఆ పంక్తులు క్రమాన్ని సూపర్ ముఖ్యం. మీరు ఒకరి వైపు డ్రాప్ మరియు పెంచడానికి ఉంటే ఎవరో, తప్పు క్రమంలో ఎందుకంటే మళ్ళీ, మీరు జాబితా orphaning ముగించవచ్చు. మరింత సంభావితంగా సంక్షిప్తంగా, తోక వద్ద చొప్పించడం సాపేక్షంగా సూటిగా ఉంటుంది. తల వద్ద చొప్పించడం కూడా చాలా సూటిగా ఉంటుంది కానీ మీరు అదనపు పాయింటర్ ఈ సమయంలో నవీకరించవలసి ఉంది ఇక్కడ జాబితాలో సంఖ్య 5 దూరి కు, ఆపై మధ్యలో చొప్పించడం మరింత కృషి ఉంటుంది, చాలా జాగ్రత్తగా దాని సరైన స్థానంలో సంఖ్య 20 ప్రవేశపెట్టుటకు, ఇది 17 మరియు 22 మధ్య ఉంటుంది. మీరు, 22 కొత్త నోడ్ 20 పాయింట్ ఉన్నట్లు ఏదో ఒకటి చేయాలి కాబట్టి తరువాత, ఇది నోడ్ యొక్క పాయింటర్ గత నవీకరించబడింది అవసరం? ఇది నిజానికి అది ప్రవేశపెట్టుటకు, 17. మరలా, నేను నిర్దిష్ట అమలు కోసం అసలైన కోడ్ వాయిదా చేస్తాము. మొదటి చూపులో ఇది కాస్త అధిక, కానీ అది నిజంగా కేవలం ఒక అనంతమైన లూప్ యొక్క ఆ, మళ్ళీ వెతికినా మళ్ళీ వెతికినా, మళ్ళీ వెతికినా, మళ్ళీ వెతికినా, మరియు మీరు నల్ పాయింటర్ హిట్ వెంటనే బ్రేకింగ్ యొక్క ఆ సమయంలో మీరు అవసరమైన ప్రవేశాన్ని చేయవచ్చు. ఈ అప్పుడు ప్రతినిధి లింక్ జాబితా చొప్పించడం స్మృతి. , ఒక చాలా రకం, మరియు మేము ఒక సమస్యను పరిష్కరించింది చేసిన లాగా అనిపిస్తుంది కానీ మేము ఇతర ఒక పరిచయం చేసాము. స్పష్టముగా, మేము అన్ని ఈ గడిపాడు చేసిన పెద్ద O మరియు Ω మరియు త్వరగా సమస్యలను పరిష్కరించటానికి ప్రయత్నించే, అమలు సమయం, మరియు ఇక్కడ మేము వెనక్కి, అది ఫీల్స్ పెద్ద అడుగు తీసుకుని. మరియు ఇంకా, గోల్ డేటా నిల్వ ఉంటే, మేము సోమవారం అన్నారు ఇది హోలీ గ్రెయిల్ అనుకుని, నిజంగా ఉంటుంది తక్షణమే విషయాలు నిల్వ. నిజానికి, మేము ఒక క్షణం ఉంచారు పక్కన లింక్ జాబితా అని అనుకుందాం మరియు మేము బదులుగా పట్టిక భావనను ఆవిష్కరించింది. మరియు వ్యూహం క్షణం యొక్క ఒక పట్టిక అనుకుంటున్నాను తెలియజేయండి. ఈ శ్రేణి మరియు ఈ సందర్భంలో ఇక్కడ కొన్ని 26 అంశాలను 25 ద్వారా 0 కలిగి ఉంది మరియు మీరు పేర్లు నిల్వ కొన్ని భాగం అవసరం అనుకుంటే: అలైస్ మరియు బాబ్ మరియు చార్లీ మరియు ఇష్టపడుతున్నారు. మరియు మీరు ఆ పేర్లు నిల్వ కొన్ని డేటా నిర్మాణం అవసరం. సరే, మీరు ఒక లింక్ జాబితా లాగ ఉపయోగించవచ్చు మరియు మీరు ముందుకు బాబ్ బాబ్ తర్వాత మరియు చార్లీ ముందు ఆలిస్ ఇన్సర్ట్ జాబితా నడుస్తూ కాలేదు. మరియు, నిజానికి, మీరు జనాంతికంగా వలె కోడ్ చూడాలనుకుంటే, list2.h లో, మేము ఖచ్చితంగా అలా తెలుసు. మేము ఈ కోడ్ ద్వారా కాదు, కానీ ఈ మొదటి ఉదాహరణ యొక్క రూపాంతరం మేము అని విద్యార్థి ముందు చూసిన ఒక ఇతర struct, పరిచయం తరువాత ఏమి నిజానికి అనుబంధ జాబితా లో నిల్వ ఒక విద్యార్థి నిర్మాణం ఒక పాయింటర్ గా కాకుండా ఒక సాధారణ చిన్న పూర్ణాంక, n. , కోడ్ నిజమైన తీగలు కూడుకుని ఉన్నాయి ఉంది కాబట్టి తెలుసుకుంటారు కానీ చేతిలో గోల్ నిజంగా ఇప్పుడు సామర్థ్యం సమస్యను పరిష్కరించడానికి ఉంటే, మేము ఆలిస్ అనే ఒక వస్తువు ఇచ్చిన మీరు ఇది నీస్ కాదు, మేము, డేటా నిర్మాణం లో సరైన స్థానం లోకి ఆమెకు మీరు ఇది ఆలిస్ ఉంచాలి నిజంగా నైస్ అంటాను లాగా అనిపిస్తుంది, దీని పేరు మొదటి స్థానంలో, ఒక మొదలవుతుంది. మరియు దీని పేరు రెండవ స్థానంలో, B మొదలవుతుంది బాబ్,. వ్యూహం తో, లేదా, అది ఒక టేబుల్, ఆ వద్ద ఒక హాష్ పట్టిక కాల్ ప్రారంభిద్దాం మేము ఖచ్చితంగా ఆ చేయవచ్చు. మేము ఆలిస్ వంటి పేరు ఇవ్వకపోతే, ఆలిస్ వంటి స్ట్రింగ్, మీరు A-l-i-c-ఇ పేరు ఎలా ఉంచగలను? మేము ఒక hueristic అవసరం. మేము ఆలిస్ వంటి కొన్ని ఇన్పుట్ రావడానికి ఫంక్షన్ అవసరం మరియు సమాధానాన్ని తిరిగి, "ఈ స్థానంలో ఆలిస్ ఉంచండి." మరియు ఈ చర్య, ఈ బ్లాక్ బాక్స్, హాష్ విధి అని అన్నారు. ఒక హాష్ ఫంక్షన్ను, "ఆలిస్" వంటి, ఒక ఇన్పుట్ పడుతుంది విషయం మరియు మీరు తిరిగి సాధారణంగా, కొన్ని డేటా నిర్మాణంలో సంఖ్యా నగర ఆలిస్ చెందిన పేరు. ఈ సందర్భంలో, మా హాష్ ఫంక్షన్ను సులభమైన ఉండాలి. మా హాష్ ఫంక్షన్ను మీరు ఇది పాత్ర నేను జాగ్రత్త "ఆలిస్", ఇవ్వకపోతే, చెప్పాలి? మొదటి ఒకటి. నేను [0] చూడండి, ఆ తరువాత [0] పాత్ర ఉంటే, సంఖ్య 0 తిరిగి చెప్పారు. ఇది B అయితే, 1 తిరిగి. అది యొక్క C ఉంటే, మొదలైనవి 2 తిరిగి, మరియు. అన్ని 0 ఇండెక్స్, మరియు ఆ మొదలైనవి నాకు ఆలిస్ మరియు అప్పుడు బాబ్ మరియు అప్పుడు చార్లీ ప్రవేశపెట్టే అవకాశం మరియు ఉంటుంది ఈ డేటాను నిర్మాణాన్ని. కానీ సమస్య ఉంది. ఏం అనిత మళ్లీ వచ్చింది? ఉంటే మేము అనిత ఎక్కడ ఎలా ఉంచగలను? ఆమె పేరు కూడా, ఒక అక్షరంతో ప్రారంభమయ్యే మేము ఈ సమస్య యొక్క ఇంకా పెద్ద మెస్ చేసినట్లు మరియు భావిస్తాడు. మేము ఇప్పుడు డేటా నిర్మాణాన్ని వెంటనే చొప్పించడం, స్థిరమైన సమయం చొప్పించడం కలిగి బదులుగా దారుణంగా-సందర్భంలో కంటే సరళ, కానీ మేము ఈ సందర్భంలో అనిత ఏమి చేయగలను? రెండు ఎంపికలు నిజంగా, ఏమిటి? Yeah? [స్టూడెంట్ సమాధానం, అపారదర్శక] సరే, మేము మరొక కోణాన్ని కలిగి ఉంటుంది. ఆ బావుంటుంది. కనుక మేము సోమవారం మాటలతో గురించి మాట్లాడారు వంటి 3D లో విషయాలను నిర్మించవచ్చు. మేము ఇక్కడ మరొక ను జోడించడానికి, కానీ, నేను ఈ సాధారణ ఉంచటానికి ప్రయత్నిస్తారు కాబట్టి అనుకుందాం కాలేదు. ఇక్కడ మొత్తం గోల్, వెంటనే స్థిరంగా సమయం యాక్సెస్ ఉంటుంది కాబట్టి చాలా సంక్లిష్టతను జోడించడం యొక్క. ఈ డేటాను నిర్మాణాన్ని అనిత ఇన్సర్ట్ చెయ్యడానికి ప్రయత్నిస్తున్నప్పుడు ఇతర ఎంపికలు ఏవి? Yeah? [స్టూడెంట్ సమాధానం, అపారదర్శక] గుడ్. కాబట్టి మేము, డౌన్ అందరి తరలించడానికి కాలేదు ఆమె నిజంగా చేయాలనుకుంటున్నారు పేరు అప్పుడు చార్లీ బాబ్ మరియు ఆలిస్, డౌన్ nudges మరియు వంటి మేము అనిత ఉంచండి. అయితే, ఇప్పుడు, ఈ దుష్ప్రభావాన్ని ఉంది. ఈ డేటా నిర్మాణం ప్రజలు ఒకసారి ఇన్సర్ట్ చెయ్యడానికి మీరు ఎందుకంటే బహుశా ఉపయోగపడుతుంది కానీ అవి తరువాత అయితే తనిఖీ మీరు ఎందుకంటే మేము డేటా నిర్మాణంలో పేర్లు అల్ అవ్ట్ ప్రింట్ చేయండి. మేము చివరికి ఈ డేటాను ఏదో చేయబోతున్నామని. కాబట్టి ఇప్పుడు మేము ఆమె రావలసిన చోట ఇకపై ఎవరు ఆలిస్, ఇరికించటంలో రకం చేసాము. లేదా బాబ్ కాదు లేదా చార్లీ ఉంది. కాబట్టి బహుశా ఇది ఒక మంచి ఆలోచన కాదు. కానీ నిజానికి, ఈ ఒక ఎంపిక. మనం అందరికీ క్రిందికి తరలించు కాలేదు లేదా హెక్, అనిత ఆట ఆలస్యంగా అందింది, మనం కేవలం అనిత ఉంచవద్దు ఇక్కడ, ఇక్కడ, ఇక్కడ, మనం జాబితాలో కొద్దిగా తక్కువ ఆమెకు అనుమతిస్తాయి. కానీ ఈ సమస్య మళ్లీ బదిలీ మొదలవుతుంది. మీరు ఆమె మొదటి పేరు ఆధారంగా, తక్షణమే ఆలిస్ కనుగొనేందుకు చేయగలరు. మరియు తక్షణమే బాబ్, మరియు చార్లీ. కానీ మీరు, అనిత కోసం చూడండి మరియు మీరు అయ్యో, చూడండి, ఆలిస్ విధంగా ఉంది. Well, నాకు ఆలిస్ క్రింద తనిఖీ అనుమతిస్తుంది. బాబ్ అనిత కాదు. చార్లీ అనిత కాదు. ఓహ్, అనిత ఉంది. మరియు మీరు తర్కం యొక్క రైలు వెళ్లే కొనసాగితే, ఈ కొత్త డేటా నిర్మాణాన్ని కనుగొనడం లేదా అనిత ప్రవేశపెట్టే చెత్త-సందర్భంలో అమలు సమయం ఏది? ఇది కుడి, O (n) ఏమిటి? చెత్త విషయంలో ఎందుకంటే, ఆలిస్, బాబ్, చార్లీ ఉంది. . . అన్ని "Y" అనే ఎవరైనా మార్గం డౌన్, కాబట్టి ఒకే ఒక మచ్చ ఎడమ. కృతజ్ఞతగా, మేము "Z" అని ఎవరూ కలిగి ఉంటాయి, కాబట్టి మేము చాలా దిగువన అనిత ఉంచండి. మమ్మల్ని ఆ సమస్య పరిష్కారమైంది లేదు. కాబట్టి బహుశా మేము ఈ మూడవ పరిమాణం పరిచయం చేయాలి. మేము ఈ మూడవ పరిమాణం పరిచయం లేకపోతే ఇది,, అవుతుంది మేము ఖచ్చితంగా ఈ లేదు, కానీ హోలీ గ్రెయిల్ కలిసి జీవించాలని అన్నారు స్థిరంగా సమయం చొప్పించడం మరియు డైనమిక్ ప్రక్షిప్తాలు తద్వారా మేము పరిమాణం 26 యొక్క హార్డ్ కోడ్ వ్యూహం అవసరం లేదు. మేము కావలసిన మేము అనేక పేర్లు ఇన్సర్ట్ చేయవచ్చు, కానీ లెట్స్ ఇక్కడ మా 5 నిమిషాల విరామం మరియు తర్వాత సరిగ్గా అలా. అన్ని కుడి. నేను అందంగా కృత్రిమంగా అక్కడ కథ ఏర్పాటు ఆలిస్ మరియు అప్పుడు బాబ్ మరియు అప్పుడు చార్లీ మరియు తరువాత అనిత, ఎంచుకోవడం ద్వారా దీని పేరు స్పష్టంగా చెయిన్స్ తో కొట్టుకొని నిశ్చయించుకున్నారు. కానీ మేము కలిసి సోమవారం ముగిసింది ప్రశ్న ఇది ఎంత ఉండవచ్చు మీరు ఈ రకాల ప్రమాదాలలో జరుగుతుందని? ఇతర మాటలలో, మేము ఈ పట్టిక నిర్మాణం ఉపయోగించడానికి మొదలు ఉంటే, ఇది నిజంగా కేవలం ఒక శ్రేణి 26 స్థానాల ఈ సందర్భంలో, మా ఇన్పుట్లను బదులుగా ఏకరీతి పంపిణీ ఉంటే ఏమి? ఇది కృత్రిమంగా అలైస్ మరియు బాబ్ మరియు చార్లీ మరియు డేవిడ్ కాదు మొదలైనవి అక్షర, అది ఏకరీతిగా Z. ద్వారా ఒక పంపిణీ యొక్క బహుశా మేము లక్కీ పొందుతారు మరియు మేము రెండు A లేదా B రెండు యొక్క ఏమీ ఉండదని చేస్తున్నారు ఎవరైనా ఎత్తి చూపారు, చాలా అధిక సంభావ్యతతో, కానీ మేము సాధారణ ఈ సమస్య మరియు లేకపోతే 0 to 25 కానీ, సే, 0 364 ద్వారా లేదా 65, క్లిష్టమైన ఏడాదిలో రోజుల తరచుగా సంఖ్య, మరియు ప్రశ్న అడిగిన, "ఈ గదిలో మాకు రెండు ఒకే పుట్టినరోజు కలిగి సంభావ్యత ఏమిటి?" అది మరొక విధంగా ఉంచండి సంభావ్యత మాకు ఇద్దరు ప్రారంభమయ్యే ఒక పేరు కలిగి ఏమిటి? ప్రశ్న యొక్క విధమైన, అదే, కానీ ఈ చిరునామా స్థలం ఈ శోధన స్థలం,, పుట్టినరోజులు విషయంలో పెద్దగా ఉంది మేము వర్ణమాలలో అక్షరాల కంటే సంవత్సరంలో చాలా ఎక్కువ రోజులు ఎందుకంటే. ఒక తాకిడి సంభావ్యత ఏమిటి? Well, మేము గణిత సరసన విధంగా ఇందుకు ద్వారా ఈ యొక్క ఆలోచించవచ్చు. ఏ ప్రమాదాలలో యొక్క సంభావ్యత ఏమిటి? అయితే, ఈ ఈ వ్యక్తీకరణ ఏ సంభావ్యత యొక్క చెప్పారు వారు ఒక ఏకైక పుట్టినరోజు కలిగి ఈ గదిలో కేవలం ఒక వ్యక్తి, ఉంది ఉంటే? ఇది 100% ఉంది. ఎందుకంటే గదిలో మాత్రమే ఒక వ్యక్తి ఉంటే, అతని లేదా ఆమె పుట్టినరోజు సంవత్సరం నుండి 365 రోజులు ఏ ఉంటుంది. కాబట్టి 365/365 ఎంపికలను నాకు 1 విలువ ఇస్తుంది. కాబట్టి సమయంలో ప్రశ్నను లో సంభావ్యత కేవలం 1. కానీ గదిలో రెండవ వ్యక్తి ఉంటే, వారి పుట్టిన రోజు భిన్నంగా ఉంటుంది సంభావ్యత ఏది? మాత్రమే 364 రోజుల సాధ్యం, విస్మరించడం లీపు సంవత్సరాలలో, ఉన్నాయి వారి పుట్టిన రోజు కోసం ఇతర వ్యక్తుల కొట్టుకొని కాదు. కాబట్టి 364/365. ఒక మూడవ వ్యక్తి వస్తుంది, అది మొదలైనవి 363/365, మరియు. కాబట్టి మేము, చిన్నది పొందడానికి ఇది ఈ భిన్నాల కలిసి గుణించడం ఉంచడానికి గుర్తించడానికి మాకు అన్ని ఏకైక పుట్టినరోజులు కలిగి సంభావ్యత ఏమిటి? కానీ మేము, కోర్సు యొక్క, ఆ సమాధానం తీసుకుని దానికి చుట్టూ ఫ్లిప్ మరియు ఆ యొక్క 1 మైనస్ అన్ని, మేము చివరికి పొందుతారు ఒక వ్యక్తీకరణ చేయండి మీరు మీ గణిత పుస్తకాల తిరిగి గుర్తుంచుకుంటే, అది, ఈ వంటి కొంత కనిపిస్తోంది ఇది చాలా సులభంగా రేఖాచిత్రంగా వివరించబడుతుంది. మరియు ఇక్కడ ఈ గ్రాఫిక్, x అక్షం మీద పుట్టిన ఉంది లేదా పుట్టినరోజులు తో ప్రజలు, మరియు y అక్షం మీద సంఖ్య మ్యాచ్ అవకాశం. మరియు ఈ విధంగా అన్నాడు, మీరు కలిగి ఉంటే, కూడా, యొక్క అని పిలవబడు ఉంది యొక్క 22, 23 లో లాగ ఎంచుకోనీ. గదిలో 22 లేదా 23 మంది, అక్కడ ఉంటే ఆ అతి కొద్ది మంది రెండు ఒకే పుట్టినరోజు పొందబోతున్నారు సంభావ్యత combinatorially, వాస్తవానికి సూపర్ ఎక్కువ. 50% అసమానత ఆ ఆచరణాత్మకంగా కేవలం 22 మంది, ఒక సమావేశంలో, ఒక తరగతి లో, ఆ ప్రజల 2 అదే పుట్టినరోజు పొందబోతున్నారు. ఎందుకంటే మీరు అదే పుట్టినరోజు కలిగి దీనిలో చాలా మార్గాలు ఉన్నాయి. చెత్తగా, మీరు చార్ట్ కుడి వైపు దృష్టి ఉంటే, సమయానికి మీరు, అది 58 విద్యార్ధులు ఒక తరగతి కలిగి పుట్టినరోజు కలిగి 2 మంది సంభావ్యత సూపర్, సూపర్ అధిక, దాదాపు 100% ఉంది. ఇప్పుడు, ఆ నిజమైన జీవితం గురించి ఒక సరదా వాస్తవం విధమైన ఉంది. కానీ పరిణామాలు, ఇప్పుడు, డేటా నిర్మాణాలకు మరియు నిల్వ సమాచారం మీ డేటా యొక్క ఒక నైస్, క్లీన్, ఒకే రకమైన పంపిణీని కలిగి ఊహించి అంటే మరియు మీరు విషయాలు కొంత సరిపోయే ఒక పెద్ద తగినంత శ్రేణి కలిగి మీరు ఏకైక ప్రాంతాల్లో ప్రజలు చూడాలని కాదు. మీరు ప్రమాదాలలో చూడాలని. , అది అని వంటి, హాషింగ్ యొక్క ఈ భావన కాబట్టి "ఆలిస్" వంటి ఒక ఇన్పుట్ తీసుకుని కొన్ని విధంగా అది మర్దనా ఆపై 0 లేదా 1 లేదా 2 వంటి ఒక సమాధానం చేరుకోవడంలో. ఆ ఫంక్షన్ కొన్ని అవుట్పుట్ తిరిగి చేరుకోవడం తాకిడి ఈ సంభావ్యత బాధపడుతుంటాడు. కాబట్టి మేము ఎలా ఆ పోటీలతో నిర్వహించగలుగుతుంది? వెల్, ఒక కేసులో, మేము సూచించాడు ఆలోచన పడుతుంది. మేము, కొంచెం సరళంగా, బహుశా అందరి క్రిందికి తరలించు, లేదా బదులుగా వేరే ఎత్తుగడ అందరూ కంటే, యొక్క కేవలం అందుబాటులో స్పాట్ దిగువ అనిత తరలించడానికి అనుమతిస్తాయి. ఆలిస్ 0 లో అయితే, బాబ్ 1 లో, చార్లీ, 2 లో ఉంది మేము కేవలం నగర 3 వద్ద అనిత ఉంచుతాము. మరియు ఈ పరిశీలించకుండా సరళ అని డేటా నిర్మాణాలు ఒక టెక్నిక్. మీరు ఈ లైన్ వాకింగ్ చేస్తున్నాము, మీకు పరిశీలించకుండా యొక్క విధమైన ఉన్నారు లీనియర్ ఎందుకంటే డేటా నిర్మాణంలో అందుబాటులో మచ్చలు కోసం. అయితే, ఈ O (n) లోకి devolves. డేటా నిర్మాణం నిజంగా పూర్తి అయితే, అది 25 మంది, ఇప్పటికే ఉంది మరియు తర్వాత అనిత వచ్చింది, ఆమె నగర Z అంటే ఏమిటో వద్ద ముగుస్తుంది మరియు ఆ మంచిది. ఆమె ఇప్పటికీ సరిపోతుంది, మరియు మేము తరువాత ఆమె కనుగొనవచ్చు. కానీ ఈ విషయాలు వేగవంతం యొక్క లక్ష్యం వ్యతిరేకంగా ఉంది. మేము బదులుగా ఈ మూడవ పరిమాణం పరిచయం సో వాట్ ఉంటే? పద్ధతిని సాధారణంగా ప్రత్యేక కూర్పికం అని పిలుస్తారు, అలిస్ గురైంది. మరియు ఒక హాష్ పట్టిక ఇప్పుడు, ఈ పట్టిక నిర్మాణం ఏమిటి, మీ టేబుల్ కేవలం గమనికలు యొక్క వ్యూహం ఉంది. కాని ఆ గమనికలు సూచించడానికి అంచనా ఏమిటి? అనుబంధ జాబితా. మేము ఈ ప్రపంచాలు రెండు అత్యుత్తమ పడుతుంది కాబట్టి ఏం? మేము ప్రారంభ సూచికలు కోసం శ్రేణుల ఉపయోగించడానికి డేటా నిర్మాణాన్ని కాబట్టి మేము తక్షణమే, [1], [30] లేదా ముందుకు [0] వెళ్ళవచ్చు అయితే మేము కొన్ని వశ్యత కలిగి మరియు మేము అనిత మరియు ఆలిస్ మరియు ఆడమ్ ఇముడుతుంది ఆ మరియు ఏ ఇతర A పేరు, మేము బదులుగా ఇతర అక్షం ఏకపక్ష పెరుగుతాయి తెలపండి. మరియు మేము చివరకు, సోమవారం నాటికి, అనుబంధ జాబితా తో వ్యక్తీకరణ సామర్థ్యం కలిగి ఉంటాయి. మేము ఏకపక్ష డేటా నిర్మాణం పెరుగుతాయి. ప్రత్యామ్నాయంగా, మనం కేవలం ఒక భారీ 2 డైమెన్షనల్ శ్రేణి చేస్తాయి కానీ ఒకవేళ ఒక భయంకర పరిస్థితి చేస్తాడు 2 డైమెన్షనల్ శ్రేణి వరుసలను ఒక దీని పేరు A. ప్రారంభం ఏమవుతుంది అదనపు వ్యక్తి కోసం తగినంత పెద్ద కాదు ఇండ్లలో మనము భారీ 2-కోణ నిర్మాణం reallocate ఉంటుంది ఒక అనే అనేక మంది ఉన్నది కనుక Z ఏదో అనే కాబట్టి కొన్ని ప్రజలు అక్కడ ఉన్నప్పుడు. ఇది కేవలం చాలా చిన్న డేటా నిర్మాణం చేస్తాడు. అది ఏ ద్వారా ఖచ్చితమైన కాదు, కానీ ఇప్పుడు మేము కనీసం సామర్థ్యం కలిగి అలైస్ లేదా అనిత చెందిన పేరు తక్షణమే కనుగొనేందుకు, కనీసం నిలువు అక్షం పరంగా, మరియు తర్వాత మేము ఈ లింక్ జాబితాలో అనిత లేదా ఆలిస్ ఉంచాలి పేరు నిర్ణయించుకుంటారు ఉంటుంది. మేము విషయాలు క్రమబద్ధీకరించేందుకు గురించి శ్రద్ధ లేకపోతే, ఎంత త్వరగా మేము ఈ వంటి నిర్మాణం ఆలిస్ ఇన్సర్ట్ చేయవచ్చు? ఇది స్థిరంగా సమయం. [0] లోకి మేము ఇండెక్స్, మరియు ఒక యొక్క అక్కడ ఉంటే, ఆలిస్ ఆ లింక్ జాబితా ప్రారంభంలో వెళుతుంది. కానీ భారీ ఒప్పందం కాదు. అనిత తర్వాత వచ్చింది ఉంటే ఎందుకంటే దశలను కొన్ని సంఖ్య తరువాత, అనిత పేరు చెందినవా? Well, [0]. Oop. ఆలిస్ ఆ లింక్ జాబితా ఉంది. కానీ మేము ఈ పేర్లు క్రమబద్ధీకరించేందుకు గురించి శ్రద్ధ లేకపోతే, మేము కేవలం ఆలిస్ పైగా, చొప్పించు అనిత తిరగవచ్చు కూడా స్థిరమైన సమయం ఉంది. ఆలిస్ మరియు ఆడమ్ మరియు ఈ ఇతర A పేర్లు, అక్కడ అయినా అది నిజంగా భౌతికంగా వాటిని తరలించడం లేదు. ఎందుకు? మేము తెలిసిన లింక్ జాబితా, ఇక్కడ ఎందుకంటే ఈ నోడ్స్ ఏమైనప్పటికీ ఉన్నాయి? మీరు చేయాల్సిందల్లా బ్రెడ్ ముక్కలు తరలించు ఉంది. చుట్టూ బాణాలు తరలించు; మీరు భౌతికంగా ఏ డేటా తరలించడానికి లేదు. కాబట్టి మేము తక్షణమే, ఆ సందర్భంలో, అనిత ఇన్సర్ట్ చేయవచ్చు. స్థిర సమయం. కాబట్టి మేము నిరంతరం సమయం లుక్ మరియు అనితా వంటి ఎవరైనా నిరంతరం సమయం చొప్పించడం ఉన్నాయి. కానీ, ప్రపంచ oversimplifying రకం. మనం తర్వాత ఆలిస్ కావలసిన వారికి? మనం తర్వాత ఆలిస్ కావలసిన వారికి? ఎన్ని దశలు టేక్ ఉండబోతుంది? [స్టూడెంట్ సమాధానం, అపారదర్శక] సరిగ్గా. లింక్ జాబితా ఇన్ చెయిన్స్ ముందు ప్రజల సంఖ్య. మా డేటా నిర్మాణం, మళ్ళీ, ఈ నిలువుగా ప్రవేశం కలిగి అది చాలా ఖచ్చితమైన కాదు మరియు తర్వాత ఇది ఉరి ఈ అనుసంధాన జాబితాలు ఉన్నాయి - నిజానికి, ఇది ఒక వ్యూహం డ్రా లేదు తెలియజేయండి. ఈ లింక్ జాబితాలు ఈ వంటి కొంత కనిపించే దానిని ఆఫ్ ఉరి ఉంది. కానీ సమస్య ఉంటే ఆలిస్ మరియు ఆడమ్ మరియు ఈ ఇతర A పేర్లు అక్కడ మరింత ముగుస్తుంది, ఎవరైనా దశలను కొంత తీసుకొని ముగించవచ్చు కనుగొనడంలో, , మీరు లింక్ జాబితా ప్రయాణించేందుకు కలిగి bcause ఇది ఒక దీర్ఘ ఆపరేషన్ ఉంది. కాబట్టి నిజంగా, అప్పుడు, చొప్పించడం సమయం చివరికి n జాబితా లోని ఎలిమెంట్స్ సంఖ్య O (n) ఉంటుంది. ద్వారా విభజించబడింది, యొక్క కక్ష్య ఇది ​​m అనుసంధాన జాబితాలు యొక్క సంఖ్య m, కాల్ తెలియజేయండి మేము ఈ నిలువు అక్షం కలిగి. ఇతర మాటల్లో చెప్పాలంటే, నిజంగా పేర్లు ఒకే పంపిణీ ఊహించుకుంటే,, పూర్తిగా అవాస్తవ. ఇతర కొన్ని అక్షరాలను స్పష్టంగా ఇంకా ఉంది. కానీ మేము క్షణం ఒకే పంపిణీ కోసం ఊహించుకుంటే,, మరియు మేము మొత్తం ప్రజలు, మరియు M మొత్తం గొలుసులు n చేసారు ఈ గొలుసులు ప్రతి యొక్క మాకు అందుబాటులో అప్పుడు పొడవు చాలా సరళంగా మొత్తం, n గొలుసులు సంఖ్య ద్వారా విభజించబడింది అని అన్నారు. కాబట్టి n / m. మేము అన్ని గణితశాస్త్ర తెలివైన ఉండవచ్చు కానీ ఇక్కడ ఉన్నారు. ఈ ఒక స్థిర సంఖ్యలో ఉన్నాయి ఎందుకంటే m, ఒక స్థిరాంకం. మీరు ప్రారంభంలో మీ శ్రేణి ప్రకటించాలని వెళుతున్న మరియు మేము పునఃపరిమాణం నిలువు అక్షం లేదు. నిర్వచనం ప్రకారం, స్థిరంగా ఉంటుంది ఆ. అలా మార్చడం అలా మాట్లాడటం, కేవలం సమాంతర అక్షం ఉంది. కాబట్టి సాంకేతికంగా, ఈ ఒక స్థిరాంకం. కాబట్టి ఇప్పుడు, చొప్పించడం సమయం చాలా చక్కని O (n) ఉంది. కాబట్టి అన్ని ఆ మెరుగైన అనుభూతి లేదు. కానీ నిజం ఇక్కడ ఏముంది? Well, ఈ సమయంలో, వారాలు, మేము చెప్పడం చేసిన O (n ²). O (n), 2 x n ², - N, 2 ద్వారా విభజించబడింది. . . ఎచ్. ఇది కేవలం n ² ఉంది. కానీ ఇప్పుడు, సెమిస్టర్ యొక్క ఈ భాగం లో, మేము మళ్ళీ నిజమైన ప్రపంచం గురించి మాట్లాడటం ప్రారంభించవచ్చు. మరియు n / m కేవలం ఒక్క n కంటే ఖచ్చితంగా వేగంగా ఉంది. మీరు వెయ్యి పేర్లను, మరియు మీరు బహుళ బకెట్లు వాటిని విచ్ఛిన్నం ఉంటే మీరు, ఈ గొలుసులు ప్రతి మాత్రమే పది పేర్లు కలిగి ఉంటారు పూర్తిగా పది విషయాలు శోధించడం వెయ్యి విషయాలు కంటే వేగంగా అన్నారు. కాబట్టి రాబోయే సమస్య సెట్లు ఒక మీరు సవాలు అన్నారు సరిగ్గా ఆ ఆలోచించడానికి కూడా, అవును, asymptotically మరియు గణితశాస్త్రం, ఈ ఇప్పటికీ కేవలం సరళంగా ఉంటుంది, వస్తువులను గుర్తించడం ప్రయత్నించే సమయంలో ఇది సాధారణంగా సక్స్. వాస్తవంలో, ఆ కంటే వేగంగా వెళుతున్న ఎందుకంటే ఈ భాజకం యొక్క. మరియు మరలా ఈ రాజీ ఉన్నట్లు జరగబోతోంది మరియు సిద్ధాంతం మరియు వాస్తవానికి మధ్య ఈ ఘర్షణ, మరియు గుబ్బలు ఒకటి సెమిస్టర్ ఈ సమయంలో టర్నింగ్ ప్రారంభమౌతుంది మేము విధమైన semster యొక్క ముగింపు కోసం సిద్ధం వాస్తవంగా ఒక యొక్క ఎక్కువ, మేము వెబ్ ప్రోగ్రామింగ్ యొక్క ప్రపంచ పరిచయం, వంటి మీ వినియోగదారులకు వెళ్తున్నారు ఎందుకంటే పేరు నిజంగా, పనితీరు అన్నారు పేద డిజైన్ నిర్ణయాలు అనుభూతి పెరుగుదలకు ప్రారంభించండి. మీరు ఒక అనుసంధాన అమలు గురించి కాబట్టి ఎలా వెళ్ళి లేదు - ఒక హాష్ పట్టిక 31 అంశాలతో? మరియు మునుపటి ఉదాహరణ పుట్టినరోజులు గురించి ఏకపక్ష ఉంది. ఎవరైనా జనవరి 1 లేదా ఫిబ్రవరి 1 పుట్టినరోజు ఉంటే, మేము ఈ బకెట్ వాటిని ఉంచుతాము. ఇది జనవరి 2, ఫిబ్రవరి 2, మార్చి 2 అయితే, మేము ఈ బకెట్ వాటిని ఉంచుతాము. ఇది 31 ఎందుకు పేర్కొంది. ఎలా మీరు ఒక హాష్ పట్టిక డిక్లేర్ చెయ్యాలి? ఇది చాలా సాధారణంగా ఉంటుంది, నోడ్ * పట్టిక నా అసమగ్ర పేరు, [31] ఉంది. ఈ, నోడ్స్ నాకు 31 గమనికలు ఇస్తుంది మరియు నాకు లింక్ జాబితాలకు 31 గమనికలు కలిగి అనుమతించే ఆ గొలుసులు ప్రారంభంలో NULL ఉన్నప్పటికీ. నేను నిల్వ అనుకుంటే నేను "బాబ్", "చార్లీ" "ఆలిస్" ఉంచాలి ఏం కోరుకుంటున్నారు? Well, మేము ఒక నిర్మాణం లో ఆ విషయాలు మూసివేయాలని అవసరం మేము ఆలిస్, బాబ్ సూచించడానికి చార్లీ సూచించడానికి, మొదలగునవి. అవసరం ఎందుకంటే మేము కేవలం పేర్లు లేదు, కాబట్టి నేను ఇక్కడ కణుపు అని పిలిచే ఒక కొత్త నిర్మాణం సృష్టించగలము. ఒక వాస్తవ నోడ్ ఏమిటి? ఈ కొత్త లింక్ జాబితాలో ఒక నోడ్ ఏమిటి? పదం అని మొదటి విషయం, వ్యక్తి యొక్క పేరు కోసం. పొడవు, బహుశా, ఒక మానవ యొక్క నేమ్ యొక్క అత్యధిక పొడవు సంబంధం ఆ ఏమైనా 20, క్రేజీ కార్నర్ సందర్భాల్లో 30, 40 అక్షరాలు, మరియు +1 ఏ కోసం? ఇది కేవలం అదనపు NULL పాత్ర \ 0 కాదు. కాబట్టి ఈ నోడ్, లోపల యొక్క "ఏదో" ఆకర్షణీయ ఉంది కానీ ఇంకనూ తర్వాత అనే పాయింటర్ ప్రకటించాడు కాబట్టి మేము చార్లీ కు బాబ్ గొలుసు ఆలిస్ కనుక ముందుకు ఆ. NULL కానీ తప్పనిసరిగా ఉండాలి లేదు. ఈ హాష్ పట్టికలు ఏ ప్రశ్నలు? Yeah? [స్టూడెంట్ అపారదర్శక, ప్రశ్న అడుగుతూ] ఒక అమరిక - మంచి ప్రశ్న. ఎందుకు వ్యూహం కాకుండా కేవలం చార్ * లో ఈ చార్ పదం? ఇది కాస్త ఏకపక్ష ఉదాహరణకు, నేను ఆశ్రయించాల్సిన అవసరం కోరుకోలేదు అసలు పేర్లు ప్రతి malloc కు. నేను స్ట్రింగ్ కోసం మెమరీ గరిష్టంగా మొత్తం ప్రకటించాలని కోరారు నేను ఆలిస్ \ 0 కాదు malloc మరియు ఉచిత మరియు వంటి చేసే అవసరం నిర్మాణాన్ని కాపీ జరిగింది. నేను స్పేస్ వాడకం ఎక్కువ మొగ్గు ఉండాలని అయితే నేను ఆ పని చేయడు. ప్రశ్న గుడ్. కాబట్టి ఈ దూరంగా సాధారణంగా ప్రయత్నించండి మరియు సాధారణంగా డేటా నిర్మాణాలు నేటి మిగిలిన దృష్టి మరియు మేము అదే ఫండమెంటల్స్ ఉపయోగించి పరిష్కరించగల ఇతర సమస్యలు కూడా డేటా నిర్మాణాలు అయినప్పటికీ వారి నిర్దిష్ట లో విభిన్నంగా ఉండవచ్చు. కనుక ఇది కంప్యూటర్ సైన్స్ హాజరవుతారు, చెట్లు చాలా సాధారణం. మరియు మీరు ఒక కుటుంబ చెట్టు వంటి ఒక చెట్టు విధమైన ఆలోచించవచ్చు కొన్ని మూలాలను, కొన్ని matriarch లేదా మూలపురుషుడైన, ఇక్కడ బామ్మగారు లేదా తాతను లేదా అంతకుముందు కాలం, ఇది కింద తల్లి మరియు తండ్రి లేదా వివిధ తోబుట్టువులు లేదా వంటివే. కాబట్టి, ఒక చెట్టు నిర్మాణం నోడ్ లను కలిగి ఉంది మరియు ఇది పిల్లలు ప్రతి నోడ్ కొరకు సాధారణంగా 0 లేదా ఎక్కువ పిల్లలు. మరియు అర్ధంలేని పదాల కొన్ని మీరు ఇక్కడ ఈ చిత్రంలో చూసే ఉంది అంచులలో చిన్న పిల్లలు లేదా grandkids ఏ ఎవరు, వారి నుండి వచ్చే ఏ బాణాలు కలిగి ఆ పిలవబడే ఆకులు, మరియు లోపల ఎవరైనా ఉంటాయి ఒక అంతర్గత కణుపు; మీరు ఆ తరహాలో ఏదైనా కాల్ చేయవచ్చు. కానీ ఈ నిర్మాణం చాలా సాధారణంగా ఉంటుంది. ఈ ఒక చిన్న ఏకపక్ష ఉంది. మేము, మేము మూడు పిల్లలు, ఎడమ ఒక బిడ్డ దిగువన రెండు పిల్లలను వదిలేసాడు. కాబట్టి మేము, మేము విషయాలు ప్రామాణికంగా ప్రారంభం ఉంటే వేర్వేరు పరిమాణాల వృక్షాలు, కాని మరియు మీరు ఒక చిన్న మునుపటి నుండి బైనరీ శోధన పాట్రిక్ యొక్క వీడియో నుండి ఈ గుర్తు ఉండవచ్చు ఆన్లైన్, బైనరీ శోధన వ్యూహం తో అమలు లేదు ఒక నల్లబల్లపై కాగితం లేదా ముక్కలు. మీరు మరింత ఆధునిక డేటా నిర్మాణం మీ సంఖ్యలను నిల్వ కోరుకున్నాడు అనుకుందాం. మీరు ఈ చెట్టు సృష్టించగలము. మీరు C లో ప్రకటించింది నోడ్సుకోసం చేశారు మరియు ఆ నోడ్ లోపల కనీసం రెండు అంశాలను కలిగి ఉంటాయి. ఒక మీరు నిల్వ మీరు సంఖ్య, మరియు ఇతర ఉంది - అలాగే, మేము మరో అవసరం. ఇతర చిల్డ్రన్ ఉంది. ఇక్కడ మరొక డేటా నిర్మాణ. ఈ సమయంలో, ఒక కణుపు n అనేక నిల్వ నిర్వచించవచ్చు తరువాత రెండు పాయింటర్లు; ఎడమ బాల మరియు కుడి బాల. మరియు వారు ఏకపక్ష లేదు. ఈ చెట్టు గురించి ఆసక్తికరంగా? మేము పాట్రిక్ తన వీడియో లో ఏర్పాటు ఎలా ఈ ఏర్పాటు లేదా చేసిన విధానంలో నమూనా ఏమిటి? ఇది ఇక్కడ జరగబోతోంది కొన్ని సార్టింగ్ అక్కడ రకమైన స్పష్టమైన యొక్క కానీ సాధారణ నియమం ఏమిటి? Yeah? [స్టూడెంట్ సమాధానం, అపారదర్శక] పర్ఫెక్ట్. మీరు ఈ వద్ద మెరుపు, మీరు, ఎడమవైపు చిన్న చూడండి పెద్ద ఎడమవైపు సంఖ్యలు, కాని ప్రతి నోడ్ కొరకు నిజం. ప్రతి నోడ్ కొరకు, అది కంటే దాని ఎడమ చైల్డ్ తక్కువ, మరియు అది దాని కంటే కుడి బాల ఎక్కువ. నేను సంఖ్య 44, సే, ఈ డేటా నిర్మాణం అన్వేషణ అనుకుంటే ఈ ఇప్పుడు అర్థం ఉంది నేను, ఎందుకంటే ఇప్పుడు ఈ మరింత సంకీర్ణ డేటా నిర్మాణాలు అన్ని తో, మూల ప్రారంభించడానికి కలిగి మేము కేవలం ప్రారంభం మాత్రమే, ఒక విషయం ఒక పాయింటర్ ఉంది. మరియు ఈ సందర్భంలో, ప్రారంభంలో మూలం. ఇది ఎడమ చివర కాదు ఈ నిర్మాణం యొక్క root ఉంది. నేను ఇక్కడ 55 చూడండి, మరియు నేను 44 కోసం చూస్తున్నాను. ఏ దిశలో నేను వెళ్లాలని మీరు అనుకుంటున్నారా? సహజంగా, కుడి చాలా పెద్ద చేస్తాడు ఎందుకంటే నేను, ఎడమ కు వెళ్లాలని మీరు అనుకుంటున్నారా. ఇక్కడ గమనించవచ్చు, మీరు సంభావితంగా భాగంలో చెట్టు వేరుచేయడానికి యొక్క విధమైన ఉన్నారు మీరు కుడి వైపు క్రిందికి వెళ్ళి ఎప్పుడూ ఉన్నారు. కాబట్టి ఇప్పుడు నేను 55 నుండి 33 వెళ్ళండి. ఇది అనేక చాలా చిన్న యొక్క. నేను 44 చూస్తున్నాను, కానీ ఇప్పుడు నేను 44 ఈ చెట్టు లో ఉంటే, నేను కుడి స్పష్టంగా వెళ్ళి తెలుసు. మరలా, నేను కత్తిరింపు భాగంలో చెట్టు ఉన్నాను. ఇది ఫోన్ బుక్ సందర్భానుసారంగా చాలా చక్కని ఒకేలా ఉంది. ఇది మేము నల్లబల్లపై పత్రాలు ఏమి పోలి ఉంది కానీ మాకు నిజంగా అనుమతిస్తుంది ఒక మరింత అధునాతన నిర్మాణ ఈ, విభజించి అల్గోరిథం యొక్క నమూనా ద్వారా జయించటానికి నిజానికి, ఈ వంటి నిర్మాణం నదీ ప్రవాహానికి అడ్డంగా ప్రయాణం - అయ్యో. ఈ వంటి నిర్మాణం నదీ ప్రవాహానికి అడ్డంగా ప్రయాణం, అది ఎక్కడ ", ఈ మార్గం వెళ్ళి లేదా మార్గం వెళ్ళి" విభాగంలో ఇది అమలు మొదటి వద్ద మీ మనస్సు వంగి అన్ని కోడ్ అర్థం లేదా, సూత్రం లేదా పునరుక్తి ఉపయోగించి, బైనరీ శోధన కోసం, ఇంటి ద్వారా వాకింగ్ అది మెడ లో ఒక బాధాకరమైన వ్యక్తి. మధ్య మూలకం కనుగొని, ఆపై మీ చుట్టుముట్టే అప్ లేదా అధిగమించుట. మేము ఇప్పుడు మళ్ళీ సూత్రం ఉపయోగించవచ్చు ఎందుకంటే ఒక అందం, ఈ ఉంది చాలా సజావుగా. నిజానికి, మీరు సంఖ్య 55 వద్ద మరియు నీకు 44 కావలసిన వారికి, మీరు ఈ విషయంలో వదిలి వెళ్ళి, అప్పుడు మీరు ఏమి చేస్తారు? మీరు ఖచ్చితమైన అల్గోరిథం అమలు. మీరు నోడ్ యొక్క విలువ తనిఖీ, అప్పుడు మీరు ఎడమ లేదా కుడి వెళ్ళండి. అప్పుడు మీరు ఎడమ లేదా కుడి వెళ్ళండి, నోడ్ యొక్క విలువ తనిఖీ. ఈ ఖచ్చితంగా సూత్రం అనుకూలం. కాబట్టి అయినప్పటికీ గతంలో మేము సూత్రం పాల్గొన్న కొన్ని మంచి ఏకపక్ష ఉదాహరణలు చేసిన ఆ, డేటా stuctures తో, పునరావృత ఉండాలి లేదు ముఖ్యంగా చెట్లు, అది, ఒక సమస్యను ఈ ఆలోచన యొక్క ఒక ఖచ్చితమైన దరఖాస్తు అది తగ్గిపోతున్న, ఆపై ఒకే రకమైన, కానీ చిన్న, ప్రోగ్రామ్ పరిష్కార. కాబట్టి మేము పరిచయం మరొక డేటా నిర్మాణం ఉంది. ఈ ఒక గుప్తమైన చూడటానికి మొదటి చూపులో రూపొందించారు, కానీ ఈ ఒక ఆశ్చర్యంగా ఉంది. కాబట్టి ఈ, పదాన్ని తిరిగి పొందడం నుండి వారసత్వంగా ఒక trie, trie, అనే డేటా నిర్మాణం ఇది తిరిగి ప్రయత్నించండి-Val పలుకుతారు, కానీ ప్రపంచ ఈ విషయాలు పిలిచే లేదు. ప్రయత్నిస్తుంది. T-r-i-ఇ. ఇది కొన్ని రకాల చెట్టు నిర్మాణం, కానీ ఒక trie లో నోడ్ యొక్క ప్రతి ఏ కనిపిస్తుంది? అది సంక్షిప్తంగా రకం ఎందుకంటే ఈ ఒక బిట్ పక్కదారి పట్టిస్తుంది. కానీ ఈ trie ప్రతి నోడ్ వాస్తవానికి వ్యూహం ఉన్నట్లు కనిపిస్తుంది. మరియు కూడా రేఖాచిత్రం యొక్క రచయిత, చూపలేదని లేదు ఈ సందర్భంలో, ఈ trie దీని ప్రయోజనం జీవితంలోని పదాలు నిల్వ చేయడానికి ఒక డేటా నిర్మాణం A-l-i-c-ఇ లేదా B-o-బి ఇష్టపడుతున్నారు. మరియు ఏ విధంగా మొదలైనవి ఈ డేటాను దుకాణాలు అలైస్ మరియు బాబ్ మరియు చార్లీ మరియు అనితా మరియు ఇది ఒక trie ఇన్ చెయిన్స్ నిల్వ చేయటం వ్యూహం ఉపయోగిస్తుంది మేము, వ్యూహం కనిపిస్తోంది రూట్ నోడ్ వద్ద ప్రారంభం మరియు అది సంక్షిప్త లిపి సంకేతం వ్రాసిన పేర్కొన్నాడు. ఆ ఏ పేర్లు ఉన్నాయి ఎందుకంటే రచయిత abcdefg విస్మరించబడ్డాయి. వారు మాత్రమే M మరియు P మరియు T చూపించింది, కానీ ఈ విషయంలో, యొక్క ఇక్కడ కొన్ని పేర్లు దూరంగా అలైస్ మరియు బాబ్ మరియు చార్లీ నుండి తరలించడానికి అనుమతిస్తాయి. మాక్స్వెల్ ఈ చిత్రంలో వాస్తవానికి. కాబట్టి ఎలా రచయిత స్టోర్ చేశాడు M-a-x-w-e-l-l? అతను లేదా ఆమె రూట్ నోడ్ వద్ద ప్రారంభించారు, మరియు వెళ్ళాడు [M], కాబట్టి సుమారు 13, అర్రే 13 నగర. ఆ తర్వాత అక్కడ నుండి, ఒక పాయింటర్ ఉంది. మరొక శ్రేణి ప్రముఖ ఒక పాయింటర్. అక్కడ నుండి రచయిత, పైన ఎడమ వైపు వద్ద వర్ణించిన, నగర A వద్ద ఆ శ్రేణి లో ఇండెక్స్ మరియు అతను లేదా ఆమె, మరొక శ్రేణి ఆ పాయింటర్ తరువాత మరియు నగర X వద్ద పాయింటర్ వెళ్ళాడు ఆ విధంగా ముందుకు తదుపరి శ్రేణి నగర W, E, L, L, మరియు లో, చివరకు, యొక్క వాస్తవానికి ఈ ఒక చిత్రాన్ని ఉంచడానికి ప్రయత్నిస్తారు తెలియజేయండి. కోడ్ లో వంటి ఒక నోడ్ చూడవచ్చు చేస్తుంది? ఒక trie ఒక నోడ్ మరింత కణుపులకు గమనికలు యొక్క వ్యూహం కలిగి ఉంది. కానీ కనీసం ఈ అమలులో, బూలియన్ విలువ రకమైన ఉన్నట్లు కలిగియున్నారు. నేను is_word కాల్ వస్తుంది. ఎందుకు? మీరు మాక్స్వెల్ ఇన్సర్ట్ చేసినప్పుడు, మీరు ఇన్సర్ట్ లేదు ఎందుకంటే ఈ డేటాను నిర్మాణాన్ని ఏదైనా. మీరు మీరు X. రాయడం లేదు M. రాయడం లేదు మీరు చేయుచున్నారు అన్ని గమనికలు అనుసరిస్తున్నారు. అప్పుడు M, ఒక సూచించే పాయింటర్, ప్రాతినిధ్యం పాయింటర్ అప్పుడు X, W, E, L, L, ప్రాతినిధ్యం పాయింటర్ కానీ మీరు చివరిలో చెయ్యాల్సిన తనిఖీ, వెళ్ళి యొక్క విధమైన ఉంది, నేను ఈ నగర చేరుకుంది. డేటా నిర్మాణంలో ఇక్కడ ముగిసే పదాన్ని ఉంది. సో వాట్ ఒక trie నిజంగా నిండి మరియు రచయిత ప్రాతినిధ్యం ఎంచుకున్నారు ఉంది చిన్న త్రిభుజాలు ఈ టెర్మినస్. వాస్తవంగా ఇది నిజానికి ఈ త్రికోణం ఇక్కడ అర్థం, ఈ బూలియన్ విలువ మీరు చెట్టు లో వెనక్కి వెళ్ళి ఉంటే, అంటే ఆ మాక్స్వెల్ ఈ ఉంది అనే పదం అర్థం. ఉదాహరణకు కానీ పదం foo, , చెట్టు లేదు నేను ఎగువ భాగంలో ఇక్కడ రూట్ నోడ్ వద్ద మొదలు ఉంటే ఎందుకంటే, ఏ F పాయింటర్, ఏ o పాయింటర్, ఏ o పాయింటర్ ఉంది. Foo ఈ నిఘంటువు ఒక పేరు కాదు. కానీ దీనికి విరుద్ధంగా, ట్యూరింగ్, t-U-r-i-n-G. మళ్ళీ, నేను t లేదా u లేదా r లేదా నేను లేదా n లేదా g నిల్వ లేదు. కానీ నేను క్రింద ఇక్కడ ఈ నోడ్ లో వాస్తవ మార్గంలో ఒక విలువ ఈ డేటాను నిర్మాణంలో స్టోర్ చేశాడు - చెట్టు లో ఒప్పుకు is_word ఈ బూలియన్ విలువ అమర్చుట ద్వారా. కాబట్టి ఒక trie, ఈ ఆసక్తికరమైన మెటా నిర్మాణం యొక్క రకం మీరు నిజంగా నిఘంటువు ఈ రకమైన కోసం పదాలు తాము నిల్వ లేదు పేరు. స్పష్టం, మీరు అవును లేదా సంఖ్య నిల్వ చేసిన, ఇక్కడ ముగిసే పదాన్ని ఉంది. ఇప్పుడు అంత ఏది? మీరు మెమరీలో నిల్వ చేయడానికి ప్రయత్నిస్తున్న ఒక నిఘంటువులో 150,000 పదాలు ఉంటే ఒక లింక్ జాబితా లాగ ఉపయోగించి, మీరు మీ లింక్ జాబితాలో 150,000 నోడ్స్ పొందబోతున్నారు. మరియు అక్షర ఆ పదాల్లో ఒకటి కనుగొనడంలో O (n) సమయం పడుతుంది. లీనియర్ టైమ్. కానీ trie యొక్క ఇక్కడ సందర్భంలో, ఒక పదం కనుగొనే నడుస్తున్న సమయంలో ఏది? ఇది ఇక్కడ అందం అవుతుంది అని మీరు ఇప్పటికే ఈ నిఘంటువులో 149.999 పదాలు, సరే ఈ డేటా నిర్మాణంతో అమలు, ఆ లోకి, ఆలిస్ వంటి, ఆలిస్ ఒక వ్యక్తి కనుగొనడానికి లేదా ఇన్సర్ట్ చెయ్యడానికి ఇది ఎంత సమయం పడుతుంది? సరే, వెనుకంజలో పాత్ర కోసం కావచ్చు 6 దశలు, కేవలం 5 ఉంది. ఎందుకంటే నిర్మాణం ఇతర పేర్లు presense ఆలిస్ ప్రవేశపెట్టే విధంగా పొందుటకు లేదు. అంతేకాకుండా, ఆలిస్ కనుగొనడంలో ఈ నిఘంటువులో 150,000 పదాలు ఉన్నాయి ఒకసారి , అన్ని వద్ద ఆలిస్ కనుగొనే మీ విధంగా పొందుటకు లేదు ఆలిస్ ఎందుకంటే. . . . . ఇక్కడ, ఎందుకంటే నేను బూలియన్ విలువ కనుగొన్నారు. మరియు బూలియన్ నిజమైన, అప్పుడు ఆలిస్ అక్కడ ఉంటే పదాల ఈ డేటాను నిర్మాణం లేదు. ఇతర మాటలలో, ఈ నూతన విషయాలు విషయాలు కనుగొని ప్రవేశపెట్టే నడుస్తున్న సమయం trie యొక్క డేటా నిర్మాణం యొక్క O ఉంది - అది n కాదు. 150,000 మంది presense ఆలిస్ ఎలాంటి ప్రభావం చూపుతున్నందున, అనిపిస్తుంది. ఇది k ఇంగ్లీష్ లో ఒక పదం యొక్క గరిష్ట పొడవు ఉన్న k, కాల్ కాబట్టి తెలియజేయండి ఇది సాధారణంగా ఎక్కువ 20 ఏదో అక్షరాలు కంటే. కాబట్టి k ఒక స్థిరాంకం. హోలీ గ్రెయిల్ కాబట్టి మేము కనుగొనబడింది కనిపిస్తుంది ఇన్సర్ట్ ఒక trie, స్థిరమైన సమయం ఆ తొలగింపులు కోసం, వాటికి కోసం, ఉంది. ఎందుకంటే ఇప్పటికే నిర్మాణంలో విషయాలు సంఖ్య, ఇది కూడా భౌతికంగా లేవు. మళ్లీ, వారు కేవలం ఆఫ్ తనిఖీ యొక్క క్రమం తర్వాత, అవును లేదా సంఖ్య, దాని భవిష్యత్తు నడుస్తున్న సమయంలో ఎటువంటి ప్రభావం కలిగి ఉంది. కానీ ఒక క్యాచ్ ఉన్నట్లు సంపాదించి, లేకపోతే ఎక్కువ సమయాన్ని వృధా ఉండదు, ఈ ఇతర డేటా నిర్మాణాలు కేవలం చివరకు ఆశ్చర్యంగా ఆ రహస్య ఒక చెయ్యడానికి. సో వాట్ ధర మేము ఇక్కడ ఈ గొప్పతనాన్ని సాధించడానికి చెల్లిస్తున్న? స్పేస్. ఈ విషయం భారీ ఉంది. మరియు కారణం రచయిత ఇక్కడ ప్రస్తుత లేదు, గమనించి శ్రేణుల ఎలా ఈ అన్ని విషయాలను ఆ, చెట్టు యొక్క మిగిలిన trie మిగిలిన డ్రా లేదు అవి కథ సంబంధించిన చెయ్యని కారణంగా. కానీ ఈ నోడ్స్ అన్ని విస్తృత సూపర్ ఉంటాయి, మరియు చెట్టు ప్రతి నోడ్ తీసుకుంటుంది 26 లేదా వాస్తవానికి, ఈ విషయంలో నేను అపాస్టిఫియర్ స్థలాన్ని సహా ఎందుకంటే 27 అక్షరాలు ఉండాలి కాబట్టి మేము apostrophized పదాలు కలిగి ఉంటుంది. ఈ సందర్భంలో, ఈ విస్తృత శ్రేణుల ఉంటాయి. వారు picutured లేదు కాబట్టి అయినప్పటికీ, ఈ RAM యొక్క ఒక భారీ మొత్తం తీసుకుంటుంది. ఏ, ఆధునిక హార్డ్ వేర్ లో especilly, జరిమానా కావచ్చు కానీ ఆ బేరీజుగా ఉంది. మేము మరింత స్థలం ఖర్చు తక్కువగా సమయం. కాబట్టి ఇది అన్ని ఉండబోతుంది? Well, ఏమి లెట్స్ - ఇక్కడ చూద్దాం. ఇక్కడ ఈ గై ఒక జంప్ చేయండి యొక్క లెట్. ఇది బిలీవ్ లేదా, C ఇప్పుడు కొంత సమయం కోసం చెప్పవచ్చు వంటి చాలా తమాషాగా, మేము మరింత ఆధునిక విషయాలను మార్పు సమయం ఎక్కడ సెమిస్టర్ లో స్థానం చేరుకుంటున్నారు. అధిక స్థాయిలో థింగ్స్. మరియు వారాలు తదుపరి రెండు కోసం అయితే మేము ఇంకా గమనికలు మరియు మెమొరీ నిర్వహణా ప్రపంచంలో మేమే ముంచుతాం చేస్తాము మేము అప్పుడు పెంచుకోవడంలో ఇది ఆ సౌకర్యాన్ని పొందడానికి, చివరి గేమ్ ఈ భాష, చిత్రంగా, కాని పరిచయం చివరికి ఉంది. మేము HTML గురించి మాట్లాడటం 10 నిమిషాల వంటి ఖర్చు చేస్తాము. HTML ఆల్ ఒక మార్కప్ లాంగ్వేజ్, మరియు ఒక మార్కప్ లాంగ్వేజ్ 'ఈ సాహసించు' పేర్కొన్నట్లు ఓపెన్ బ్రాకెట్లలో మరియు క్లోజ్డ్ పరిధుల ఈ సిరీస్ 'ఈ కేంద్రీకృత తయారు' ఈ ఇటాలిక్ చెయ్యి '.' ఇది అన్ని ఆ తెలివైన ఆసక్తికరమైన కాదు, అయితే ఇది ఉపయోగకరమైన సూపర్ ఉంది. మరియు అది ఖచ్చితంగా ఈ రోజుల్లో సర్వవ్యాపియైన ఉంది. కాని HTML యొక్క ప్రపంచం గురించి శక్తివంతమైన, మరియు వెబ్ ప్రోగ్రామింగ్ సాధారణంగా, డైనమిక్ విషయాలు భవనం; PHP లేదా పైథాన్ లేదా రూబీ లేదా జావా లేదా C # వంటి భాషలను కోడ్ వ్రాయటం. నిజంగా, ఏ నచ్చిన మీ భాష, డైనమిక్ HTML ఉత్పత్తి. డైనమిక్ CSS అనే ఉత్పత్తి. క్యాస్కేడింగ్ స్టైల్ షీట్లు, అలంకారం గురించి కూడా ఇది. కాబట్టి అయినప్పటికీ, నేడు, నేను, తెలిసిన Google.com వంటి కొన్ని వెబ్ సైట్ కు వెళ్ళి ఉంటే మరియు నేను, బహుశా మీరు ముందు చేసిన ఏ డెవలపర్, వీక్షణ మూల, వీక్షించడానికి వెళ్ళి కానీ మార్చు వెళ్ళి, ఈ విషయాన్ని బహుశా చాలా గుప్తమైన కనిపిస్తోంది. కానీ ఈ Google.com అమలు మూలాధార స్మృతి. ముందు వైపు. మరియు వాస్తవానికి ఈ మెత్తటి సౌందర్యం stuff ఉంది. ఈ ఇక్కడ CSS ఉంది. నేను క్రింద స్క్రోలింగ్ ఉంటే మేము కొన్ని రంగులతో stuff పొందుతారు. ఈ HTML ఉంది. , Google యొక్క కోడ్ మెస్ కనిపిస్తోంది, కానీ నిజానికి వేరొక విండో తెరుచుకుంటుంది ఉంటే మేము ఈ కొన్ని నిర్మాణం చూడగలరు. నేను ఈ అప్ తెరిస్తే, ఇక్కడ గమనించవచ్చు, ఇది కొంచెం చదవగలిగే ఉంది. మేము ముందు కాలం ఈ ట్యాగ్ చూడండి చూడాలని, [పదం] ట్యాగ్ ఉంటుంది, HTML, తల, శరీరం DIV, స్క్రిప్ట్, టెక్స్ట్ ప్రాంతం, span, కేంద్రీకృత, DIV. మరియు ఈ కూడా, మొదటి చూపులో గుప్తమైన కనిపించే యొక్క క్రమం ఉంది కానీ ఈ మెస్ అన్ని నిర్దిష్ట నమూనాలు, మరియు మరలా నమూనాలను అనుసరించే ఒకసారి మేము ప్రాథమికాలు తిరిగి పొందండి అందువలన, మీరు ఈ కోడ్ రాయడానికి చేయగలరు ఆపై JavaScript అనే మరో భాష, ఉపయోగించి ఈ వంటి కోడ్ సర్దుబాటు. మరియు JavaScript బ్రౌజర్ యొక్క లోపల అమలు చేసే భాష మేము Google Maps ఉపయోగించే కోర్సు షాపింగ్ సాధనం కోసం హార్వర్డ్ కోర్సులు, న ఉపయోగించే నేడు మీరు చైతన్యానికి యొక్క మొత్తం బంచ్ ఇవ్వాలని, Facebook, తక్షణ స్థితిని చూపించడానికి మీరు ఇస్తుంది Twitter తక్షణమే మీరు ట్వీట్లు చూపించడానికి ఇది ఉపయోగిస్తుంది. ఈ అన్ని మనం సైన్ ముంచుకోవాలి ప్రారంభమవుతుంది కానీ అక్కడ పొందడానికి, మేము ఇంటర్నెట్ గురించి ఏదో అర్థం చేసుకోవాలి. ఇక్కడ ఈ క్లిప్ కేవలం పొడవైన ఒక నిమిషం, మరియు ఇప్పుడు ఈ నిజానికి, భావించవచ్చును లెట్స్, ఇంటర్నెట్ వచ్చిన గురించి ఏమి కోసం ఒక టీజర్ పనిచేస్తుంది ఎలా. నేను "నెట్ యుద్ధవీరులు." ఇవ్వడం [♫ స్లో కోరస్ సంగీతం ♫] [MALE కథకుడు] అతను ఒక సందేశం వచ్చింది. ఒక ప్రోటోకాల్ తన సొంత. [♫ వేగంగా ఎలక్ట్రానిక్ సంగీతం ♫] అతను రౌటర్లు గురించి అంత పట్టింపు లేనట్టుగా, చల్లని ఫైర్ ప్రపంచ వచ్చింది మరియు మరణం కంటే దారుణంగా ప్రమాదాల. అతను వేగవంతమైనది. అతను బలమైన. అతను TCP / IP, అతనిని మీ చిరునామా కలిగియున్నారు. నెట్ యుద్ధవీరులు. [మలన్] తదుపరి వారంలో, అప్పుడు. ఇంటర్నెట్. వెబ్ ప్రోగ్రామింగ్. ఈ CS50 ఉంది. [CS50.TV]