[సంగీతాన్ని] DAVID మలన్: ఈ CS50 ఉంది. మరియు ఈ ప్రారంభ మరియు రెండు ఉంది literally-- దాదాపు ముగింపు ముగింపు వారం ఆరు. 

నేను ఒక భాగస్వామ్యం కావలసిన ఆలోచన ఒక సరదా వాస్తవం కొద్దిగా. నేను ఒక నుండి ఈ ఆగింది చేసిన గత సెమిస్టర్ డేటా సెట్. మీరు మేము ప్రతి మీరు అడిగే గుర్తుకు p సెట్ రూపం మీరు ఆన్లైన్ వీక్షించారు చేసిన లేదా మీరు స్వయంగా హాజరై ఉంటే. మరియు ఇక్కడ డేటా. కాబట్టి నేడు చాలా ఊహాజనిత. కానీ మేము ఒక బిట్ గడపాలని సమయం మీరు తో అయితే. ఎవరైనా ఎందుకు ఈ ప్రతిపాదనను అనుకుంటున్నారా గ్రాఫ్, డౌన్, డౌన్, కాబట్టి jaggy ఉంది కనుక ఇది? ఏమిటి శిఖరాలు ప్రతి చేయండి మరియు ద్రోణులు ప్రాతినిధ్యం? 

ప్రేక్షకులు: [వినబడని] DAVID మలన్: నిజానికి. మరియు మరింత amusingly, దేవుడు ఇండ్లలో, మేము ఒక శుక్రవారం ఒక ఉపన్యాసం కలిగి సెమిస్టర్ ప్రారంభంలో, మేము జరిగే చూడండి ఏమిటి. కాబట్టి నేడు, మేము ఒక బిట్ లో పాల్గొనే డేటా నిర్మాణాలు గురించి మరింత. మరియు మీరు ఒక ఘన మరింత ఇవ్వాలని ఐదు వద్ద సమస్యలకు మానసిక మోడల్, ఇది ముగిసింది. అక్షరదోషాలు, ఇందులో, మేము చేస్తాము మీరు ఒక టెక్స్ట్ ఫైల్ చేతితో కొన్ని 100,000 ప్లస్ ఆంగ్ల పదాలు మరియు మీరు చూడాలని తెలివిగా వాటిని లోడ్ ఎలా గుర్తించడానికి మెమరీ లోకి, RAM లోకి, కొన్ని డేటా ఉపయోగించి మీ ఎంపిక యొక్క నిర్మాణం. 

ఇప్పుడు అలాంటి డేటా నడిపేవి ఉండకూడదు బహుశా, కానీ, చాలా సరళమైనది లింక్ జాబితా, ఇది మేము చివరిసారి పరిచయం. మరియు ఒక లింక్ జాబితా కనీసం కలిగి వ్యూహం కంటే ఒక ప్రయోజనం. ఒక ప్రయోజనం ఏమిటి నిస్సందేహంగా ఒక లింక్ జాబితా? 

ప్రేక్షకులు: చేర్పు. 

DAVID మలన్: చేర్పు. మీరు ఆ ద్వారా ఏమిటి? 

ప్రేక్షకులు: ఎక్కడైనా పాటు జాబితా [వినబడని]. 

DAVID మలన్: గుడ్. కాబట్టి మీరు ఒక మూలకం ఎక్కడ చేర్చగలను మీరు జాబితా మధ్యలో కావలసిన ఏదైనా షఫుల్ చేయకుండా, ఇది మేము మా విభజన లో, నిర్ధారించారు చర్చలు, కాదు తప్పనిసరిగా ఒక మంచి విషయం, ఇది సమయం పడుతుంది ఎందుకంటే నిజానికి తరలించడానికి ఆ మానవుల అన్ని ఎడమ లేదా కుడి. కాబట్టి ఒక లింక్ జాబితా తో, మీరు చెయ్యవచ్చు కేవలం malloc తో కేటాయించాలని, ఒక కొత్త నోడ్, మరియు అప్పుడు ఒక జంట అప్డేట్ గమనికలు రెండు, మూడు కార్యకలాపాలు max-- మరియు మేము ఎవరైనా స్లాట్ చూడగలరని జాబితా ఎక్కడైనా లో. 

ఏమి ప్రయోజనకరంగా ఉంది ఒక లింక్ జాబితా గురించి? అవును? 

ప్రేక్షకులు: [వినబడని] DAVID మలన్: పర్ఫెక్ట్. పర్ఫెక్ట్. ఇది నిజంగా డైనమిక్ ఉంది. మరియు మీరు పాల్పడే చేస్తున్నట్లు, ముందుగానే, కొన్ని స్థిర పరిమాణం మెమరీ భాగం, వంటి మీరు ఉంటుంది వ్యూహం తో, పైకి ఇది యొక్క మీరు మాత్రమే నోడ్స్ కేటాయించాలని ఉంది డిమాండ్ తద్వారా మాత్రమే ఎక్కువ స్థలం ఉపయోగించి మీరు నిజంగా మీకు. వ్యూహం తో దీనికి విరుద్ధంగా, మీరు వాటిని అనుకోకుండా చాలా చిన్న కేటాయించాలని. అది కేవలం జరగబోతోంది మెడ లో ఒక నొప్పి ఉండాలి ఒక కొత్త పెద్ద శ్రేణి reallocate కు, కాపీ అన్నిచోట్ల, పాత శ్రేణి ఉచిత ఆపై మీ వ్యాపార గురించి తరలించడానికి. లేదా మరింత, మీరు మార్గం కేటాయించాలని ఉండవచ్చు మీరు నిజంగా అవసరం కంటే ఎక్కువ మెమరీ, అందువలన మీరు చాలా చూడాలని మాట్లాడటానికి, శ్రేణి కొద్ది జనసంఖ్యను. 

కాబట్టి ఒక లింక్ జాబితా ఈ మీరు ఇస్తుంది చైతన్యానికి మరియు వశ్యత ప్రయోజనాలు ప్రక్షిప్తాలు మరియు తొలగింపులు తో. కానీ ఖచ్చితంగా చెల్లించే ధర ఉండాలి. థీమ్లను నిజానికి, ఒక క్విజ్ సున్నా అన్వేషించవచ్చు ఉంది విక్రయాల్లో ఒక జంట మేము ఇప్పటివరకు చూసిన. కాబట్టి ఒక చెల్లింపు ధర లేదా ఏమిటి ఒక లింక్ జాబితా ఇబ్బంది? అవును. 

ప్రేక్షకులు: యాదృచ్ఛిక యాక్సెస్. 

DAVID మలన్: యాదృచ్ఛిక యాక్సెస్. కానీ ఎవరు పట్టించుకుంటారు? రాండమ్ యాక్సెస్ బలవంతపు ధ్వని లేదు. 

ప్రేక్షకులు: [వినబడని] DAVID మలన్: ఖచ్చితంగా. మీరు అనుకుంటే ఒక నిర్దిష్ట అల్గోరిథం మరియు నాకు నిజంగా ప్రతిపాదన ముఖ్యంగా బైనరీ శోధన, ఇది మేము చాలా ఒక బిట్ ఉపయోగించి ఒకటి మీరు రాండమ్ యాక్సెస్ లేకపోతే, మీరు ఆ సులభమైన లెక్కలు కాదు మధ్య మూలకం వంటి కనుగొనే మరియు కుడి అది జంపింగ్. మీరు బదులుగా మొదటి వద్ద ప్రారంభించడానికి కలిగి మూలకం మరియు సరళంగా ఎడమ నుండి శోధన కుడి మీరు కావలసిన ఉంటే మధ్య లేదా ఏ ఇతర మూలకం. 

ప్రేక్షకులు: ఇది బహుశా మరింత మెమరీ పడుతుంది. 

DAVID మలన్: మరింత మెమరీ పడుతుంది. ఎక్కడ ఆ అదనపు ఉంది మెమరీలో నుండి వస్తున్న ఖర్చు? 

ప్రేక్షకులు: [వినబడని] DAVID మలన్: ఖచ్చితంగా. ఇక్కడ ఈ సందర్భంలో, మేము కలిగి పూర్ణాంకాల ఒక లింక్ జాబితా, మరియు ఇంకా మేము రెట్టింపు చేస్తున్నారు మెమోరీని మేము కూడా ఈ గమనికలు నిల్వ ద్వారా అవసరం. ఒక పెద్ద ఒప్పందం యొక్క ఇప్పుడు తక్కువ మీ structs పెద్ద పొందండి మరియు మీరు ఒక సంఖ్య నిల్వ చేసినప్పటికీ బహుశా ఒక విద్యార్థి లేదా కొన్ని ఇతర వస్తువు. కానీ పాయింట్ ఖచ్చితంగా ఉంది. కాబట్టి కార్యకలాపాలు అనేక లింక్ జాబితాలు న పిలిచారు n-- సరళ యొక్క పెద్ద O ఉన్నాయి. చొప్పించడం లేదా శోధన వంటి విషయాలు లేదా కేసు ఒక మూలకం లో తొలగింపు యొక్క చివరిలో జరిగిన విభజించిన లేదా అయినా జాబితా. 

కొన్నిసార్లు మీరు లక్కీ పొందండి మరియు లో ఉండవచ్చు ఈ చర్యలతో కాబట్టి తక్కువ హద్దులు మీరు అయితే స్థిరంగా సమయం కావచ్చు ఎల్లప్పుడూ మొదటి మూలకం చూడటం, ఉదాహరణకు. కానీ చివరికి, మేము వాగ్దానం హోలీ గ్రెయిల్ సాధించడానికి డేటా నిర్మాణాలు, లేదా కొన్ని అంచనా వాటి, స్థిరమైన సమయం ద్వారా. మేము అంశాలను చూడండి అంశాలను జోడించవచ్చు లేదా ఒక జాబితా నుండి అంశాలు తొలగించడానికి? మేము చాలా వెంటనే చూడండి ఉంటుంది. మరియు అది ఒక అవుతుంది మేము ఉన్నాము విధానాల నేడు ఉపయోగించడానికి ఆరంభమవుతుంది, p వార్షిక ఉపయోగం, ఐదు సెట్ నిజానికి అందంగా సుపరిచితమే. ఉదాహరణకు, ఈ కొంత ఉంటే పరీక్ష పుస్తకాల, వీటిలో ప్రతి ఒక విద్యార్థి యొక్క మొదటి ఉంది అది మరియు చివరి పేరు పేరు, మరియు నేను వాటిని నుండి తీసుకున్న ఒక పరీక్ష చివరిలో, మరియు వారు అన్ని అందంగా ఉన్నారు ఒక వరుస క్రమంలో చాలా, మరియు మేము క్రమబద్ధీకరించేందుకు గురించి వెళ్లాలనుకుంటే ఈ పరీక్షలకు కాబట్టి ఒకసారి శ్రేణీకృత ఇది కేవలం చాలా సులభం మరియు వేగంగా వాటిని తిరిగి అప్పగించండి అక్షర విద్యార్థులకు. మీ ప్రవృత్తులు ఏమి ఈ వంటి పరీక్షలకు పోగు కోసం? 

బాగా, మీరు నా లాంటి అయితే, మీరు ఈ m అని చూడవచ్చు, నేను, విధమైన ఉంచారు వెళుతున్న ఈ నా పట్టిక లేదా నా నేల పేరు ఉంటే నేను విషయాలు వ్యాప్తి వెబ్ దీనిని లేదా నా శ్రేణి నిజంగా నేను అక్కడ Ms అన్ని ఉంచారు. ఓహ్. ఇక్కడ ఒక A. నేను వాటిని ఉంది ఇక్కడ ఉంచారు. ఓహ్. ఇక్కడ నేను వెళుతున్న మరొక A. వార్తలు ఇక్కడ ఉంచారు. ఇక్కడ ఒక Z. ఇక్కడ మరొక M. కాబట్టి ఉంది నేను ఈ వంటి ఆర్శములు తయారు చేయవచ్చు. ఆపై నేను తరువాత లో వెళ్ళాలి మరియు విధమైన చాలా nitpicky బిడ్డను విధమైన వ్యక్తిగత ఆర్శములు. కానీ పాయింట్ నేను అవకాశం ఉంది నేను చేతి కాబట్టి ఇన్పుట్ వద్ద మరియు నేను కొన్ని ద్వా చేస్తుంది ఆ ఇన్పుట్ ఆధారంగా నిర్ణయం. అది ఒక మొదలవుతుంది ఉంటే, అక్కడ ఉంచారు. ఇది Z తో మొదలవుతుంది, అది పైగా చాలు మధ్య లో, మరియు ప్రతిదీ. 

కాబట్టి ఈ ఒక టెక్నిక్ సాధారణంగా hashing-- H-ఒక-S- H-- అంటారు ఇది సాధారణంగా తీసుకొని అర్థం ఇన్పుట్ మరియు లెక్కించడానికి ఆ ఇన్పుట్ ఉపయోగించి క్రింది సాధారణంగా అనేక మరియు ఆ సంఖ్య ఒక నిల్వ సూచిక కంటైనర్, వ్యూహం వంటి. కాబట్టి ఇతర పదాలు లో, నేను ఒక కలిగి ఉండవచ్చు హాష్ ఫంక్షన్ను, నేను నా తల లో కూడా, నేను ఎవరైనా చూడండి ఉంటే ఆ ఒక మొదలవుతుంది ఎవరు పేరు, నేను ఆ మ్యాప్ వెళుతున్న నా తల లో సున్నాకి. నేను Z తో ఎవరైనా చూడండి ఉంటే, నేను రెడీ నా తల లో 25 ఆ మ్యాప్ అన్నారు మరియు అప్పుడు ఉంచి గత చాలా కుప్ప. 

ఇప్పుడు, మీరు నా మెదడు లేదు గురించి ఆలోచించటం కానీ ఒక సి కార్యక్రమం, ఏ సంఖ్యలో అనుకొనుట మీరు అదే ఫలితాన్ని సాధించడానికి ఆధారపడి? ఇతర మాటలలో, మీరు ఉంటే , ASCII పాత్ర కలిగి ఎలా మీరు గుర్తించేందుకు ఏమి బకెట్ లో ఉంచారు? మీరు బహుశా చేయకూడదని బకెట్ 65, ఉంచారు ఇది అక్కడ వంటి ఉంటుంది ఏ మంచి కారణం కోసం. ఎక్కడ మీరు ఒక చాలు అనుకుంటున్నారు దాని ASCII విలువ పరంగా? ఎక్కడ మీరు దాని ASCII కు చెయ్యాలనుకుంటున్నారు విలువ ఒక తెలివిగా బకెట్ పైకి రావటానికి లో ఉంచారు? 

ప్రేక్షకులు: మైనస్ A. 

DAVID మలన్: అవును. కాబట్టి మైనస్ లేదా మైనస్ ప్రత్యేకంగా 65 ఉంటే ఒక రాజధాని A. లేదా 98 ఉంటే అది ఒక చిన్న ఒక ఉంది. కాబట్టి ఆ చాలా, మాకు అనుమతించే కేవలం మరియు చాలా గణిత శాస్త్ర, ఆ వంటి ఒక బకెట్ లోకి ఏదో చాలు. కాబట్టి అది మేము నిజానికి అవుతుంది ఈ అలాగే కూడా క్విజ్ తో. 

కాబట్టి మీరు వేచిచూసింది గుర్తు ఉండవచ్చు మీ కవర్ టీచింగ్ తోటి యొక్క పేరు. మరియు TF యొక్క పేర్లు నిర్వహించారు అక్షర ఈ నిలువు, బాగా, అది నమ్మకం లేదా, మాకు అన్ని 80 ప్లస్ , గ్రేడ్ ఇతర రాత్రి కలిసి వచ్చింది మా గ్రేడింగ్ ప్రక్రియ చివరి దశలో ఒక పెద్ద లోకి క్విజ్ హాష్ ఉంది [వినబడని] వద్ద ఫ్లోర్ స్పేస్ మరియు ప్రతి ఒక్కరూ క్విజ్ బద్ధం వారి TF యొక్క సరిగ్గా క్రమంలో కవర్ మీద పేర్లు అది మాకు చాలా సులభం ఆ ఉపయోగించి సరళ ద్వారా అన్వేషణ శోధన తెలివి రకమైన ఒక TF కనుగొనేందుకు తన లేదా ఆమె విద్యార్థులు 'క్విజ్. 

హాషింగ్ యొక్క ఈ ఆలోచన మీరు చూస్తారు ఆ చాలా శక్తివంతమైన నిజానికి చాలా ఉంది సాధారణ మరియు చాలా సహజమైన, చాలా బహుశా విభజించి వంటి మరియు జయించటానికి వారం సున్నా లో. Hackathon నేను వేగంగా ముందుకు సంవత్సరాల క్రితం. ఈ Zamyla మరియు ఒక జంట ఉంది ఇతర సిబ్బంది గ్రీటింగ్ విద్యార్థులు వారు వచ్చింది. మరియు మేము మడత యొక్క మొత్తం బంచ్ కలిగి పేరు టాగ్లు తో పట్టికలు. మరియు మేము పేరు టాగ్లు నిర్వహించాయి తో అక్కడ వంటి వంటి మరియు అక్కడ ZS. కాబట్టి TFS ఒకటిగా చాలా తెలివిగా సూచనలను ఈ రాశాడు రోజు కోసం. మరియు సెమిస్టర్ ఈ వారం 12 లో అన్ని ఖచ్చితమైన భావాన్ని మరియు ప్రతి ఒక్కరూ ఏమి తెలుసు. కానీ ఎప్పుడైనా మీరు చేసిన అదే విధంగా క్యూలో, మీరు అమలు చేస్తున్నారు ఒక హాష్ అదే భావన. కాబట్టి యొక్క కొద్దిగా అధికారికం వీలు. ఇక్కడ వ్యూహం. ఇది కొద్దిగా ఉంటుంది చిత్రీకరిస్తారు విస్తృత దృశ్యమానంగా, చిత్రీకరించేందుకు, మేము తీగలను చాలు ఈ వంటి ఏదో. మరియు ఈ శ్రేణి స్పష్టంగా పరిమాణం 26 మొత్తం యొక్క. మరియు విషయం అంటారు పట్టిక ఏకపక్ష. కానీ ఈ కేవలం ఒక కళాకారుడు యొక్క భాషా ఒక హాష్ పట్టిక కావచ్చు ఏమి. 

కాబట్టి ఒక హాష్ పట్టిక ఇప్పుడు అన్నారు అధిక స్థాయి డేటా నిర్మాణం. రోజు ముగింపులో మేము మీరు ఆ చూడబోతున్నారు ఒక హాష్ పట్టిక, అమలు ఇది చాలా పరిశీలించడం లైన్ వంటిది చాలా ఈ వంటి ఒక Hackathon వద్ద పట్టిక పరీక్ష పుస్తకాలు సార్టింగ్ కోసం ఉపయోగిస్తారు. కానీ ఒక హాష్ పట్టిక ఉంది ఈ అధిక స్థాయి విధమైన వ్యూహం వాడేవారు భావన హుడ్ అది అమలు కింద లేదా అది ఒక పొడవు జాబితా, లేదా కాలేదు బహుశా కొన్ని ఇతర డేటా నిర్మాణాలు. ఇప్పుడు ఆ theme-- తీసుకొని ప్రాథమిక పదార్థాలు కొన్ని వ్యూహం మరియు ఈ భవనం వంటి పొడవు జాబితా ఇప్పుడు బ్లాక్ మరియు మేము నిర్మించవచ్చు ఏమి చూసిన ఆ పైన, పదార్థాలు వంటి ఒక వంటకం, మరింత మేకింగ్ ఆసక్తికరమైన మరియు ఉపయోగకరమైన ఫలితాలలో. 

హాష్ పట్టిక తో కాబట్టి మేము అది అమలు మెమరీ లో చిత్రాల ఈ వంటి, కానీ ఎలా అది నిజంగా కోడ్ ఉండవచ్చు? Well, బహుశా కేవలం ఈ ఉంది. అన్ని CAPS లో సామర్థ్యం, ​​కేవలం ఉంటే ఉదాహరణకు 26 కోసం కొన్ని constant--, alphabet-- యొక్క 26 అక్షరాలు కోసం నా వేరియబుల్ పట్టిక కాల్ ఉండవచ్చు, మరియు నేను వెళుతున్న చెప్పడము ఉండవచ్చు అక్కడ, లేదా స్ట్రింగ్ లో చార్ నక్షత్రాలు ఉంచండి. కాబట్టి అది సులభం ఉంటే ఈ మీరు ఒక హాష్ పట్టిక అమలు కావలసిన. మరియు ఇంకా, ఈ నిజంగా కేవలం ఒక శ్రేణి. కానీ మళ్ళీ, ఒక హాష్ పట్టిక ఏమి మనం ఇప్పుడు ఉంది కేవలం ఒక ఆబ్స్ట్రాక్ట్ సమాచార రకం కాల్ పైన ఒక సంభావిత పొరలు విధమైన ప్రాపంచిక ఏదో ఇప్పుడు వ్యూహం ఇష్టం. 

ఇప్పుడు, ఎలా మేము గో సమస్యలు పరిష్కరించడంలో గురించి? బాగా, ముందు నేను లగ్జరీ యొక్క ఇక్కడ తగినంత పట్టిక స్పేస్ కలిగి నేను ఉంచారు కాలేదు క్విజ్ ఎక్కడైనా నేను కోరుకున్నాడు. కాబట్టి ఇక్కడ వెళ్ళవచ్చు. ZS ఇక్కడ వెళ్ళవచ్చు. Ms ఇక్కడ వెళ్ళవచ్చు. ఆపై నేను కొన్ని అదనపు స్థలం. కానీ ఈ ఒక మోసగాడు కుడి ఒక బిట్ ఉంది ఇప్పుడు ఈ పట్టిక ఎందుకంటే, నేను ఉంటే నిజంగా వ్యూహం భావించాడు, కేవలం ఉంది కొన్ని స్థిర పరిమాణం అని అన్నారు. 

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

ఇప్పుడు ముందు నేను రకమైన మోసం మరియు ఈ లేదా నేను కేవలం రకమైన పేర్చబడిన ప్రతి ఇతర పైన వాటిని. కానీ ఆ కోడ్ ప్రయాణించిన మాత్రం కాదు. నేను ఎక్కడ ఉంచారు దీని పేరు రెండవ విద్యార్థి నేను అన్ని ఈ ఉంటే ఒక ఉంది అందుబాటులో పట్టిక స్పేస్? మరియు నేను మూడు విభాగాలు మరియు అది ఉపయోగించి కేవలం కొన్ని ఇతరులు ఉంది కనిపిస్తుంది. మీరు ఏమి కాలేదు? ప్రేక్షకులు: [వినబడని] DAVID మలన్: అవును. బహుశా కేవలం సాధారణ ఉంచడానికి వీలు. కుడి? నేను చాలు ఎక్కడ ఇది సరిపోకపోతే. నేను ఉంచారు వెళుతున్న సాంకేతికంగా ఒక B పెట్టారు పేరు. ఇప్పుడు, కోర్సు యొక్క, నేను మొదలు వెబ్ ఒక మూలలో నాకు పేయింట్. నేను ఒక విద్యార్థి వస్తే దీని పేరు నిజానికి B ఉంది, ఇప్పుడు B కొద్దిగా తరలించబడింది అన్నారు ముందుకు, వంటి, YEP, జరిగే ఈ ఒక B ఉంటే, ఇప్పుడు అది ఇక్కడ వెళ్ళడానికి ఉంది. 

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

ఇప్పుడు, ధర ఇప్పుడు చెల్లించిన ఈ పరిష్కారం కోసం ఏమిటి? మేము ఒక స్థిర పరిమాణం వ్యూహం, మరియు నేను పేర్లు ఇన్సర్ట్ దీనిని, కనీసం ప్రారంభంలో, ఏమిటి చొప్పించడంలో నడుస్తున్న సమయం విద్యార్థులు 'పెట్టటం కోసం కుడి బకెట్లు లో క్విజ్లు? ఏమి బిగ్ O? 

ప్రేక్షకులు: n. DAVID మలన్: నేను n యొక్క పెద్ద O విన్న. నిజమైన. కానీ మేము వేరుగా బాధించటం చేస్తాము ఎందుకు కేవలం ఒక క్షణం లో. అది ఏమి కావచ్చు? 

ప్రేక్షకులు: [వినబడని] DAVID మలన్: మరియు నాకు దృష్టి చేస్తున్నాయి. కాబట్టి ఈ లేఖ ఎస్ ఉంది అనుకుందాం 

ప్రేక్షకులు: ఇది ఒకటి. DAVID మలన్: ఇది ఒకటి. కుడి? ఈ వ్యూహం, ఇది మేము రాండమ్ యాక్సెస్ అర్థం. మరియు మేము ఈ యొక్క అనుకుంటే సున్నా మరియు ఈ వంటి 25, మరియు మేము గ్రహించడం, ఓహ్, ఇక్కడ నా ఇన్పుట్ S వార్తలు, నేను ఖచ్చితంగా మార్చగలదు S, ఒక ASCII పాత్ర, ఒక సంబంధిత సంఖ్య సున్నా మరియు 25 మధ్య వెంటనే అది చెందినదే ఉంచండి. 

కానీ కోర్సు యొక్క, వెంటనే నేను పొందేవరకు పేరు ఎవరు రెండవ వ్యక్తి లేదా B లేదా C ఉంది చివరికి, నేను ఉపయోగించిన ఉంటే సరళ, నా పరిష్కారం ఛేదించి రన్నింగ్ సమయం చెత్త సందర్భంలో చొప్పించడం నిజానికి ప్రాప్తిస్తాయి అన్నారు? మరియు నేను ఇక్కడ అది విన్నావు సరిగ్గా ప్రారంభ. ప్రేక్షకులు: [వినబడని] DAVID మలన్: సో నిజానికి ఒకసారి n ఉంది మీరు తగినంత పెద్ద డేటా సెట్. కాబట్టి, ఒక వైపు, ఉంటే మీ శ్రేణి తగినంత పెద్దది మరియు మీ డేటా మీరు, తగినంత చిన్న ఉంది ఈ అందమైన స్థిరంగా సమయం. కానీ వెంటనే మీరు మొదలు మరింత అంశాలు పొందడానికి, మరియు కేవలం గణాంక మీరు పొందుటకు లేఖ మరింత ప్రజలు ఒక వారి పేరు లేదా లేఖ B, అది సమర్థవంతంగా అనుకొనుట ఏదో మరింత సరళ ప్రాప్తిస్తాయి. కాబట్టి చాలా ఖచ్చితమైన కాదు. కాబట్టి మేము బాగా చేయగలిగే? 

బాగా, ఏమి ఉంది మా పరిష్కారం మేము ముందు కంటే చైతన్యానికి కావాలి వ్యూహం లాగ అనుమతి? ప్రేక్షకులు: [వినబడని] DAVID మలన్: మేము ఏ పరిచయం చేశారు? అవును. కాబట్టి ఒక లింక్ జాబితా. సరే, ఒక లింక్ చూద్దాం జాబితా బదులుగా మాకు ఉండవచ్చు. బాగా, నాకు ఆ మేము ప్రతిపాదన క్రింది చిత్రాన్ని డ్రా. ఇప్పుడు ఈ వేరే ఉంది ఒక ఉదాహరణ నుండి చిత్రాన్ని వేరే టెక్స్ట్ నుండి, నిజానికి, ఆ నిజానికి పరిమాణం 31 యొక్క వ్యూహం ఉపయోగించి ఉంది. మరియు ఈ రచయిత కేవలం తీగలను హాష్ నిర్ణయించుకుంది వ్యక్తి యొక్క పేర్లు ఆధారంగా లేదు, కానీ వారి birthdates ఆధారంగా. సంబంధం లేకుండా నెల, వారు మ్యాచ్ మీరు ఒక నెల మొదటి పుడితే ఉంటే లేదా ఒక నెల 31, రచయిత ఆ విలువ ఆధారంగా హాష్ ఉంటుంది, ఒక బిట్ పేర్లను వ్యాపించి విధంగా కేవలం 26 మచ్చలు కల్పిస్తాయి కంటే ఎక్కువ. మరియు బహుశా అది కొంచెం ఏకరీతి వార్తలు అక్షర అక్షరాలు తో కాకుండా, ఎందుకంటే కోర్సు యొక్క బహుశా ఉంది పేర్లతో ప్రపంచంలో ఎక్కువ మంది ఖచ్చితంగా కంటే ఆ ప్రారంభం వర్ణమాల యొక్క కొన్ని ఇతర అక్షరాలు. కాబట్టి బహుశా ఈ ఒక చిన్న ఉంది ఒకే, ఊహిస్తూ ఒకే పంపిణీ ఒక నెల అంతటా పిల్లలు. 

కానీ, వాస్తవానికి, ఈ ఇప్పటికీ అసంపూర్ణ. కుడి? మేము ప్రమాదాలలో సమస్య. ఈ లో బహుళ ప్రజలు డేటా నిర్మాణం ఇప్పటికీ కనీసం అదే పుట్టినరోజు కలిగి మీరు నెల సంబంధం లేకుండా ఉన్నారు. కానీ రచయిత ఏమి చేశాడు? మేము వ్యూహం వంటి సరే, కనిపిస్తోంది నిలువుగా డ్రా ఎడమ వైపు, కానీ ఆ కేవలం ఒక కళాకారుడు యొక్క కూర్పు యొక్క. ఇది పట్టింపు లేదు ఏమి దిశలో మీరు వ్యూహం డ్రా, అది ఇప్పటికీ వ్యూహం. ఈ స్పష్టంగా యొక్క వ్యూహం ఏమిటి? 

ప్రేక్షకులు: సంబంధిత జాబితా. 

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

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

ఇప్పుడు ఈ ఒక చిన్న ఉంది మంచి సాంకేతికంగా ఎందుకంటే ఇప్పుడు నా గొలుసులు ఉంటుంది విషయంలో ఎంత? నేను ఈ ఎక్కువ n ప్రజలు ఇన్సర్ట్ ఆధునిక డేటా నిర్మాణం, n ప్రజలు, విషయంలో అది n చేస్తాడు. ఎందుకు? 

ప్రేక్షకులు: ఎందుకంటే ఉంటే అందరూ అదే పుట్టినరోజు, వారు ఒక లైన్ మాత్రం. DAVID మలన్: పర్ఫెక్ట్. ఇది, ఒక చిన్న కంట్రైవ్డ్ కావచ్చు కానీ నిజంగా చెత్త సందర్భంలో, ఒకే పుట్టినరోజు ఉంటే, మీరు ఇన్పుట్లను ఇవ్వడం మీరు ఒక చూడాలని గురుతర దీర్ఘ గొలుసు. కాబట్టి, మీరు ఒక కాల్ పట్టిక హాష్, కానీ నిజంగా అది కేవలం భారీ లింక్ జాబితా వృధా స్థలం మొత్తం చాలా. కానీ సాధారణంగా, మేము ఊహించుకుంటే, కనీసం పుట్టినరోజులు uniform-- ఉంటాయి మరియు అది బహుశా కాదు. నేను ఆ ముందుకెళ్లి నేను. కానీ మేము ఊహించుకుంటే, కోసం చర్చ కొరకు వారు, అప్పుడు సిద్ధాంతం లో, ఉంటే అని ఈ నిలువు ప్రాతినిథ్యం శ్రేణి యొక్క, బాగా అప్పుడు ఆశాజనక మీరు ఉన్నాయి, మీరు తెలిసిన గొలుసులు పొందగలిగిన, సుమారు అదే పొడవు పేరు యొక్క ప్రతి ఈ నెల ఒక రోజు సూచిస్తుంది. 

నెలలో 31 రోజులు ఉంటే ఇప్పుడు, నిజంగా నా నడుస్తున్న సమయం అర్థం 31 పైగా n యొక్క పెద్ద O, ఇది సరళ కంటే మెరుగైన భావిస్తాడు. కానీ ఒకటి ఏమిటి మా కట్టుబాట్లు వారాల క్రితం వ్యక్తం వచ్చిన ప్రతిసారి ఒక అల్గోరిథం యొక్క అమలు సమయం? జస్ట్ మాత్రమే ఉన్నత పదం. కుడి? 31 ఖచ్చితంగా ఉపయోగకరంగా ఉంటుంది. కానీ ఈ ఇప్పటికీ n యొక్క పెద్ద O ఉంది. కానీ మూలాల్లో ఒకటి సమస్య సెట్ ఐదు కు అవతరిస్తుంది పూర్తిగా అంగీకరిస్తున్నాను, asymptotically, సిద్ధాంతపరంగా ఈ డేటా నిర్మాణం కేవలం కంటే ఉత్తమం ఒక భారీ లింక్ జాబితా. నిజానికి, చెత్త సందర్భంలో, ఈ హాష్ పట్టిక ఆ ప్రాప్తిస్తాయి ఉండవచ్చు. 

కానీ వాస్తవిక ప్రపంచంలో, మాకు తో మానవులు సొంత Macs లేదా PC లు లేదా ఆ మరియు వాస్తవ ప్రపంచంలో అమలు నిజమైన ప్రపంచం డేటా సాఫ్ట్వేర్, ఇది అల్గోరిథం మీరు ఇష్టపడతారు వెళ్తున్నారు? ముగింపు దశలను లేదా పడుతుంది ఒక n 31 దశలను ద్వారా విభజించబడింది పడుతుంది ఒక డేటా కొన్ని ముక్క కనుగొనేందుకు లేదా కొన్ని సమాచారం చూసేందుకు? నేను, ఖచ్చితంగా 31 చేస్తుంది అర్థం నిజ ప్రపంచంలో. ఇది 31 రెట్లు వేగంగా. మరియు మేము మానవులు ఖచ్చితంగా ఉన్నాయి ఆ అభినందిస్తున్నాము వెళ్ళి. 

కాబట్టి వైరుధ్యాన్ని తెలుసుకోవటం వాస్తవానికి మధ్య సిద్ధాంతపరంగా విషయాల గురించి మాట్లాడటం ఖచ్చితంగా మరియు asymptotically ఇది మేము చూసిన విలువ, కానీ వాస్తవిక ప్రపంచంలో, మీరు తయారు శ్రద్ధ సాధారణ ఇన్పుట్లను కోసం మానవ సంతోషంగా, మీరు బాగా అంగీకరించడానికి ఉండవచ్చు అవును, ఈ సరళ ఉంది, వాస్తవం, కానీ 31 సార్లు వేగంగా ఉంది కంటే సరళ కావచ్చు. మరియు మంచి ఇంకా, మేము కేవలం లేదు ఒక పుట్టినతేదీ వంటి అనియత ఏదో, మేము కొద్దిగా ఖర్చు ఎక్కువ సమయం మరియు తెలివి మరియు మేము ఏమి గల గురించి అనుకుంటున్నాను, ఇచ్చిన వ్యక్తి యొక్క పేరు మరియు ఉండవచ్చు వారి పుట్టిన ఆ కలపడానికి పదార్థాలు ఏదో గుర్తించడానికి ఆ నిజంగా ఎక్కువ ఏకరీతి మరియు తక్కువ jaggy, కాబట్టి ఈ చిత్రాన్ని కంటే మాట్లాడటం ప్రస్తుతం అది ఉండవచ్చని సూచిస్తుంది. ఎలా మేము కోడ్ లో ఈ అమలు కాలేదు? బాగా, నాకు ఆ మేము ప్రతిపాదన కేవలం మేము చేసిన కొన్ని సింటాక్స్ ఋణం ఇప్పటివరకు ఒక జంట సార్లు ఉపయోగిస్తారు. నేను నిర్వచించే వెళుతున్న ఒక నోడ్, ఇది మళ్ళీ కొన్ని కోసం ఒక సాధారణ పదం ఉంది కొన్ని డేటా నిర్మాణం కోసం కంటైనర్. నేను ప్రతిపాదించారు వెళుతున్న స్ట్రింగ్ లో అన్నారు. కానీ మేము ఆరంభిస్తాయి చూడాలని ఇప్పుడు చక్రాలు శిక్షణ ఆ. 

ఏ CS50 లైబ్రరీ నిజంగా, మీరు తప్ప మీ చివరి కోసం ఉపయోగించడానికి జరిమానా ఇది ప్రాజెక్ట్, కానీ ఇప్పుడు మేము తిరిగి తీసి వెళుతున్న పరదా మరియు అది కేవలం ఒక చార్ స్టార్ చెప్పాలి. పదం కాబట్టి అక్కడ అవతరిస్తుంది ప్రశ్న లో వ్యక్తి యొక్క పేరు. ఇప్పుడు నేను ఒక లింక్ కలిగి ఇక్కడ తదుపరి నోడ్ ఈ ప్రాతినిధ్యం తద్వారా నోడ్స్ యొక్క ప్రతి గొలుసు, సమర్థవంతంగా, ఒక లింక్ జాబితా. 

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

ఇక్కడ, అప్పుడు, ఎలా మేము వాటిని ఉంది ఒక హాష్ పట్టిక అమలు ప్రత్యేక కూర్పికం అమలు. ఇప్పుడు మేము మంచి చేయవచ్చు? అన్ని కుడి నేను చివరిసారి వాగ్దానం మేము నిరంతరం సమయం సాధించేది. నేను రకమైన మీరు ఇచ్చింది ఇక్కడ స్థిరంగా సమయం, కానీ అప్పుడు నిజంగా లేదు చెప్పారు స్థిరమైన సమయం ఇప్పటికీ ఎందుకంటే మొత్తం ఆధారపడి మూలకాల సంఖ్య మీరు ఇవ్వడం చేస్తున్నారు డేటా నిర్మాణం. కానీ మేము ఈ చేశాడు అనుకుందాం. నాకు ఇక్కడ పైగా స్క్రీన్ వెళదాం. , నాకు కూడా ఇక్కడ ఈ అంటున్నారు స్పష్టమైన లెట్ స్క్రీన్, మరియు నేను చేసింది అనుకుందాం. నేను పేరు ఇన్సర్ట్ కోరుకున్నాడు అనుకుందాం Daven లో నా డేటా నిర్మాణాన్ని. 

నేను ఒక స్ట్రింగ్ ఇన్సర్ట్ డేటా నిర్మాణాన్ని Daven. నేను ఒక ఉపయోగించకుంటే పట్టిక హాష్, కానీ నేను ఉపయోగించడానికి మరింత ఏదో చెట్టు లాంటి ఒక కుటుంబ చెట్టు వంటి మీరు కొన్ని రూట్ కలిగి టాప్ ఆపై నోడ్స్ మరియు ఆకులు అధోముఖంగా మరియు బాహ్య వెళ్ళండి. , ఆ నా ఉద్దేశం Daven యొక్క ఇన్సర్ట్ ప్రస్తుతం ఖాళీ జాబితా ఏమి లోకి. నేను ఈ క్రింది చేయ బోతున్నాను: నేను ఉన్నాను ఈ కుటుంబం లో ఒక నోడ్ సృష్టించడానికి జరగబోతోంది చెట్టు వంటి డేటా నిర్మాణం కనిపించే కొద్దిగా ఈ వంటి, ప్రతి వీటిలో దీర్ఘ చతురస్రాలు, యొక్క అని పిలవబడు ఉంది అది ఇప్పుడు 26 అంశాలకు. మరియు కణాలు ప్రతి ఈ శ్రేణి లో అన్నారు వర్ణమాలలోని లేఖ ప్రాతినిధ్యం. 

ముఖ్యంగా, నేను చికిత్స వెళుతున్న ఈ, ఒక, అప్పుడు B, అప్పుడు సి, డి ఉంది ఇక్కడ ఈ ఒక. కాబట్టి ఈ సమర్థవంతంగా అన్నారు లేఖ డి ప్రాతినిధ్యం కానీ Daven యొక్క అన్ని ఇన్సర్ట్ నేను ఒక బిట్ మరింత అవసరం పేరు. నేను మొదటి మాట్లాడటానికి, హాష్ వెళుతున్న. నేను మొదటి లేఖ చూడండి వెళుతున్న లో Daven ఖచ్చితంగా ఒక D ఇది, మరియు నేను కేటాయించే వెళుతున్న కనిపించే ఒక నోడ్ వంటి పెద్ద ఒక పెద్ద చతురస్రం దీన్ని మొత్తం వర్ణమాల సరిపోయేంత. 

ఇప్పుడు D జరుగుతుంది. ఇప్పుడు A. D-ఒక-వి--N లక్ష్యం. కాబట్టి ఇప్పుడు నేను వెళుతున్న ఈ ఉంది. వెంటనే నేను D నోటీసు ప్రారంభించారు ఏ పాయింటర్ ఉంది. ఇది, సమయంలో చెత్త విలువలు లేదా నేను శూన్యం ప్రారంభించడం ఉండవచ్చు. కానీ నాకు కొనసాగించడాన్ని వీలు ఒక చెట్టు నిర్మించే ఈ ఆలోచన. నాకు ఈ ఒకదాని కేటాయించాలని లెట్ అది 26 అంశాలను కలిగి నోడ్స్. 

మరియు మీరు ఏమి? ఈ మెమరీ లో ఒక నోడ్ ఉంటే ఆ నేను ఒక struct ఉపయోగించి, malloc తో రూపొందించినవారు మేము వెంటనే చూస్తారు వంటి, నేను దీన్ని వెళుతున్న నేను నుండి ఒక బాణం డ్రా వెళుతున్న డౌన్ D ప్రాతినిధ్యం ఆ విషయం ఈ కొత్త నోడ్. మరియు, మొదటి తదుపరి ఇప్పుడు Daven యొక్క పేరు లో లేఖ, V-- D-ఒక-V-- నేను ముందుకు వెళుతున్న మరియు ఈ వంటి మరొక నోడ్, అనగా, ఇక్కడ వి అంశాలు, ఇది మేము instance-- అయ్యో కోసం డ్రా చేస్తాము. మేము అక్కడ ఆకర్షించింది. ఇది ఇక్కడ వెళ్ళడానికి జరగబోతోంది. 

అప్పుడు మేము చూడాలని ఈ వి భావిస్తారు మరియు ఇక్కడ డౌన్ మేము ఇండెక్స్ చూడాలని డౌన్ V నుండి మేము E. పరిగణలోకి చేస్తాము ఏమి మరియు ఇక్కడ నుండి మేము చూడాలని ఇక్కడ ఈ నోడ్స్ ఒకటి వెళ్ళండి. ఇప్పుడు మేము సమాధానం ఒక ప్రశ్న. నేను సూచిస్తున్నాయి ఏదో అవసరం మేము స్ట్రింగ్ Daven చివరిలో. నేను కేవలం అది శూన్య వదిలి. 

కానీ మేము Daven యొక్క ఏమి ఉంటే కూడా పూర్తి పేరు, ఇది మేము, డావెన్పోర్ట్ చెప్పారు చేసిన, ఉంది? కాబట్టి Daven ఏమి ఉంటే నిజానికి ఒక substring, ఒక ఎక్కువగా స్ట్రింగ్ యొక్క ఒక ఉపసర్గ? మేము శాశ్వతంగా కాదు ఏమీ అన్నారు చెబుతారు ఎందుకంటే మేము, అక్కడ వెళ్ళడానికి డావెన్పోర్ట్ వంటి పదం ఇన్సర్ట్ ఎప్పుడూ ఈ డేటాను నిర్మాణాన్ని 

కాబట్టి మేము ఏమి బదులుగా ఉంది ఈ అంశాల ప్రతి చికిత్స బహుశా రెండు కలిగి వాటిలో లోపల అంశాలు. ఒక, నిజానికి, ఒక పాయింటర్ ఉంది నేను చేస్తున్న చేసిన. ఈ బాక్సులను ప్రతి కాబట్టి కేవలం ఒక సెల్. కానీ ఏం టాప్ one-- దిగువన ఒక ఎందుకంటే, శూన్య మాత్రం ఇంకా ఏ డావెన్పోర్ట్ ఉంది. ఏం టాప్ ఒక కొన్ని ప్రత్యేక విలువ? మరియు అది కొద్దిగా చేస్తాడు ఈ పరిమాణం డ్రా కష్టం. కానీ కేవలం ఒక చెక్ మార్క్ అనుకుందాం. తనిఖీ. D-ఒక-వి--N స్ట్రింగ్ ఈ డేటా నిర్మాణం లో. 

ఇంతలో, నేను మరింత స్థలం ఇక్కడ, నేను, పి-O-R-T చేయగల మరియు నేను నోడ్ లో చెక్ చాలు చాలా చివరలో లేఖ T ఉంది. కాబట్టి ఈ ఒక గురుతర ఉంది క్లిష్టమైన కనిపించే డేటా నిర్మాణం. మరియు నా చేతిరాత ఖచ్చితంగా సహాయం లేదు. కానీ నేను ఏదో చొప్పించాలని కోరుకుంటే వేరే, మేము ఏమి పరిగణలోకి. మేము డేవిడ్ చాలు అనుకుంటే, మేము, అదే తర్కం, D-ఒక-V భావిస్తున్న కానీ ఇప్పుడు నేను తదుపరి లో సూచించడానికి చేస్తుంది మూలకం కాదు E నుండి, కానీ నేను నుండి డి కాబట్టి ఉన్నట్లు జరగబోతోంది ఈ చెట్టు లో నోడ్స్. మేము మరింత కాల్ malloc చూడాలని. కానీ నేను ఒక చేయాలని లేదు ఈ చిత్రం యొక్క పూర్తి మెస్. కాబట్టి యొక్క బదులుగా ఒక చూద్దాం ముందుగా రూపొందించారు చేయబడింది డాట్ లేదు ఈ వంటి, డాట్, చుక్కలు, కానీ కేవలం సంక్షిప్త శ్రేణుల. కానీ నోడ్స్ యొక్క ప్రతి ఇక్కడ ఈ చెట్టు లో అదే విషయం సూచిస్తుంది వ్యూహం పరిమాణం 26 యొక్క రే. 

లేదా మేము కోరుకుంటే నిజంగా సరైన ఇప్పుడు, ఏమి ఒకరి పేరు ఉంటే అపాస్ట్రఫీని, లెట్స్ ప్రతి నోడ్ వాస్తవానికి భావించండి అది 27 సూచికలు, కేవలం 26 వంటి. కాబట్టి ఈ ఇప్పుడు ఒక డేటా అవతరిస్తుంది నిర్మాణం ఒక trie-- T-R-నేను-E అని. దయ్యం ఒక trie, ఒక చెట్టు కోసం చారిత్రాత్మకంగా ఒక తెలివైన పేరు ఆ ఆప్టిమైజ్ తిరిగి, ఇది కోర్సు యొక్క, అది trie కాబట్టి ఒక నేను-E తో ఉన్నట్లు. కానీ trie యొక్క చరిత్ర ఉంది. 

కాబట్టి ఒక trie ఈ చెట్టు లాంటి డేటా ఒక కుటుంబం చెట్టు వంటి నిర్మాణం చివరికి ఆ వంటి ప్రవర్తిస్తుంది. మరియు ఇక్కడ ఒక యొక్క మరొక ఉదాహరణ ఇతరుల పేర్లు మొత్తం బంచ్. కానీ ఇప్పుడు ప్రశ్న చేతిలో చేసుకున్నది మేము నిస్సందేహంగా మరింత పరిచయం ద్వారా పొందిన క్లిష్టమైన డేటా నిర్మాణం, మరియు ఒక, స్పష్టముగా, ఆ మెమరీ చాలా ఉపయోగిస్తుంది. 

, అయినప్పటికీ ఎందుకంటే సమయంలో, నేను మాత్రమే ఉన్నాను డి లు పాయింటర్ ఉపయోగించి మరియు ఒక V మరియు Es NS, మరియు నేను మెమరీ చాలా ఒక హెక్ వృధా చేస్తున్నాను. కానీ నేను ఒక వనరు ఖర్చు, నేను మరొక పొందేందుకు లేదు ఉంటాయి. , నేను మరింత స్థలం ఖర్చు చేస్తున్నాను కాబట్టి బహుశా ఆశ ఏమిటి? నేను ఏమి తక్కువ ఖర్చు వెబ్? ప్రేక్షకులు: తక్కువ సమయం. DAVID మలన్: సమయం. ఇప్పుడు ఎందుకు అని ఉంటుంది? బాగా, చొప్పించడం ఏమిటి సమయం, ఇప్పుడు పెద్ద O పరంగా, Daven వంటి పేరు లేదా డావెన్పోర్ట్ లేదా డేవిడ్? బాగా, Daven ఐదు దశల ఉంది. డావెన్పోర్ట్ తొమ్మిది దశలను ఉంటుంది, కాబట్టి అది కొన్ని దశలను ఉంటుంది. డేవిడ్ అలాగే ఐదు దశల ఉంటుంది. కాబట్టి ఆ కాంక్రీటు సంఖ్యలు, కానీ ఖచ్చితంగా ఉంది ఒక ఉన్నత ఒకరి పేరు యొక్క పొడవు. నిజానికి, సమస్య ఐదు వివరణ సెట్లు, మేము ప్రతిపాదించారు చూడాలని ఇది ఏదో ఆ ఆ 40-కొన్ని బేసి అక్షరాలు వార్తలు. 

వాస్తవికంగా, ఎవరూ ఉంది ఒక అనంతమైన దీర్ఘ పేరు, అంటే ఒక యొక్క పొడవు పేరు లేదా ఒక స్ట్రింగ్ యొక్క పొడవు మేము వాటిని రాష్ట్ర కొన్ని కలిగి నిర్మాణం నిస్సందేహంగా ఏమిటి? ఇది స్థిరంగా ఉంది. కుడి? ఇది వంటి ఒక పెద్ద స్థిరంగా కావచ్చు 40-ఏదో, కానీ స్థిరంగా ఉంది. మరియు అది ఎన్ని ఎటువంటి ఆధార ఉంది ఇతర పేర్లు ఈ డేటా నిర్మాణం ఉన్నాయి. ఇతర మాటలలో, నేను ఉంటే ఇప్పుడు ఇన్సర్ట్ కోరుకున్నాడు కాల్టన్ లేదా గాబ్రియేల్ లేదా రాబ్ లేదా Zamyla లేదా అలిసన్ లేదా బెలిండా లేదా ఏ ఇతర పేర్లు ఈ డేటాను సిబ్బంది నుండి నిర్మాణం, అమలు సమయం ఇతర పేర్లు ఇన్సర్ట్ ప్రభావిత మాత్రం ఎన్ని ఇతర అంశాలు ఉన్నాయి ఇప్పటికే డేటా నిర్మాణం లో? ఇది కాదు. కుడి? మేము సమర్థవంతంగా ఉపయోగించే ఎందుకంటే ఈ బహుళ పొర హాష్ పట్టిక. మరియు రన్నింగ్ సమయం ఈ కార్యకలాపాల ఏ సంఖ్య కాదు ఆధారపడి ఉంది డేటా నిర్మాణం ఉండే మూలకాలను లేదా చివరికి వెళ్తున్నారు డేటా నిర్మాణం ఉండాలి, కానీ ప్రత్యేకంగా యొక్క పొడవు మీద? 

ఉండటం స్ట్రింగ్ చేర్చబడుతుంది చేస్తుంది ఇది ఈ asymptotically స్థిరంగా ఒక time-- పెద్ద O. మరియు స్పష్టముగా, కేవలం లో వాస్తవ ప్రపంచంలో, ఈ Daven యొక్క పేరు పడుతుంది ఇన్సర్ట్ అర్థం ఐదు దశల, లేదా డావెన్పోర్ట్ తొమ్మిది వంటి దశలను, లేదా డేవిడ్ ఐదు దశల. ఆ అందమైన రంధ్రాన్ని సరి చేయు చిన్న నడుస్తున్న సార్లు. మరియు, నిజానికి, ఒక చాలా ఉంది మంచి విషయం, ముఖ్యంగా ఇది మొత్తం ఆధారపడి కాదు అక్కడ అంశాలు సంఖ్య. కాబట్టి మేము ఈ అమలు ఎలా కోడ్ లో నిర్మాణం యొక్క రకం? ఇది కొంచెం క్లిష్టమైన, కానీ ఇప్పటికీ అది కేవలం ఒక అప్లికేషన్ ప్రాథమిక బిల్డింగ్ బ్లాక్స్. నేను పునర్నిర్వచనం వెళుతున్న మాకు నోడ్ క్రింది: bool పదం అని మరియు ఈ ఏదైనా చెప్పబడతాయి. కానీ bool ప్రాతినిధ్యం నేను ఒక చెక్ మార్క్ వంటి ఆకర్షించింది. అవును. ఈ స్ట్రింగ్ ముగింపు ఈ డేటా నిర్మాణం లో. 

మరియు, కోర్సు యొక్క, నోడ్ స్టార్ పిల్లలకు అక్కడ సూచిస్తుంది. మరియు, నిజానికి, కేవలం ఇష్టం ఒక కుటుంబం చెట్టు, మీరు నోడ్స్ పరిగణిస్తుంది ఆఫ్ ఉన్నారు కొన్ని మాతృ దిగువన మూలకం పిల్లలు. కాబట్టి పిల్లలు అన్నారు 27 యొక్క వ్యూహం, 27 ఒకటిగా కేవలం అపాస్టిఫియర్ ఉండటం. మేము క్రమం చూడాలని ప్రత్యేక సందర్భంలో ఆ. కాబట్టి మీరు కొన్ని కలిగి సంగ్రహంగా రాయడానికి తో పేర్లు. బహుశా కూడా అడ్డగీత ఉండాలి అక్కడ వెళ్ళి, కానీ మీరు p సెట్ 5 మేము మాత్రమే సంరక్షణలో చూడండి అక్షరాలు మరియు సంగ్రహంగా రాయడానికి గురించి. 

ఆపై మీరు ప్రతిబింబించవు డేటా నిర్మాణం కూడా? ఎలా మీరు రూట్ ప్రతిబింబించవు ఈ trie యొక్క, మాట్లాడటానికి? బాగా, కేవలం మీరు, ఒక అనుబంధ జాబితా తో ఇష్టం మొదటి మూలకం ఒక పాయింటర్ అవసరం. ఒక trie మీరు కేవలం ఒక అవసరం ఈ trie యొక్క మూల గణితానికి. మరియు అక్కడ నుండి మీరు హాష్ చేయవచ్చు మీ మార్గం డౌన్ లోతైన నిర్మాణం లో ప్రతి ఇతర నోడ్. కాబట్టి కేవలం ఈ చెయ్యవచ్చు మేము ఆ struct ప్రాతినిధ్యం. 

ఇప్పుడు, ఓహ్ ప్రశ్న Meanwhile--. 

ప్రేక్షకులు: bool పదం ఏమిటి? 

DAVID మలన్: bool పదం కేవలం ఈ సి అవతారం నేను వివరించారు ఇక్కడ, ఈ బాక్స్ లో నేను ప్రతి విభజన ప్రారంభించారు రెండు ముక్కలుగా శ్రేణి యొక్క మూలకాలు. ఒక తదుపరి నోడ్ ఒక పాయింటర్ ఉంది. ఇతర ఉండాలి ఒక చెక్ బాక్స్ వంటి ఏదో ఒక ఉంది, అవును చెప్పటానికి ఇక్కడ ముగిసే Daven పదం, , మేము వద్దు ఎందుకంటే క్షణం, డేవ్ వద్ద. 

డేవ్ ఒక అవతరిస్తుంది అయినప్పటికీ చట్టబద్ధమైన పదం, అతను trie లో కాదు ఇంకా. మరియు D ఒక పదం కాదు. మరియు D-ఒక ఒక పదం లేదా ఒక పేరు కాదు. చెక్ మార్క్ కాబట్టి మాత్రమే మీరు ఒకసారి సూచిస్తుంది ఈ నోడ్ హిట్ అక్షరాలు గత మార్గం మీరు చొప్పించిన నిజానికి ఒక స్ట్రింగ్. కాబట్టి అన్ని bool వార్తలు మాకు అక్కడ చేస్తున్న. 

ప్రయత్నాలు ఏ ఇతర ప్రశ్నలు? అవును. 

ప్రేక్షకులు: బిడ్డలు ఏమిటి? మీరు ఒక డేవ్ మరియు ఒక Daven ఉంటే? DAVID మలన్: పర్ఫెక్ట్. మీరు ఒక డేవ్ మరియు ఒక Daven ఉంటే? మేము ఇన్సర్ట్ చేస్తే, మారుపేరు చెప్పటానికి David-- Dave-- D-ఒక-వి-కోసం? ఈ నిజానికి సూపర్ సులభం. కాబట్టి మేము మాత్రమే నాలుగు తీసుకోవాలని చూడాలని. D-ఒక-వి-. మరియు నేను ఏ ఉన్నాయి నేను ఆ నాలుగో నోడ్ హిట్ చేయవలసిన? జస్ట్ తనిఖీ అన్నారు. మేము ఇప్పటికే సిద్ధం. పూర్తి. నాలుగు దశలను. Asymptotically స్థిరంగా సమయం. ఇప్పుడు మేము ఆ రెండు డేవ్ సూచించిన చేసిన మరియు Daven నిర్మాణం లో తీగలను ఉన్నాయి. కాబట్టి ఒక సమస్య. మరియు ఎలా ఉనికిని గమనించవచ్చు Daven యొక్క చేరని ఏ సమయం లేదా తక్కువ పడుతుంది సమయం డేవ్ పక్కకు. 

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

మరియు డేటా నిర్మాణం యొక్క ఈ రకం లో మీరు రెండు operations-- కలిగి మీరు ఒక అని పుష్ కోసం కలిగి స్టాక్ ఏదో జోడించడం, మరొక ట్రే ఉంచడం వంటి స్టాక్ పైన వెనుకకు. మీరు అంటే ఆపై, పాప్ చాలా ఎత్తైన ట్రే టేకాఫ్. కానీ ఒక స్టాక్ ఉంది గురించి కీ ఏమిటి ఈ ఆసక్తికరమైన లక్షణం కలిగియున్నారు. భోజనశాల సిబ్బంది ఉంటాయి తదుపరి భోజనం కోసం ట్రేలు అమర్చడానికి, ఏమి చేస్తాడు ఎలా విద్యార్థులు గురించి నిజమైన ఈ డేటా నిర్మాణం సంకర్షణ? ప్రేక్షకులు: వారు ఒక ఆఫ్ పాప్ చూడాలని. DAVID మలన్: వారు చూడాలని ఒక ఆఫ్, ఆశాజనక పాప్ టాప్. లేకపోతే అది కేవలం అనవసరమైనది రకం దిగువ అన్ని మార్గం వెళ్ళి. కుడి? డేటా నిర్మాణం నిజంగా అనుమతించదు మీరు కనీసం దిగువన ట్రే పట్టుకోడానికి సులభంగా. కాబట్టి ఈ ఆసక్తికరమైన ఉంది ఒక స్టాక్ కు ఆస్తి చివరి అంశం అని మొదటి ఒకటి మాత్రం. మరియు కంప్యూటర్ శాస్త్రవేత్తలు కాల్ ఈ మొదటి, చివరి అవుట్ LIFO--. మరియు అది నిజానికి లేదు ఆసక్తికరమైన అమలులో. ఇది తప్పనిసరిగా కొన్ని వంటి స్పష్టమైన కాదు ఇతరులు, కానీ, నిజానికి, ఉపయోగపడుతుంది మరియు అది, నిజానికి, అమలు చేయవచ్చు వివిధ మార్గాలు లో. 

కాబట్టి ఒక, మరియు నిజానికి, వీలు నాకు ఆ ప్రవేశిస్తాడు లేదు. బదులుగా దీన్ని లెట్. యొక్క దాదాపు ఉండే చూద్దాం అదే ఆలోచన, కానీ ఇది కొద్దిగా ఫైరర్. కుడి? మీరు ఈ అభిమాని బాయ్స్ ఒకరు లేదా నిజంగా ఆపిల్ ఉత్పత్తులు ఇష్టపడ్డారు అమ్మాయిలు మరియు మీరు 3:00 వద్ద మేల్కొన్నాను కొన్ని స్టోర్ వద్ద వరుసలో చాలా తాజా ఐఫోన్ పొందడానికి, మీరు ఈ వంటి అప్ క్యూలో ఉండవచ్చు. 

ఇప్పుడు ఒక క్యూ చాలా ఉద్దేశపూర్వకంగా పేరు. అక్కడ ఎందుకంటే ఒక లైన్ ఇది కొన్ని సౌందర్యము. కుడి? మీరు చేసిన అది రకమైన పీలుస్తుంది ఉంటుంది ఆపిల్ స్టోర్ వద్ద మొదటి అక్కడ వచ్చింది కానీ మీరు సమర్థవంతంగా అట్టడుగు ఉంటాయి ట్రే అప్పుడు ఆపిల్ ఉద్యోగులు ఎందుకంటే గత వ్యక్తి పాప్ ఎవరు నిజానికి లైన్ లో వచ్చింది. స్టాక్స్ మరియు క్యూలు, అయినప్పటికీ కాబట్టి క్రియాశీలంగా వారు అదే రకమైన ఉన్నారు అది కేవలం ఈ సేకరణ వనరుల ఆ అక్కడ shrink-- పెరగడం మరియు దానికి ఈ సౌందర్యము కారక, నిజ ప్రపంచంలో కనీసం, పేరు కార్యకలాపాలు మీరు వ్యాయామం ప్రాథమికంగా భిన్నమైనవని. ఒక క్యూ ఒక stack-- rather-- చెబుతారు రెండు కార్యకలాపాలు n క్యూ మరియు d క్యూ. లేదా మీరు వాటిని కాల్ చేయవచ్చు విషయాలు ఎన్ని. కానీ మీరు కేవలం పట్టుకుని మీరు ఒక జోడించడం భావన మరియు ఒక చివరికి తీసివేయడం ఉంది. 

ఇప్పుడు హుడ్ కింద, స్టాక్ మరియు ఒక క్యూ ఎలా అమలు? మేము యొక్క కోడ్ లోకి కాదు ఇది ఎందుకంటే అధిక స్థాయి ఆలోచన విధమైన స్పష్టంగా ఉంటుంది. నేను అర్థం, మానవులు ఏమి చేస్తారు? నేను ఆపిల్ వద్ద మొదటి వ్యక్తి ఉన్నాను నిల్వ మరియు ఈ ముందు తలుపు ఉంది, మీరు నేను ఇక్కడ నిలబడి వెళుతున్న తెలుసు. మరియు తర్వాత వ్యక్తి యొక్క ఇక్కడ స్టాండ్ అన్నారు. మరియు తర్వాత వ్యక్తి యొక్క ఇక్కడ స్టాండ్ అన్నారు. కాబట్టి ఏమి డేటా నిర్మాణం కూడా ఒక క్యూ ఇస్తుంది? 

ప్రేక్షకులు: ఒక క్యూ. DAVID మలన్: సరే, ఒక క్యూ. ఖచ్చితంగా. ఏమి? 

ప్రేక్షకులు: అనుబంధ జాబితా. 

DAVID మలన్: అనుబంధ మీరు అమలు కాలేదు జాబితా. మరియు ఒక లింక్ జాబితా అప్పుడు ఎందుకంటే nice వ్యతిరేకంగా ఏకపక్ష పొడవైన పెరుగుతాయి నిర్దిష్ట సంఖ్య కలిగి స్టోర్ లో ప్రజలు యొక్క. కాని ఒక స్థిర సంఖ్య ప్రదేశాలలో అవసరమని. వారు మాత్రమే 20 వంటి ఉంటే ఎందుకంటే బహుశా, మొదటి రోజు ఐఫోన్ వారు మాత్రమే పరిమాణం యొక్క వ్యూహం అవసరం 20 ఆ క్యూ, ప్రాతినిధ్యం ఇది మేము మాట్లాడటం మొదలు మాత్రమే ఇప్పుడు చెప్పడం ఈ అధిక స్థాయి సమస్యలు గురించి, మీరు అమలు చేయవచ్చు మార్గాల్లో సంఖ్య లో. మరియు బహుశా కేవలం అన్నారు ఉంది స్పేస్ మరియు సమయం లో ఒక వాణిజ్యం ఉంటుంది లేదా కేవలం మీ స్వంత కోడ్ సంక్లిష్టత. 

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

Well, మరొక డేటా నిర్మాణం గురించి? నాకు ఇక్కడ దృశ్య ఇతర ఒక పుల్ అప్ లెట్. ఎలా ఇక్కడ ఈ ఒక గురించి వంటివి? ఎందుకు లేదు కలిగి ఉపయోగకరంగా ఉండవచ్చు ఒక trie, వంటి ఫాన్సీ ఏదో మేము, ఈ విస్తృతి నోడ్స్ చూసిన ఇది ప్రతి వ్యూహంలో ఉంది? కానీ మేము ఏదో మరింత ఏమి ఉంటే కేవలం, పాత కుటుంబం చెట్టు వంటి, దీని ఇక్కడ నోడ్స్ యొక్క ప్రతి కేవలం ఒక సంఖ్య నిల్వ. బదులుగా ఒక పేరు లేదా ఒక వంశస్థుడు కేవలం ఈ వంటి అనేక నిల్వ. 

బాగా, పడికట్టు మేము ఉపయోగించడానికి డేటా నిర్మాణాలు రెండు ప్రయత్నాలు ఉంది మరియు చెట్లు, ఒక trie, మళ్ళీ, ఉన్న దీని నోడ్స్ శ్రేణుల ఒక, ఇంకా ఏమి మీరు వాటిని గ్రేడ్ పాఠశాల నుండి ఉపయోగించడానికి మీరు ఒక కుటుంబం చేసినప్పుడు చెట్టు ఆకులు మరియు రూట్ చెట్టు మరియు పిల్లలు మాతృ మరియు వాటి తోబుట్టువుల. మరియు మేము ఒక చెట్టు అమలు, ఉదాహరణకు, కేవలం ఈ వంటి. ఒక చెట్టు, ఇది ఒక నోడ్, ఒకటిగా ఉన్నాయి ఈ వృత్తాలు, అది మాత్రం కాదు ఒక పాయింటర్, కానీ రెండు. మరియు వెంటనే మీరు జోడించండి రెండవ పాయింటర్, మీరు నిజానికి ఇప్పుడు విధమైన రెండు డైమెన్షనల్ డేటా మెమరీలో నిర్మాణాలు. ద్విమితీయ వంటి శ్రేణి, మీరు చెయ్యవచ్చు రెండు డైమెన్షనల్ రకం కలిగి లింక్ జాబితాలు కానీ వాటిని ఒక నమూనా అనుసరించండి ఎక్కడ చక్రాల ఉంది. ఇది ఒక నిజంగా ఒక చెట్టు ఇక్కడ మరియు అప్పుడు తాత మార్గం కొన్ని తల్లిదండ్రులు మరియు పిల్లలు మరియు మునుమనవళ్లను మరియు గొప్ప-మునుమనవళ్లను. మొదలగునవి. 

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

ఈ ఒక వృక్షం. నేను ఎలా ఒక చిన్న అంగ ఉన్నాను నేను వీధి లోకి పూర్ణాంకాల చాలు. ఎక్కువ కాబట్టి అది ఒక ప్రత్యేక ఉంది ఒక బైనరీ శోధన చెట్టు పేరు. ఇప్పుడు మేము బైనరీ యొక్క విన్న చేసిన మీరు అన్వేషణ, కానీ చెయ్యవచ్చు ఈ విషయం యొక్క పేరు నుండి వెనుకకు పని? నేను ఎలా నమూనా ఏమిటి ఈ చెట్టు లోకి పూర్ణాంకాల చేర్చబడుతుంది? ఇది ఏకపక్ష కాదు. కొన్ని నమూనా ఉంది. అవును. 

ప్రేక్షకులు: ఎడమ చిన్న వాటిని. 

DAVID మలన్: అవును. చిన్న ఎడమ ఉన్నాయి. పెద్ద వాటిని కుడి ఉన్నాయి. ఇటువంటి నిజమైన ప్రకటన ఒక మాతృ, దాని ఎడమ చైల్డ్ కంటే ఎక్కువ దాని కుడి పిల్లల కంటే తక్కువ. మరియు ఆ ఒక్క ఒక ఉంది పునరావృత శబ్ద నిర్వచనం మీరు ఆ దరఖాస్తు ఎందుకంటే ప్రతి నోడ్ అదే తర్కం మరియు అది మాత్రమే అడుగు బయటకు, ఒక బేస్ కేసు మీరు ఉంటే రెడీ, మీరు ఒకటి హిట్ ఆకులు, మాట్లాడటానికి, ఒక సెలవు మరింత పిల్లలు లేరు పేరు. 

ఇప్పుడు ఎలా మీరు సంఖ్య 44 కలిగించే? మీరు, HM root వద్ద మొదలు మరియు చెబుతా. 55 నేను వెళ్లాలని మీరు అనుకుంటున్నారా 44 కాదు కుడి లేదా నేను వదిలి వెళ్ళి అనుకుంటున్నారు? బాగా, ఖచ్చితంగా మీరు ఎడమ వెళ్లాలనుకుంటే. కాబట్టి ఇది ఫోన్ వంటిది బైనరీ శోధన పుస్తకం ఉదాహరణకు సాధారణంగా. కానీ మేము అది అమలు చేస్తున్నారు ఇప్పుడు కొంచెం డైనమిక్ వ్యూహం కల్పిస్తాయి కంటే. నిజానికి, మీరు చూడండి అనుకుంటే కోడ్ వద్ద, మొదటి చూపులో ఖచ్చితంగా. ఇది రేఖల మొత్తంగా కొంత కనిపిస్తోంది. కానీ అందంగా సులభం. మీరు ఒక ఫంక్షన్ అమలు చేయాలనుకుంటే దీని ప్రయోజనం జీవితంలో అని శోధన క్రింది కోసం శోధన ఉంది వంటి n, పూర్ణాంకం, మరియు మీరు ఒక పాయింటర్ జారీ చేస్తున్న మూలాలు నోడ్ ఒక పాయింటర్, కాకుండా, ఆ చెట్టు యొక్క నుండి మీరు, అన్నిటికీ యాక్సెస్ చేయవచ్చు ఎలా సూటిగా గమనించవచ్చు మీరు తర్కం అమలు చేయవచ్చు. చెట్టు శూన్య ఉంటే, స్పష్టంగా అది కాదు. యొక్క తప్పుడు తిరిగి లెట్. కుడి? మీరు ఏమీ చేతితో ఉంటే, అక్కడ ఏమీ ఉంది. 

ఎల్స్ n కంటే తక్కువ, ఉంటే ఇప్పుడు n బాణం n-- చెట్టు బాణం, మేము సూపర్ పరిచయం గుర్తు క్లుప్తంగా ఇతర రోజు, మరియు ఆ కేవలం డి-సూచన పాయింటర్ మరియు n అనే field చూడండి. కాబట్టి అది అక్కడ వెళ్ళి అర్థం n అనే field చూడండి. కాబట్టి n ఉంటే, మీరు ఇచ్చిన విలువ, తక్కువ చెట్లు పూర్ణాంక విలువ కంటే, మీరు వెళ్లాలని మీరు అనుకుంటున్నారా? ఎడమ. 

కాబట్టి సూత్రం గమనించవచ్చు. నేను నిజమైన returning-- వెబ్. తప్పుడు లేదు. నేను సంసార సమాధానం తిరిగి నేను నాకు ఒక కాల్ ఉంది, ప్రయాణిస్తున్న రిడన్డెంట్ మళ్ళీ ఒక n, కానీ ఇప్పుడు కొంచెం ఏమిటి? నేను చిన్న సమస్య కూడా చేస్తున్నాను? నేను రెండవ అక్కడ నేను వాదన, చెట్టు యొక్క రూట్, కానీ ఈ విషయంలో ఎడమ పిల్లల. నేను ఎడమ చైల్డ్ అక్కడ నేను. 

ఇంతలో n కంటే పెద్ద, ఉంటే నేను ప్రస్తుతం చూస్తున్నాను నోడ్, నేను కుడి వైపు శోధన. ఎల్స్, చెట్టు శూన్య ఉంటే మరియు మూలకం ఎడమ కాదు మరియు అది, కుడి కాదు కేసు అద్భుతంగా ఏమిటి? మేము నిజానికి లో నోడ్ అనిపిస్తే ప్రశ్న, మరియు కాబట్టి మేము నిజమైన తిరిగి. 

కాబట్టి మేము కేవలం ఉపరితల గోకడం చేసిన ఇప్పుడు ఈ డేటా నిర్మాణాలు. సమస్య సెట్ ఐదు లో మీరు చేస్తాము ఇంకా మరింత ఈ అన్వేషించడానికి, మరియు మీరు మీ డిజైన్ ఇవ్వబడుతుంది ఈ గురించి వెళ్ళండి ఎలా ఎంపిక. నేను ముగించారు చేయాలనుకుంటున్న ఏమిటి కేవలం ఒక 30 రెండవ టీజర్ దాటి వచ్చే వారం మరియు జరుపుతున్నారు ఏమి. 

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

[వీడియో ప్లేబ్యాక్] 

పడగొట్టాడు, ఒక సందేశం వచ్చింది తన సొంత ఒక ప్రోటోకాల్. అతను క్రూరమైన యొక్క ప్రపంచ వచ్చింది ఫైర్, అంత పట్టింపు లేనట్టుగా రౌటర్లు, మరియు ప్రమాదాల మరణం కంటే దారుణంగా. అతను వేగవంతమైనది. అతను బలమైన. అతను TCP / IP, అతనిని మీ చిరునామా కలిగియున్నారు. "నెట్ యుద్ధవీరులు." [END వీడియో ప్లేబ్యాక్] DAVID మలన్: వచ్చే వారం త్వరలో. మేము మీరు చూస్తారు. [వీడియో ప్లేబ్యాక్] -మరియు ఇప్పుడు, "డీప్ ఆలోచనలు" Daven FARNHAM ద్వారా. -David ఎల్లప్పుడూ మొదలవుతుంది , ఉపన్యాసాలు "అన్ని కుడి." ఎందుకు లేదు, "ఇక్కడ పరిష్కారం ఈ వారం యొక్క సమస్య సెట్ "కు లేదా "మేము ఒక ఒక మీరు అన్ని ఇచ్చి?" [నవ్వుతూ] [END వీడియో ప్లేబ్యాక్]