SPEAKER 1: అన్ని కుడి, కాబట్టి మేము తిరిగి ఉంటాయి. CS50 స్వాగతం. ఈ వారం ఏడు ముగింపు. సో చివరిసారి గుర్తుకు, మేము ప్రారంభించారు కొద్దిగా మరింత ఆధునిక చూడటం డేటా నిర్మాణాలు. అప్ ఇప్పుడు వరకు నుండి, అన్ని మేము నిజంగా ఉంది మా పారవేయడం వద్ద ఈ, ఒక శ్రేణి ఉంది. కానీ మేము శ్రేణి తొలగించాలనుకుంటున్నారా గా ముందు అన్ని ఆసక్తికరమైన, ఇది నిజానికి ఇది నిజానికి, కొన్ని ఏమి ఉన్నాయి ఈ సాధారణ డేటా pluses నిర్మాణం ఇప్పటివరకు? ఇది మంచి ఏమిటి? ఇప్పటివరకు మేము చూసిన వంటి? మీరు ఏమి వచ్చింది లేదు? ఏమీ. STUDENT: [వినబడని]. SPEAKER 1: ఏమి ఆ? STUDENT: [వినబడని]. SPEAKER 1: స్థిర పరిమాణం. OK, కాబట్టి స్థిర పరిమాణం అయితే మంచి? STUDENT: [వినబడని]. SPEAKER 1: OK, కాబట్టి అది సమర్థవంతం మీరు ఒక కేటాయించుటకు చేసే భావం స్థలం స్థిర మొత్తం, ఇది ఆశాజనక ఖచ్చితంగా ఎక్కువ ఉంది స్పేస్ మీకు కావలసిన. తద్వారా ఖచ్చితంగా ఒక ప్లస్ కావచ్చు. ఒక అర్రే యొక్క మరో వైపు ఏమిటి? అవును? STUDENT: [వినబడని]. SPEAKER 1: అన్ని - క్షమించండి? STUDENT: [వినబడని]. SPEAKER 1: మెమరీ లో అన్ని బాక్సులను లేదా ప్రతి ఇతర పక్కన. మరియు ఆ ఉపయోగపడిందా వార్తలు - ఎందుకు? ఆ చాలా నిజం. కానీ ఎలా మేము సత్యం దాటుకొని వెళ్ళగలదు? STUDENT: [వినబడని]. SPEAKER 1: సరిగ్గా, మేము ట్రాక్ చేయగలరు ప్రతిదీ కేవలం తెలుసుకోవడం ద్వారా ఇక్కడ ఒక నామంగా చిరునామా, యొక్క చిరునామా మెమరీ యొక్క భాగం మొదటి బైట్. లేదా స్ట్రింగ్ విషయంలో, మొదటి చిరునామా ఆ స్ట్రింగ్ లో చార్. మరియు అక్కడ నుండి, మేము పొందవచ్చు స్ట్రింగ్ యొక్క ముగింపు. మేము రెండవ మూలకం, వెదుక్కోవచ్చు మూడవ మూలకం, మొదలగునవి. మరియు వర్ణించి కాబట్టి ఫాన్సీ మార్గం ఫీచర్ శ్రేణుల మాకు ఇవ్వాలని ఉంది రాండమ్ యాక్సెస్. కేవలం చదరపు బ్రాకెట్ ఉపయోగించి సంజ్ఞామానం మరియు ఒక సంఖ్య, మీరు వెళ్లగలదు అర్రే లో ఒక ప్రత్యేక ఎలిమెంట్ స్థిరంగా సమయం, పెద్ద O లో ఒకటి, మాట్లాడటానికి. కానీ కొన్ని దుష్ప్రభావాలు ఉన్నాయి. ఒక అర్రే చాలా సులభంగా ఏమి లేదు? ఇది మంచి ఏమి కాదు? STUDENT: [వినబడని]. SPEAKER 1: ఏమి ఆ? STUDENT: [వినబడని]. SPEAKER 1: పరిమాణం విస్తరణ. అర్రే యొక్క దుష్ప్రభావాలు కనుక ఏమి ఖచ్చితంగా సరసన upsides ఉన్నాయి. సో దుష్ప్రభావాలు ఒకటి అది ఒక స్థిర పరిమాణం అని. సో మీరు నిజంగా అది పెరుగుతాయి కాదు. మీరు ఒక పెద్ద భాగం పునర్నియోగిస్తాయి చేయవచ్చు మెమరీ, మరియు అప్పుడు పాత అంశాలు తరలించడానికి కొత్త శ్రేణి లోకి. మరియు తరువాత ఉచిత పాత శ్రేణి, ఉదాహరణకు, malloc లేదా ఇదే ఉపయోగించి realloc అని ఫంక్షన్, ఇది reallocates మెమరీ. Realloc, జనాంతికంగా, మీరు ఇవ్వాలని ప్రయత్నిస్తాడు అర్రే పక్కన ఉండే మెమరీ మీరు ఇప్పటికే కలిగి. కానీ విషయాలు వెళ్ళడం పూర్తిగా చుట్టూ. కానీ చిన్న లో, ఆ కుడి, ఖరీదైన వార్తలు? ఎందుకంటే మీరు మెమరీ భాగం కలిగి ఉంటే ఈ పరిమాణం, కానీ మీరు నిజంగా ఒక కావలసిన ఈ పరిమాణం, మరియు మీరు భద్రపర్చాలనుకుంటున్నారా అసలు అంశాలు, మీరు సుమారు ఒక సరళ సమయం కాపీ ప్రక్రియ నుండి జరిగే అవసరం కొత్త పాత శ్రేణి. మరియు రియాలిటీ ఆపరేటింగ్ అడుగుతున్నారు మళ్లీ మళ్లీ వ్యవస్థ మరియు మళ్ళీ మెమరీ పెద్ద రాళ్లను ప్రారంభించవచ్చు కోసం అలాగే మీరు కొంత సమయం ఖర్చు. కనుక ఇది ఒక దీవెన మరియు ఒక శాపం కూడా , నిజానికి దాచిపెట్టు ఈ శ్రేణుల స్థిర పరిమాణంలో ఉంటాయి. కానీ దానికి బదులుగా ఏదో పరిచయం ఉంటే ఈ వంటి, ఇది మేము ఒక లింక్ అని జాబితా, మేము కొన్ని upsides పొందుటకు మరియు కొన్ని ఇక్కడ దుష్ప్రభావాలు అలాగే. ఒక లింక్ జాబితా కేవలం ఒక డేటా కాబట్టి నిర్మాణం ఈ సి structs తయారు ఒక struct, రీకాల్, కేవలం సందర్భంలో, ఒకటి లేదా ఎక్కువ ఖచ్చితమైన కోసం ఒక కంటైనర్ వేరియబుల్స్ రకాల. ఈ సందర్భంలో, ఏ డేటా రకాలు చేయండి struct లోపలి కనిపించే చివరిసారి మేము ఒక కణుపు అని పిలిచే? ఈ దీర్ఘ చతురస్రాలు ప్రతి ఒక కణుపు. మరియు చిన్న దీర్ఘ చతురస్రాలు ప్రతి అది లోపల ఒక డేటా రకం. మేము ఏ రకమైన అని పేర్కొన్నారు వారు సోమవారం ఉన్నాయి? అవును? STUDENT: [వినబడని]. SPEAKER 1: ఒక వేరియబుల్ మరియు ఒక పాయింటర్, లేదా మరింత ప్రత్యేకంగా, ఒక Int, n కోసం, మరియు దిగువన ఒక పాయింటర్. ఆ రెండు వద్ద, 32 బిట్స్ కావడం ఈ CS50 వంటి కంప్యూటర్లో కనీసం ఉపకరణం, మరియు వారు మీరు కనుక పరిమాణం సమానంగా డ్రా. సో వాట్ పాయింటర్ ఉపయోగిస్తున్నారు స్పష్టంగా కోసం అయితే? శ్రేణుల ఉన్నప్పుడు ఎందుకు ఇప్పుడు ఈ బాణం జోడించండి కాబట్టి nice మరియు శుభ్రంగా మరియు సాధారణ? పాయింటర్ కోసం ఏం చేస్తోంది మాకు ఈ నోడ్స్ ప్రతి? STUDENT: [వినబడని]. SPEAKER 1: సరిగ్గా. ఇక్కడ మీరు చెప్పుచున్నారు తదుపరి ఒకటి. నేను విధమైన యొక్క సాదృశ్యం ఉపయోగించడానికి యొక్క క్రమం ఒక థ్రెడ్ ఉపయోగించి కలిసి ఈ నోడ్స్ థ్రెడ్. మరియు ఆ మేము చేస్తున్న సరిగ్గా ఏమిటి గమనికలు ఎందుకంటే వీటిలో ప్రతి మెమరీ రాళ్లను ఉండవచ్చు లేదా పక్కపక్క, బ్యాక్ టు బ్యాక్ టు బ్యాక్ RAM యొక్క లోపల, ఎందుకంటే ప్రతి మీరు malloc మాట్లాడుతూ కాల్, నాకు తగినంత ఇవ్వాలని ఒక కొత్త నోడ్ కొరకు బైట్స్, అది వాటిని ఇక్కడ లేదా ఇక్కడ కావచ్చు. ఇది ఇక్కడ కావచ్చు. ఇది ఇక్కడ కావచ్చు. మీకు లేదు. కానీ చిరునామాలలో గమనికలు ఉపయోగించి ఆ నోడ్స్, మీరు కుట్టు వాటిని చెయ్యవచ్చు కలిసి దృష్టి కనిపించే విధంగా ఈ విషయాలు కూడా ఒక జాబితా వంటి అన్ని మీ ఒకటి లేదా మొత్తం వ్యాపించి మీ రెండు లేదా RAM యొక్క మీ నాలుగు గిగాబైట్ల మీ సొంత కంప్యూటర్ లోపల. యొక్క, అప్పుడు, వ్యతిరేక స్థితి సో ఒక లింక్ జాబితా ఏమిటి? మేము ఒక ధర ఏమిటి స్పష్టంగా చెల్లించి? STUDENT: [వినబడని]. SPEAKER 1: మరింత స్పేస్, కుడి? మేము ఈ సందర్భంలో, మొత్తం రెట్టింపు చేసిన స్థలం మేము వెళ్ళిన చేసిన ఎందుకంటే ప్రతి ప్రతి నోడ్ 32 బిట్స్, నుండి Int, కాబట్టి ఇప్పుడు మేము 64 బిట్స్ ఎందుకంటే అలాగే ఒక పాయింటర్ చుట్టూ ఉంచడానికి. మీరు మరింత సామర్థ్యం పొందుటకు మీ struct ఉంటే ఈ సాధారణ విషయం కంటే పెద్దది. మీరు నిజంగానే లోపల ఒక విద్యార్థి కలిగి ఉంటే ఇది యొక్క తీగలు ఒక జంట కోసం పేరు మరియు ఇంటి, ఉండవచ్చు ఒక ID సంఖ్య, పూర్తిగా ఉండవచ్చు కొన్ని ఇతర ఖాళీలను. మీరు ఒక పెద్ద తగినంత struct కలిగి ఉంటే, అప్పుడు ఉండవచ్చు పాయింటర్ యొక్క ఖర్చు అంత పెద్ద ఒప్పందంలో. ఇది ఒక మూలలో సందర్భంలో ఒక బిట్ ఉంది మేము ఒక సాధారణ ఆదిమ నిల్వ చేస్తున్నారు లింక్ జాబితా లోపల. కానీ పాయింట్ అదే. మీరు ఖచ్చితంగా ఖర్చు చేస్తున్నారు మెమరీ, కానీ మీరు పొందుతుంటే వశ్యత. ఇప్పుడు నేను ఒక మూలకం జోడించాలనుకుంటే ఎందుకంటే ఈ జాబితా యొక్క ప్రారంభంలో, నేను ఒక కొత్త నోడ్ కేటాయించుటకు కలిగి. మరియు నేను ఆ నవీకరించుటకు కలిగి కేవలం కదల్చి ఏదో బాణాలు చుట్టూ కొన్ని గమనికలు. నేను లోకి ఏదో ఇన్సర్ట్ అనుకొంటే జాబితా మధ్యలో, నేను లేదు మేము లో చేశాడు ప్రక్కన ప్రతి ఒక్కరూ పుష్ మా వాలంటీర్లతో వారాల 'గత ఎవరు ఒక అర్రే ప్రాతినిధ్యం. నేను ఒక కొత్త నోడ్ కేటాయించుటకు మరియు చేయవచ్చు అప్పుడు కేవలం బాణాలు పాయింటు వేర్వేరు దిశల్లో అది లేదు ఎందుకంటే అసలు ఉండేందుకు కలిగి నేను తీసిన చేసిన వంటి మెమరీ నిజమైన లైన్ ఇక్కడ స్క్రీన్ మీద. ఆపై చివరగా, మీరు ఇన్సర్ట్ అనుకుంటే జాబితా ముగింపులో ఏదో, అది కూడా సులభంగా. ఈ స్వతంత్ర సంజ్ఞామానం విధమైన ఉంది కానీ 34 యొక్క పాయింటర్, ఒక అంచనా పడుతుంది. చాలా దాని పాయింటర్ విలువ ఏమిటి ఒక పాత వంటి వస్తాయనే డ్రా విధమైన అక్కడ పాఠశాల యాంటెన్నా? STUDENT: [వినబడని]. SPEAKER 1: ఇది బహుశా శూన్య వార్తలు. నిజానికి ఆ ఒకటి రచయిత శూన్య ప్రాతినిధ్యాన్ని. ఎందుకంటే మీరు ఖచ్చితంగా మరియు శూన్య వార్తలు తెలుసుకోవాలి పేరు ఒక లింక్ యొక్క ముగింపు జాబితా మీరు క్రింది ఉంచేందుకు భయంవలన, మరియు ఈ బాణాలు తరువాత మరియు తరువాత కొన్ని చెత్త విలువ. సో శూన్య ఏదీ ఆ ప్రాధాన్యత ఉంటుంది 34 కుడి మరింత నోడ్స్, ఈ సందర్భంలో. కాబట్టి మేము అమలు చేసే ప్రతిపాదన కోడ్ లో ఈ నోడ్. మరియు మేము ఈ రకమైన చూసిన సింటెక్స్ ముందు. Typedef కేవలం ఒక కొత్త రకం నిర్వచిస్తుంది మాకు, వంటి మాకు పర్యాయపదంగా ఇస్తుంది స్ట్రింగ్ చార్ * కోసం. ఈ సందర్భంలో, అది మాకు ఇవ్వాలని జరగబోతోంది సంక్షిప్త లిపి సంకేతం కనుక struct నోడ్ బదులుగా కేవలం వ్రాయవచ్చు చాలా క్లీనర్ ఇది నోడ్. ఇది తక్కువ మందమైన పలు. ఒక నోడ్ లోపల స్పష్టంగా ఒక Int ఉంది అని n, ఆపై ఒక struct నోడ్ * ఇది మాకు కోరుకున్న సరిగ్గా అర్థం బాణాలు మరొక, ఒక పాయింటర్ అర్థం ఖచ్చితమైన అదే డేటా రకం నోడ్. మరియు నేను మేము ఒక అమలు అని ప్రతిపాదించారు ఈ వంటి శోధన ఫంక్షన్, ఇది వద్ద మొదటి చూపులో అనిపించవచ్చు ఉండవచ్చు కొద్దిగా క్లిష్టమైన. కానీ అది సందర్భంలో చూద్దాం. నాకు ఇక్కడ పరికరానికి వెళ్ళి లెట్. నన్ను పిలిచి ఒక ఫైల్ తెరుచుకుంటుంది లెట్ జాబితా సున్నా డాట్ h. మరియు మాత్రమే నిర్వచనం మేము కలిగి కేవలం ఈ డేటాను కోసం ఒక క్షణం క్రితం చూసింది రకం ఒక కణుపు అని పిలిచే. కనుక మనం ఒక డాట్ h ఫైల్లోకి ఉంచిన. మరియు ఒక ప్రక్కన, కూడా ఈ అయితే మీరు చూడబోతున్నారు ఆ కార్యక్రమం అన్ని ఆ క్లిష్టమైన, అది నిజానికి వార్తలు ఒక ప్రోగ్రామ్ రాసేటప్పుడు సమావేశం లాగండి, డేటా రకాలు వంటి విషయాలు చాలు కొన్నిసార్లు, లోపల మీ యొక్క స్థిరాంకాలు శీర్షికా ఫైలును మరియు అవసరం లేదు లో మీ సి ఫైలు, ఖచ్చితంగా మీ కార్యక్రమాలు పెద్ద మరియు పెద్ద పొందుటకు, తద్వారా రెండు చూడండి ఇక్కడ మీరు తెలుసు కొన్ని సందర్భాల్లో డాక్యుమెంటేషన్, లేదా ఈ వంటి ప్రాథమిక అంశాలు, కోసం కొన్ని రకం నిర్వచనం. నేను ఇప్పుడు జాబితా సున్నా డాట్ అప్ తెరిస్తే సి, కొన్ని విషయాలు గమనించవచ్చు. ఇది చాలా కొన్ని శీర్షిక ఫైళ్లు ఉన్నాయి ఇది మనం ముందు చూసిన. ఇది దాని సొంత శీర్షిక ఫైల్. మరియు జనాంతికంగా, ఎందుకు ఆ డబుల్ వార్తలు ఇక్కడ వ్యాఖ్యలు, వంటి కోణం వ్యతిరేకంగా లైన్ న బ్రాకెట్లలో ఆ నేను అక్కడ హైలైట్ చేసిన? STUDENT: [వినబడని]. SPEAKER 1: అవును దీనిని స్థానిక ఫైల్ యొక్క. ఇక్కడ మీ స్వంత ఒక స్థానిక ఫైల్ కాబట్టి ఉంటే లైన్ 15 న, ఉదాహరణకు, మీరు ఉపయోగించడానికి డబుల్ కోట్స్ బదులుగా కోణ పరిధుల. ఇప్పుడు ఈ ఆసక్తికరమైన రకం. నేను ఒక ప్రపంచ డిక్లేర్డ్ చేసిన గమనించండి లైన్ 18 న ఈ కార్యక్రమం లో వేరియబుల్ మొదటి అని, ఈ ఉండటం ఆలోచన మొదటి ఒక పాయింటర్ అవతరిస్తుంది నా లింక్ జాబితా నోడ్, మరియు నేను చేసిన నేను చేసిన ఎందుకంటే, అది శూన్యం కు initialized ఏ వాస్తవ కేటాయించిన కాదు ఇంకా కేవలం నోడ్స్. సో ఈ మేము, చిత్రాల, సూచిస్తుంది చిత్రం లో ఒక క్షణం క్రితం చూసింది చాలా ఆ పాయింటర్ వైపు వదిలి. సో ఇప్పుడు, ఆ పాయింటర్ ఒక బాణం లేదు. ఇది బదులుగా నిరర్థక ఉంది. కానీ అది ఏ సూచిస్తుంది మొదటి వాస్తవ చిరునామా ఈ జాబితాలో నోడ్. సో నేను ఒక అంతర్జాతీయ అమలు చేసిన అన్ని ఈ, మీరు చూస్తారు ఎందుకంటే కార్యక్రమం జీవితంలో అమలు ఉంది లేదు నాకు ఒక లింక్ జాబితా. ఇప్పుడు నేను ఇక్కడ కొన్ని నమూనా పొందాను. నేను వంటి లక్షణాలను అమలు నిర్ణయించుకుంది తొలగింపు, జొప్పించే, శోధించడం, మరియు ట్రావెర్సల్ - అంతటా గత కేవలం ఉండటం నడక జాబితా, దాని మూలకాలు ముద్రించి. మరియు ఇప్పుడు ఇక్కడ నా ప్రధాన సాధారణ వార్తలు. మరియు మేము చాలా సమయం ఖర్చు కాదు ఈ నుంచి ఈ ఆశాజనక, విధమైన ఉంది ఇప్పుడు ద్వారా పాత టోపీ. నేను, క్రింది చేయ బోతున్నాను యూజర్ సహకరిస్తుంది అయితే. ఒక సో, నేను ప్రింట్ వెళుతున్న ఈ మెను నుండి. మరియు నేను అది ఫార్మాట్ చేసిన వారు ఈ విధంగా చెప్పాడు వంటి. అంటే ఒక వినియోగదారు రకాల ఒకవేళ వారు ఏదో తొలగించాలనుకుంటున్నారా. అంటే రెండు వినియోగదారు రకాల ఒకవేళ వారు ఏదో ఇన్సర్ట్ అనుకుంటున్నారా. మొదలగునవి. నేను ప్రాంప్ట్ వెళుతున్న అప్పుడు ఒక ఆదేశం కోసం. ఆపై నేను GetInt ఉపయోగించడానికి వెళుతున్న. సో ఈ ఒక నిజంగా సాధారణ menuing ఉంది మీరు కేవలం టైప్ ఉన్న అనుసంధానము ఒక ఒక సంఖ్య మ్యాపింగ్ ఆ ఆదేశాల. మరియు ఇప్పుడు నేను ఒక nice శుభ్రంగా స్విచ్ కలిగి స్విచ్ వెళుతున్న ఆ ప్రకటన యూజర్ సైన్ టైప్ సంసార వారు ఒక టైప్ ఉంటే, నేను చేస్తాము తొలగించడానికి కాల్ మరియు బ్రేక్. వారు రెండు టైప్ ఉంటే, నేను చేస్తాము ఇన్సర్ట్ కాల్ మరియు బ్రేక్. మరియు ఇప్పుడు నేను ప్రతి ఉంచిన నోటీసు అదే లైన్ లో ఈ. ఈ కేవలం ఒక శైలీకృత నిర్ణయం. సాధారణంగా మనం ఏదో చూసిన దీన్ని ఇష్టపడుతున్నారు. కానీ నేను, స్పష్టముగా, నా కార్యక్రమం నిర్ణయించుకుంది చదవదగ్గ చూసారు ఎందుకంటే ఇది మాత్రమే నాలుగు కేసులు ఉంది ఇదే విధంగా దానిని. శైలి పూర్తిగా చట్టబద్ధమైన ఉపయోగం. మరియు నేను ఈ చాలా కాలం చేయ బోతున్నాను యూజర్ సున్నా టైప్ లేదు, ఇది నేను నిర్ణయించుకుంది వారు విడిచి కావలసిన అర్థం అవుతుంది. కాబట్టి ఇప్పుడు నేను ఏమి గమనించవచ్చు ఇక్కడ చేయబోవడం. నేను స్పష్టంగా జాబితా విడిపించేందుకు వెళుతున్న. కేవలం ఒక క్షణం లో ఆ మరింత. మొదటి ఈ కార్యక్రమం అమలు లెట్. సో నాకు ఒక పెద్ద టెర్మినల్ తయారు చేద్దాము విండో, డాట్ స్లాష్ జాబితా 0. నేను ముందు వెళ్ళి ఇన్సర్ట్ వెళుతున్నాను టైపింగ్ రెండు, ఇప్పుడు ఒక 50 వంటి సంఖ్య, మరియు మీరు జాబితా ఇప్పుడు 50 చూస్తారు. మరియు నా టెక్స్ట్ కేవలం ఒక బిట్ అప్ scrolled. కాబట్టి ఇప్పుడు జాబితా ఉంది గమనించవచ్చు సంఖ్య 50. రెండు తీసుకొని మరొక చొప్పించు అన్నారు యొక్క. యొక్క ఒక వంటి టైప్ లెట్. జాబితా ఇప్పుడు 50 తరువాత ఒకటి. ఈ కేవలం ఒక పాఠ్య ప్రాతినిధ్యం కాబట్టి జాబితా. మరియు యొక్క వంటి ఒక మరింత సంఖ్య ఇన్సర్ట్ వీలు ఆశాజనక ఇది సంఖ్య 42, ఎందుకంటే, మధ్యలో వదులుకోవడానికి వెళుతున్న ప్రత్యేక రకాల ఈ ప్రోగ్రామ్ అది ఇన్సర్ట్ వాటిని అంశాలు. సో అక్కడ మేము కలిగి. ఆ విధంగా సూపర్ సాధారణ ప్రోగ్రామ్ ఖచ్చితంగా నేను వ్యూహం ఉపయోగిస్తారు, కానీ అనుబంధ జాబితా ఉపయోగిస్తూ జరిగే కేవలం నేను డైనమిక్ చెయ్యవచ్చు పెరుగుతాయి మరియు దీన్ని కుదించి. కనుక, యొక్క శోధన కోసం పరిశీలించి వీలు నేను కమాండ్ మూడు అమలు, నేను శోధించడానికి మీరు సంఖ్య 43, చెప్పటానికి, కోసం. మరియు ఏమీ స్పష్టంగా కనిపించింది, నేను ఎటువంటి సమాధానం తిరిగి వచ్చింది ఎందుకంటే. మరలా దీన్ని చేసుకుందాం. అన్వేషణ. 50, లేదా కాకుండా అన్వేషణ కోసం లెట్ శోధన 42 కోసం, ఇది ఒక nice ఉంది కొద్దిగా సూక్ష్మ అర్థం. మరియు నేను అక్కడ జీవితార్థాన్ని దొరకలేదు. మీకు తెలిసిన లేకపోతే సంఖ్య 42, సూచన, ఇది Google. అన్ని కుడి. సో వాట్ నాకు ఈ కార్యక్రమం పూర్తి? ఇది నాకు విధంగా ఇన్సర్ట్ చెయ్యడానికి అనుమతించాడు మూలకాల కోసం చాలా మరియు శోధన. కు, అప్పుడు, ఫాస్ట్ ఫార్వార్డ్ లెట్ మేము వద్ద glanced ఆ ఫంక్షన్ సోమవారం ఒక టీజర్ వంటి. ఈ ఫంక్షన్ సో, నేను, శోధనలు క్లెయిమ్ మొదటి జాబితాలో ఒక మూలకం ఒక, వినియోగదారు ప్రాంప్ట్ మరియు తరువాత కాల్ ఒక వాస్తవ Int పొందుటకు GetInt శోది కావలసిన. అప్పుడు ఈ గమనించవచ్చు. నేను ఒక తాత్కాలిక వేరియబుల్ సృష్టించడానికి వెళుతున్నాను లైన్ 188 లో పాయింటర్ అని - PTR - ఇది ఏదైనా అని ఉండవచ్చు. మరియు అది ఒక నోడ్ ఒక పాయింటర్ వార్తలు నేను అక్కడ నోడ్ * చెప్పారు. మరియు నేను దానికి సమానమైనది ప్రారంభించడం వెబ్ మొదటి నేను సమర్థవంతంగా ఉందని నా వేలు, కాబట్టి చాలా న, మాట్లాడటం జాబితా మొదటి మూలకం. ఇక్కడ నా కుడి చేతి PTR నేను కనుక ఉంటే అదే విషయం గురిపెట్టి మొదటి వద్ద సూచిస్తుంది. కాబట్టి ఇప్పుడు తిరిగి కోడ్ లో, ఏమి తదుపరి జరుగుతుంది - సంభవింప ఈ ఒక సాధారణ సమాహారం ఒక వంటి ఒక నిర్మాణం మీద లింక్ జాబితా. నేను అయితే క్రింది చేయ బోతున్నాను పాయింటర్ సో శూన్యం సమానం కాదు అయితే నా వేలు కొన్ని శూన్య వద్ద గురిపెట్టి లేదు విలువ, పాయింటర్ బాణం n n సమానం ఉంటే. మేము n అని మొదటి గమనిస్తారు ఏమి ప్రతి GetInts లో టైప్ యూజర్ ఇక్కడ కాల్. మరియు పాయింటర్ బాణం n అర్థం? మేము ఇక్కడ చిత్రాన్ని తిరిగి వెళ్ళి బాగా ఉంటే, నేను వద్ద గురిపెట్టి ఒక వేలు ఉంటే తొమ్మిది, కలిగిన మొదటి నోడ్ బాణం తప్పనిసరిగా ఆ వెళ్ళండి అర్థం నోడ్ మరియు, నగర n వద్ద విలువ పట్టుకోడానికి ఈ సందర్భంలో, డేటా రంగంలో n అని. జనాంతికంగా - మరియు మేము ఈ ఒక జంట చూసింది వారాల క్రితం ఎవరైనా అడిగినప్పుడు - ఈ సింటాక్స్ కొత్త, కానీ అది లేదు మాకు అధికారాలు ఇవ్వాలని మేము ఇప్పటికే లేదు. ఉపయోగించి సమానమైన ఈ పదబంధం ఏమిటి డాట్ సంజ్ఞామానం మరియు స్టార్ జంట వారాల క్రితం మేము తిరిగి ఒలిచిన ఉన్నప్పుడు ఈ ఒక బిట్ ముందుగానే పొర? STUDENT: [వినబడని]. SPEAKER 1: సరిగ్గా, అది స్టార్, మరియు అది తో, స్టార్ డాట్ n ఉంది ఇక్కడ బ్రాకెట్లు ఇది కనిపిస్తుంది, స్పష్టముగా, నేను చాలా అనుకుంటున్నాను చదవడానికి అధిక నిగూఢ. కానీ స్టార్ పాయింటర్, ఎల్లప్పుడూ, అంటే అక్కడ వెళ్ళి. మరియు ఒకసారి మీరు ఏమి డేటా, అక్కడ ఉన్నందుకు రంగంలో మీరు ఆక్సెస్ అనుకుంటున్నారు? బాగా మీరు ఆక్సెస్ చెయ్యడానికి డాట్ సంజ్ఞామానం ఉపయోగించడానికి ఒక structs డేటా రంగంలో, మరియు నేను ప్రత్యేకంగా n మీరు. స్పష్టముగా, నేను ఈ వాదిస్తుంది చదవడానికి మాత్రమే కష్టం. ఇక్కడ గుర్తుంచుకోవాలి కష్టం బ్రాకెట్లు గో స్టార్ మరియు అన్ని. సో ప్రపంచ కొన్ని వాక్యనిర్మాణ స్వీకరించింది చక్కెర, మాట్లాడటానికి. అని కేవలం ఒక సెక్సీ మార్గం, ఈ సమానమైన, మరియు బహుశా మరింత సులభంగా. పాయింటర్ నిజానికి ఒక పాయింటర్ ఉంటే, బాణం సంజ్ఞామానం అంటే అక్కడ వెళ్ళి కనుగొనేందుకు ఈ సందర్భంలో రంగంలో n అని. నేను దానిని కనుగొనేందుకు కనుక, నేను ఏమి గమనించవచ్చు. నేను మాత్రమే ప్రింట్, నేను, శాతం i దొరకలేదు ఆ Int కోసం విలువ పూరించే. నేను రకమైన కేవలం ఒక రెండవ కోసం నిద్ర కాల్ తెర మీద విరామం విషయాలు యూజర్ స్వీకరించే రెండవ ఇవ్వాలని వాట్ జస్ట్ హాపెండ్. ఆపై నేను విచ్ఛిన్నం. లేకపోతే, నేను ఏమి చెయ్యాలి? నేను సమాన కు పాయింటర్ అప్డేట్ తదుపరి పాయింటర్ బాణం. సో కేవలం స్పష్టమైన ఉండాలి, ఈ వెళ్ళి అర్ధం , నా పాత పాఠశాల సంజ్ఞామానం అక్కడ ఉపయోగించి. ఈ కేవలం సంసార వెళ్ళడానికి అని చెప్పుకుంటారు మీరు చాలా లో, ఇది వద్ద గురిపెట్టి చేస్తున్నారు మొదటి సందర్భంలో నేను గురిపెట్టి వెబ్ ఉంది అది తొమ్మిది struct. నేను అక్కడ పోయింది చేసిన. ఆపై డాట్ సంజ్ఞామానం అంటే, తదుపరి వద్ద విలువ పొందుటకు. కానీ విలువ, అది డ్రా లో అయినప్పటికీ ఒక ఇరుకైన కేవలం ఒక సంఖ్య. ఇది ఒక సంఖ్యా చిరునామా యొక్క. అని, కోడ్ యొక్క ఈ ఒక లైన్ కు , ఈ వంటి వ్రాసిన మరింత గుప్తమైన మార్గం, లేదా దీన్ని ఇష్టపడుతున్నారు, కొద్దిగా ఎక్కువ ప్రోత్సాహక మార్గాన్ని, నా చేతి తరలించడానికి అర్థం తదుపరి ఒక మొదటి నోడ్ నుండి, అప్పుడు తరువాత ఒకటి మరియు ఒక తదుపరి, మొదలగునవి. కనుక మనం ఇతర న నివసించు లేదు ఇన్సర్ట్ మరియు తొలగించడానికి అమలు మరియు ట్రావెర్సల్, మొదటి రెండు ఇది బొత్తిగా పాలుపంచుకున్న. మరియు నేను పొందుటకు చాలా సులభం అనుకుంటున్నాను నోటితో చేస్తున్నప్పుడు కోల్పోయింది. కానీ మేము ఇక్కడ చేయవచ్చు ఉంది నిర్ణయించడానికి ప్రయత్నించండి ఎలా ఉత్తమ దృష్టి దీన్ని. నేను ప్రతిపాదన ఎందుకంటే ఒకవేళ మేము ఈ లోకి అంశాలు ఇన్సర్ట్ అనుకుంటున్నారా ఇప్పటికే ఉన్న జాబితా, ఇది ఐదు మూలకాలు ఉన్నాయి - 9, 17, 22, 26, మరియు 33 - నేను ఈ అమలు చేయబోతున్నట్లు ఉంటే కోడ్, నేను వెళ్ళి ఎలా పరిగణలోకి తీసుకోవాలని ఈ చేయడం గురించి. మరియు నేను శిశువు దశలను ప్రతిపాదించారు ఉంటుంది ఈ సందర్భంలో నేను అర్థం దానిద్వారా, ఏమిటి సాధ్యమయ్యే దృశ్యాలను మేము సాధారణంగా ఎదుర్కొనే కొన్ని? ఒక అనుసంధాన కోసం చొప్పించు అమలు చేసినప్పుడు జాబితా, ఈ కేవలం ఒక నిర్మాణము పరిమాణం ఐదు ప్రత్యేక ఉదాహరణ. మీరు, ఒక సంఖ్య ఇన్సర్ట్ మీరు బాగా ఉంటే ప్రధమ చెప్పటానికి ఇష్టం, మరియు పేరు, క్రమబద్ధీకరించబడింది క్రమం ఖచ్చితంగా ఒక అవసరం సంఖ్య చేస్తుంది ఈ నిర్దిష్ట ఉదాహరణ వెళ్ళి? ప్రారంభంలో ఇష్టం. కానీ ఆసక్తికరంగా దాన్ని ఉంది మీరు దీన్ని ఒక ఇన్సర్ట్ అనుకుంటే జాబితా, ఏ ప్రత్యేక పాయింటర్ అవసరం స్పష్టంగా నవీకరించబడింది చేయాలి? మొదటి. నేను ఈ మొదటి సందర్భంలో, వాదిస్తుంది మేము ఒక, పరిగణలోకి అనుకొనుచున్న వద్ద ఇన్సర్ట్ పాల్గొన్న సందర్భంలో జాబితా ప్రారంభంలో. యొక్క కూడా ఒక సులభంగా లేదా ఉండవచ్చు ఆఫ్ ధైర్యము లెట్ సులభంగా సందర్భంలో, చాలా మాట్లాడుతూ. నేను ఇన్సర్ట్ మీరు ఊహించు క్రమబద్ధీకరించబడింది క్రమంలో 35. ఇది ఖచ్చితంగా అక్కడ చెందినది. సో వాట్ పాయింటర్ ఖచ్చితంగా కానుంది ఆ సందర్భంలో నవీకరించబడింది ఉండాలి? 34 యొక్క పాయింటర్ శూన్య కాదు మారుతోంది కానీ struct యొక్క చిరునామా సంఖ్య 35 కలిగి. సో ఆ సందర్భంలో రెండు వార్తలు. ఇప్పటికే, నేను quantizing విధమైన రెడీ నేను ఇక్కడ కలిగి ఎంత పని. చివరకు, స్పష్టమైన మధ్య కేసు నిజానికి, మధ్యలో, నేను మీరు వెళ్తాడు చెప్తారు 23, ఏదో ఇన్సర్ట్ 23 మరియు 26 మధ్య, కానీ ఇప్పుడు విషయాలు కొద్దిగా మరింత పొందండి చేరి ఎందుకంటే ఏమి గమనికలు మార్చాలి? 22 ఖచ్చితంగా మార్చబడింది అవసరం కాబట్టి అతను ఇకపై 26 పాయింటు ఎందుకంటే. అతను కొత్త నోడ్ పాయింటు అవసరం నేను కాల్ కేటాయించుటకు ఉంటుంది malloc లేదా కొన్ని సమానమైన. కానీ అప్పుడు నేను కూడా కొత్త నోడ్, 23 అవసరం ఈ సందర్భంలో, దాని పాయింటర్ కలిగి వీరిలో వద్ద గురిపెట్టి? 26. మరియు ఒక ఉన్నట్లు జరగబోతోంది ఇక్కడ కార్యకలాపాలు క్రమాన్ని. ఎందుకంటే నేను తెలివిలేక దీన్ని, మరియు నేను ఉంటే ప్రారంభంలో ఉదాహరణకు ప్రారంభం కోసం జాబితా, మరియు నా లక్ష్యం 23 ఇన్సర్ట్ ఉంటుంది. మరియు నేను చెందిన లేదు, తనిఖీ ఇక్కడ, తొమ్మిది సమీపంలో? నం ఇది 17 పక్కన, ఇక్కడ చెందినవా? నం ఇది 22 పక్కన ఇక్కడ చెందిన చేస్తుంది? అవును. ఇప్పుడు నేను ఇక్కడ వెర్రి రెడీ ఉంటే, మరియు కాదు ఈ ద్వారా ఆలోచిస్తూ, నేను వాటిని 23 నా కొత్త నోడ్ కేటాయించుటకు. నేను నుండి పాయింటర్ అప్డేట్ ఉండవచ్చు నోడ్ గురిపెట్టి, 22 అని కొత్త నోడ్. ఆపై నేను అప్డేట్ ఏమి ఉన్నాయి కొత్త నోడ్ యొక్క పాయింటర్ గా? STUDENT: [వినబడని]. SPEAKER 1: సరిగ్గా. 26 వద్ద గురిపెట్టి. నేను ఇప్పటికే అప్డేట్ లేదు ఉంటే dammit 22 యొక్క పాయింటర్ ఈ వ్యక్తి సమయంలో, మరియు ఇప్పుడు నేను అనాధల, మిగిలిన జాబితా, మాట్లాడటానికి. ఇక్కడ కార్యకలాపాలు కాబట్టి క్రమంలో ముఖ్యమైన అవతరిస్తుంది. దీన్ని నేను, దొంగిలించి కాలేదు , ఆరు స్వచ్ఛందంగా చెప్పటానికి. మరియు మేము ఈ ఇవ్వలేకపోతే యొక్క చూడనీ దృష్టి బదులుగా కోడ్ వారీగా. మరియు మేము కొన్ని సుందరమైన ఒత్తిడి కలిగి నేడు మీరు కోసం బంతుల్లో. OK, ఎలా ఒక, రెండు, లో తిరిగి - అక్కడ ముగింపు. మీరు రెండు మూడు, నాలుగు, ముగింపు న అబ్బాయిలు. మరియు ఐదు, ఆరు. ఖచ్చితంగా. ఐదు మరియు ఆరు. అన్ని కుడి మరియు మేము వచ్చి చేస్తాము మీరు అబ్బాయిలు పక్కన సమయం. అన్ని కుడి, మీద వస్తాయి. అన్ని కుడి, మీరు ఇక్కడ మొదటి అప్ ఉన్నకారణంగా, మీరు వికారంగా ఒక ఉండాలని కోరుకుంటారు ఇక్కడ Google గ్లాస్ లో? అన్ని కుడి, కాబట్టి, OK, గ్లాస్, ఒక వీడియోను రికార్డ్. OK, మీరు అన్నిటికి ఉన్నాము. అన్ని కుడి, కాబట్టి మీరు అబ్బాయిలు పైగా రావచ్చు ఉంటే ఇక్కడ, నేను ముందుగానే తయారు చేశారు కొన్ని సంఖ్యలు. అన్ని కుడి, ఇక్కడ కమ్ ఆన్ ఓవర్. మరియు ఎందుకు మీరు కొద్దిగా వెళ్లరు మరింత విధంగా. మరియు యొక్క చూద్దాము, మీ పేరు ఏమిటి, Google గ్లాస్ తో? STUDENT: బెన్. SPEAKER 1: బెన్? OK, బెన్, మీరు వాచ్యంగా, మొదటి ఉంటుంది. కాబట్టి మేము మీరు పంపిన చేయబోతున్నామని దశ చివర. అన్ని కుడి, మరియు మీ పేరు? STUDENT: జాసన్. SPEAKER 1: జాసన్, OK మీరు చేస్తాము తొమ్మిదవ ఉంటుంది. మీరు బెన్ విధంగా అనుసరించండి మీరు అనుకుంటే. STUDENT: జిల్. SPEAKER 1: జిల్ మీరు చేయబోతున్నామని 17, ఇది నేను ఈ ఎక్కువ పూర్తి భావిస్తే తెలివిగా, నేను కలిగి ఉంటుంది ఇతర చివరిలో ప్రారంభించారు. మీరు మార్గం వెళ్ళి. 22. మరియు మీరు? STUDENT: మేరీ. SPEAKER 1: మేరీ, మీరు 22 ఉంటాం. మరియు మీ పేరు? STUDENT: క్రిస్. SPEAKER 1: క్రిస్, మీరు 26 ఉంటాం. ఆపై చివరగా. STUDENT: డయానా. SPEAKER 1: డయానా, మీరు 34 ఉంటాం. సో మీరు ఇక్కడ కమ్ ఆన్ ఓవర్. అన్ని కుడి, కాబట్టి క్రమబద్ధీకరించబడింది పరిపూర్ణతచెంది ఇప్పటికే ఆర్డర్. మరియు యొక్క ముందుకు వెళ్లి ఈ తెలియజేసేలా తద్వారా మేము నిజంగా చెయ్యవచ్చు - బెన్ మీరు చూస్తున్న కేవలం రకమైన ఉన్నాము బయటకు ఎక్కడా అక్కడ లోకి. OK, కాబట్టి యొక్క ముందుకు వెళ్లి ఈ వర్ణిస్తాయి వీలు నేను చాలా వంటి, చేతులు ఉపయోగించి, సరిగ్గా, ఏమి జరగబోతోంది. అందుకే yourselves ఒక ఇవ్వాలని అడుగు లేదా yourselves మధ్య రెండు. మరియు ఒక చేతితో ముందుకు మరియు పాయింటు మీరు ఎవరైతే గురిపెట్టి చేయాలి ఈ ఆధారంగా. మీరు శూన్య అయితే కేవలం పాయింటు నేరుగా డౌన్ అంతస్తు వరకు. OK, కాబట్టి మంచి. కాబట్టి ఇప్పుడు మేము ఒక లింక్ జాబితా, మరియు నాకు వీలు నేను పాత్ర ఆడుతుందో ప్రతిపాదించారు PTR, కాబట్టి నేను ఇబ్బంది లేదు చుట్టూ ఈ మోసుకెళ్ళే. ఆపై - ఎవరైనా తెలివితక్కువదని సమావేశం - మీరు మీకు కావలసిన ఈ ఏదైనా కాల్ చేయవచ్చు - ముందు పాయింటర్, pred పాయింటర్ - ఇది కేవలం మేము ఇచ్చిన మారుపేరు వార్తలు నా ఎడమ చేతితో మా నమూనా కోడ్. ఉంచడం వెళుతున్న ఇతర చేతి ఎవరు ఎవరు ట్రాక్ దృశ్యాలు తరువాత. సో మొదటి, నేను ఆఫ్ ధైర్యము అనుకుంటున్నారా, ఊహించు ఇన్సర్ట్ మొదటి ఉదాహరణ చెబుతాను 20, జాబితా లోకి. నేను ఎవరైనా అవసరం వెళుతున్న మాకు సంఖ్య 20 రూపొందించారు. నేను malloc ఎవరైనా అవసరం ప్రేక్షకుల నుండి. అప్ న వస్తాయి. మీ పేరు ఏమిటి? STUDENT: బ్రియాన్. SPEAKER 1: బ్రియాన్, అన్ని కుడి, కాబట్టి మీరు 20 కలిగి నోడ్ ఉండాలి. అన్ని కుడి, ఇక్కడ కమ్ ఆన్ ఓవర్. మరియు ఖచ్చితంగా, పేరు బ్రియాన్ చెందినవా? సో, మధ్యలో - నిజానికి, ఒక నిమిషం వేచి. మేము ఆర్డర్ ఈ అవ్ట్ చేస్తున్న. మేము చాలా కష్టం ఈ ఉంచుతున్నాము ఇది మొదటి వద్ద ఉండాలి కంటే. OK, మేము ఉచిత బ్రియాన్ చేయబోతున్నామని మరియు ఐదు realloc బ్రియాన్. OK, కాబట్టి ఇప్పుడు మేము ఇన్సర్ట్ అనుకుంటున్నారా ఐదు బ్రియాన్. కాబట్టి తరువాతి ఇక్కడ కమ్ ఆన్ ఓవర్ కేవలం ఒక క్షణం బెన్. మరియు మీరు బహుశా తెలియజేయవచ్చు ఈ కథ వెళుతున్న ఉన్న. కానీ వీలు యొక్క గురించి జాగ్రత్తగా అనుకుంటున్నాను క్రియల క్రమం. మరియు అది ఖచ్చితంగా ఈ దృశ్య వార్తలు ఒకే అవకాశముంది అని ఆ నమూనా కోడ్ తో. ఇక్కడ నేను PTR ప్రారంభంలో గురిపెట్టి చేశారు కాదు కేవలంగా బెన్, వద్ద, కానీ సంసార వద్ద అతను కలిగి విలువ ఈ సందర్భంలో - మీ పేరు తిరిగి ఏమిటి? STUDENT: జాసన్. SPEAKER 1: జాసన్, బెన్ మరియు నేను రెండు కాబట్టి ఈ సమయంలో జాసన్ వద్ద గురిపెట్టి. కాబట్టి ఇప్పుడు నేను గుర్తించడానికి కలిగి, బ్రియాన్ పేరు చెందినవా? మాత్రమే విషయం నేను యాక్సెస్ ప్రస్తుతం తన n డేటా అంశం. నేను, తనిఖీ ఉంది వెళుతున్నాను జాసన్ కంటే బ్రియాన్ తక్కువ? సమాధానం వర్తిస్తుంది. సో ఇప్పుడు, ఏమి కావాలి సరైన క్రమంలో? నేను ఎన్ని గమనికలు నవీకరించవలసి ఉంది ఈ కథ లో మొత్తం? నా చేతి ఇప్పటికీ వద్ద గురిపెట్టి ఉన్న జాసన్ మరియు మీ చేతి - మీరు అనుకుంటే విధమైన, మీ చేతి చాలు, నేను ఒక ప్రశ్న గుర్తు తెలియదు. OK, మంచి. అన్ని కుడి, మీరు కనుక కొన్ని అభ్యర్థులు. బెన్ లేదా నేను లేదా బ్రియాన్ లేదా జాసన్ గాని వేరే లేదా ప్రతి ఒక్కరూ, ఇది గమనికలు మార్చాలి? ఎలా మొత్తం చాలా? OK, కాబట్టి రెండు. నా పాయింటర్ నిజంగా ఇకపై పట్టింపు లేదు నేను తాత్కాలిక ఉంటాను కాబట్టి. అది బహుశా, ఈ రెండు అబ్బాయిలు వార్తలు బెన్ మరియు బ్రియాన్ రెండు. కాబట్టి మేము అప్డేట్ నాకు ప్రతిపాదించారు వీలు బెన్, నుండి అతను మొదటిది. ఈ జాబితాలో మొదటి మూలకం ఇప్పుడు బ్రియాన్ అవతరిస్తుంది. బ్రియాన్ వద్ద కనుక బెన్ పాయింట్. OK, ఇప్పుడు ఏమి? ఎవరు ఎవరికి దిశగానే కావాలి? STUDENT: [వినబడని]. SPEAKER 1: OK కాబట్టి బ్రియాన్ ఉంది జాసన్ వద్ద మార్చాలి. కానీ నేను ఆ పాయింటర్ యొక్క ట్రాక్ కోల్పోయారు? జాసన్ ఉన్న నేను మీకు తెలుసా? STUDENT: [వినబడని]. SPEAKER 1: నేను నుండి నేను, చేయండి తాత్కాలిక పాయింటర్. మరియు బహుశా, నేను మారలేదు కొత్త నోడ్ దశలో. కాబట్టి మేము కేవలం బ్రియాన్ పాయింట్ కలిగి ఎవరైతే అతడ్ని వద్ద నేను గురిపెట్టి వెబ్. మరియు మేము పూర్తి చేసిన. సో సందర్భంలో ఒక వద్ద చొప్పించడం జాబితా ప్రారంభం. రెండు ముఖ్యమైన దశలను ఉన్నాయి. ఒక, మేము బెన్ అప్డేట్ కలిగి, మరియు అప్పుడు మేము కూడా బ్రియాన్ అప్డేట్ కలిగి. ఆపై నేను ఇబ్బంది లేదు మిగిలిన traipsing మేము ఇప్పటికే దొరకలేదు జాబితా, ఎందుకంటే అతని అతను చెంది నగర, ఎందుకంటే మొదటి మూలకం ఎడమ. అన్ని కుడి, కాబట్టి అందంగా నేరుగా. మేము దాదాపు ఉన్నాము వంటి నిజానికి, అనిపిస్తుంది ఈ చాలా క్లిష్టమైన మేకింగ్. సో యొక్క ఇప్పుడు ముగింపు ఆఫ్ ధైర్యము వీలు జాబితా, మరియు ఇక్కడ చూడండి సంక్లిష్టత మొదలవుతుంది. ప్రేక్షకుల నుండి ఇప్పుడు, నేను alloc. ఎవరైనా 55 ప్లే అనుకుంటున్నారా? అన్ని కుడి, నేను మొదటి మీ చేతి చూసింది. అప్ న వస్తాయి. అవును. మీ పేరు ఏమిటి? STUDENT: [వినబడని]. SPEAKER 1: Habata. OK, మీద వస్తాయి. మీరు 55 ఉంటాం. సో మీరు, కోర్సు యొక్క, చెందిన జాబితా చివర. సో యొక్క నాతో అనుకరణ రీప్లే వీలు కేవలం ఒక క్షణం PTR ఉండటం. నేను మొదటి దశలో వెళుతున్నాను బెన్ వద్ద గురిపెట్టి లో సంసార. మేము ఇప్పుడు బ్రియాన్ వద్ద గురిపెట్టి చేస్తున్న రెండు. సో 55 కంటే తక్కువ ఐదు కాదు. సో నేను ద్వారా వచ్చేలా అప్డేట్ వెళుతున్న బ్రియాన్ యొక్క తదుపరి పాయింటర్, గురిపెట్టి ఎవరు ఇప్పుడు కోర్సు జాసన్ యొక్క ఉంది. 55 కాబట్టి, తక్కువ కంటే తొమ్మిది కాదు నేను PTR అప్డేట్ వెళుతున్న. నేను PTR అప్డేట్ వెళుతున్న. నేను PTR అప్డేట్ వెళుతున్న నేను PTR అప్డేట్ వెళుతున్న. మరియు నేను వెళుతున్న - అయ్యో, ఏమిటి మీ పేరు తిరిగి? STUDENT: డయానా. SPEAKER 1: డయానా సూచిస్తుంది, కోర్సు యొక్క, ఆమె ఎడమ చేతితో శూన్య వద్ద. సో పేరు Habata నిజానికి చేస్తుంది స్పష్టంగా చెందిన? ఎడమ, ఇక్కడ. సో ఎలా నేను ఇక్కడ ఆమె ఉంచాలి తెలుసు నేను ఇరుక్కొనిపోయింది నేను భావిస్తున్నాను. ఏ PTR కళ ఎందుకంటే సమయం లో ఈ క్షణం? శూన్యం. సో అయినప్పటికీ, దృష్టి, మేము ఖచ్చితంగా ఈ అన్ని చూడండి ఇక్కడ వేదికపై అబ్బాయిలు. నేను గత ట్రాక్ ఉంచరు చేసిన జాబితాలో వ్యక్తి. నేను, ఎత్తిచూపారు ఒక వేలు లేదు ఈ సందర్భంలో, నోడ్ 34. సో యొక్క నిజానికి ఈ ప్రారంభించవచ్చు వీలు. కాబట్టి ఇప్పుడు నేను నిజానికి అవసరం రెండవ స్థానిక వేరియబుల్. మరియు ఈ లో మీరు చూస్తారు ఏమిటి వాస్తవ నమూనా సి కోడ్, నేను వెళ్ళి అక్కడ, నేను చెప్పిన నా కుడి చేతి అప్డేట్ చేసినప్పుడు జాసన్, తద్వారా నేను, వెనుక బ్రియాన్ వదిలి మంచి నా ఎడమ చేతితో ఉపయోగించి మొదలు నేను అక్కడ నేను వెళ్ళి కాబట్టి ఆ అప్డేట్ ఈ జాబితా ద్వారా - మరింత వికారంగా నేను ఉద్దేశించిన కంటే ఇప్పుడు ఇక్కడ దృష్టి - నేను పొందేందుకు వెళుతున్నాను జాబితా ముగింపును. ఈ చేతి అందంగా ఉంది ఇది, ఇంకా శూన్య ఉంది సూచించటం మినహా ఇతర పనికిరాక నేను, జాబితా ముగింపులో స్పష్టంగా ఉన్నాను కానీ ఇప్పుడు కనీసం నేను ఈ కలిగి ముందు పాయింటర్ కాబట్టి, ఇక్కడ గురిపెట్టి ఇప్పుడు ఏమి చేతులు మరియు గమనికలు అవసరం నవీకరించవలసిన? దీని చేతి మీరు అనుకుంటున్నారు మొదటి పునఃనిర్మితీకరణకు? STUDENT: [వినబడని]. SPEAKER 1: OK, డయానా కాబట్టి. ఎక్కడ మీరు సూచించండి అనుకుంటున్నారు వద్ద డయానా యొక్క ఎడమ పాయింటర్? 55 వద్ద, బహుశా, తద్వారా మేము అక్కడ చేర్చబడుతుంది చేసిన. మరియు 55 పాయింటర్ వెళ్ళాలి? డౌన్ శూన్య ప్రాతినిధ్యం. మరియు నా చేతులు, ఈ సమయంలో, లేదు వారు కేవలం ఎందుకంటే పట్టింపు తాత్కాలిక వేరియబుల్. కాబట్టి ఇప్పుడు మేము పూర్తి చేసిన. సో అదనపు అక్కడ సంక్లిష్టత - మరియు అది అమలు ఆ హార్డ్ కాదు కానీ మేము రెండవ వేరియబుల్ అవసరం ఖచ్చితంగా ఆ నా కుడి తరలించడానికి ముందు చేతి, నేను నా ఎడమ విలువ అప్డేట్ చేతి, pred ఈ విషయంలో పాయింటర్, కాబట్టి నేను ఒక వెనుకంజలో పాయింటర్ కలిగి నేను అక్కడ ట్రాక్. ఇప్పుడు జనాంతికంగా, మీరు ఈ అనుకున్నది ఉంటే ఇది వంటి ద్వారా, ఈ అనిపిస్తుంది ఒక పెట్టాలి కొద్దిగా బాధించే ఈ ఎడమ చేతి యొక్క ట్రాక్. ఏమి మరొక పరిష్కారం చేస్తాను ఈ సమస్యకు ఉన్నాయి? మీరు డేటా డిజైన్ వచ్చింది ఉంటే మేము ఎవరితో మాట్లాడుతున్నామో నిర్మాణం ప్రస్తుతం ద్వారా? ఈ కేవలం ఒక విధమైన చిన్న భావిస్తే , ఇష్టం, రెండు పాయింటర్లు కలిగి బాధించే ఎవరితో, జాబితా ద్వారా కాలేదు వెళుతున్న , ఆదర్శవంతమైన ప్రపంచంలో, నిర్వహించారు మేము అవసరమైన సమాచారం? అవును? STUDENT: [వినబడని]. SPEAKER 1: సరిగ్గా. కుడి కాబట్టి ఒక ఆసక్తికరమైన నిజానికి ఉంది ఒక ఆలోచన యొక్క బీజ. మరియు ఒక మునుపటి పాయింటర్ ఈ ఆలోచన, మునుపటి మూలకం వద్ద గురిపెట్టి. నేను కేవలం మూర్తీభవించిన ఉంటే జాబితా యొక్క లోపల? మరియు అది ఆలోచించడం కష్టం అవకాశముంది ఈ అన్ని కాగితం లేకుండా ఫ్లోర్ పడిపోయాడు. కానీ ఈ కుర్రాళ్ళు రెండు ఉపయోగించిన ఊహించు వారి చేతులు మునుపటి కలిగి తద్వారా పాయింటర్, మరియు ఒక రాబోయే పాయింటర్, మేము ఒక ఎన్నటికీ కాల్ చేస్తాము ఏమి అమలు లింక్ జాబితా. ఆ, నాకు రివైండ్ యొక్క క్రమం అనుమతించే మరింత సులభంగా నాకు లేకుండా, ప్రోగ్రామర్, ఉంచాలని కలిగి మానవీయంగా ట్రాక్ - నిజంగా మానవీయంగా - నేను గతంలో ఇక్కడ జాబితాలో. కనుక మనం అలా ఉంటుంది. ఆ ఎందుకంటే మేము అది సాధారణ ఉంటాం రెండుసార్లు వంటి, ఒక ధర వద్ద వచ్చి వెళుతున్న గమనికలు చాలా స్పేస్, మీరు మరో కావాలా. కానీ ఆ సామాన్య వార్తలు డేటా నిర్మాణం అంటారు రెట్టింపైన జాబితా లింక్. ఇక్కడ చివరి ఉదాహరణకు చేయండి మరియు చాలు లెట్ యొక్క వారి కష్టాలను బయటకు ఈ కుర్రాళ్ళు. Malloc 20 కాబట్టి. అక్కడ నడవ నుండి న కమ్. అన్ని కుడి, మీ పేరు ఏమిటి? STUDENT: [వినబడని]. SPEAKER 1: క్షమించండి? STUDENT: [వినబడని]. SPEAKER 1: Demeron? OK మీద వస్తాయి. మీరు 20 ఉండాలి. మీరు ఖచ్చితంగా వెళ్తున్నారు 17 మరియు 22 మధ్య చెందిన. సో నాకు నా పాఠం తెలుసుకోవడానికి వీలు. నేను పాయింటర్ ప్రారంభించడానికి వెళుతున్నాను బ్రియాన్ వద్ద గురిపెట్టి. మరియు నేను నా ఎడమ చేతి కలిగి వెళుతున్నాను నేను తరలి మాత్రమే బ్రియాన్ నవీకరించండి జాసన్, తనిఖీని తొమ్మిది కంటే 20 తక్కువ చేస్తుంది? నం 17 కంటే 20 తక్కువ? నం 22 కంటే 20 తక్కువ? అవును. సో వాట్ గమనికలు లేదా మార్చాలి అవసరం అక్కడ వారు ఇప్పుడు గురిపెట్టి చేస్తున్నాం? కనుక మనం 20 వద్ద గురిపెట్టి 17 చేయవచ్చు. తద్వారా మంచిది. అక్కడ సూచించాలని అనుకుంటాయి లేదు మీ పాయింటర్ ఇప్పుడు? 22. 22 ఇక్కడ మరియు మేము మళ్ళీ, ధన్యవాదాలు తెలుసు నా తాత్కాలిక పాయింటర్ కు. కనుక మనం OK అక్కడ ఉన్నందుకు. ఎందుకనగా ఈ తాత్కాలిక నిల్వ నేను ప్రతి ఒక్కరూ ఇక్కడ ట్రాక్ ఉంచింది చేసిన. మరియు ఇప్పుడు మీరు దృష్టి పేరు లోకి వెళ్ళే మీరు చెందిన, మరియు ఇప్పుడు మేము 1, 2, 3, అవసరం 4, 5, 6, 7, 8, 9 ఒత్తిడి బంతుల్లో, మరియు ప్రశంసలను ఒక రౌండ్ ఈ అబ్బాయిలు, మేము చేస్తే. చక్కగా పూర్తి. [ప్రశంసలను] SPEAKER 1: అన్ని కుడి. మరియు మీరు ముక్కలు ఉండేందుకు కారణమవుతుంది మెమెన్టోస్ వంటి కాగితం. అన్ని కుడి, కాబట్టి, ఇది చాలా నాకు విశ్వసిస్తే సులభంగా ఆ నడవడానికి ఇది వాస్తవ కోడ్ తో కంటే మానవులు. కానీ మీరు ఒక క్షణం లో చూడండి ఇప్పుడు, అదే ఉంది - ఓహ్, ధన్యవాదాలు. ధన్యవాదాలు - మీరు అదే డేటా చూడండి అని నిర్మాణం, ఒక లింక్ జాబితా, వాస్తవానికి మరింత ఒక బిల్డింగ్ బ్లాక్ ఉపయోగిస్తారు అధునాతన డేటా నిర్మాణాలు. మరియు ఇక్కడ చాలా థీమ్ తెలుసుకోవటం అని మేము ఖచ్చితంగా ఎక్కువ పరిచయం చేసిన అమలు లోకి సంక్లిష్టత ఈ అల్గోరిథం. చేర్పు, మరియు మేము అది వెళ్ళినట్లయితే, తొలగింపు మరియు శోధన, ఒక చిన్న ఉంది ఇది కంటే మరింత క్లిష్టంగా వ్యూహం తో. కానీ కొన్ని చైతన్యానికి పొందటానికి. మేము ఒక అనుకూల డేటా నిర్మాణం పొందుటకు. కానీ మళ్ళీ, మేము కొన్ని కలిగి ధర చెల్లించడానికి అదనపు సంక్లిష్టత, రెండు అది అమలు. మరియు మేము రాండమ్ యాక్సెస్ అప్ ఇచ్చిన చేస్తున్నారు. మరియు నిజాయితీ ఉండాలి, కొన్ని nice లేదు వార్తలు స్లయిడ్ శుభ్రం నేను మీరు ఇవ్వగలిగిన ఆ ఇక్కడ చెప్పారు ఎందుకు ఒక లింక్ జాబితా ఒక అర్రే కంటే ఉత్తమం. మరియు ఆ వదిలి. థీమ్ కూడా, ఇప్పుడు reoccurring ఎందుకంటే మరింత కాబట్టి రాబోయే వారాలలో, ఉంది తప్పనిసరిగా కాదు ఒక సరైన సమాధానం. మేము ప్రత్యేక అక్షం ఎందుకు ఈ ఉంది ప్రాబ్లం సెట్స్ రూపకల్పన యొక్క. ఇది చాలా సందర్భంలో సున్నితమైన ఉంటుంది మీరు ఈ డేటాను ఉపయోగించడానికి నిశ్చఇ నిర్మాణం లేదా ఒక, మరియు అది పరంగా మీరు వాట్ మాటర్స్ ఆధారపడి వనరులు మరియు సంక్లిష్టత. కానీ నాకు ప్రతిపాదన చేసే ఆదర్శ డేటా నిర్మాణం, హోలీ గ్రెయిల్, ఉంటుంది స్థిరంగా సమయం ఏదో, సంబంధం లేకుండా చాలా stuff ఉంది ఎలా అది లోపల, అది అద్భుతమైన కాదు ఒక ఉంటే డేటా నిర్మాణం సమాధానాలు తిరిగి స్థిరంగా సమయం. అవును. ఈ పదం మీ భారీ నిఘంటువులో ఉంది. లేదా సంఖ్య, ఈ పదం కాదు. లేదా అక్కడ ఏ సమస్యా. చెప్పండి మేము కనీసం పోతే ఆ దిశగా ఒక అడుగు తీసుకోవాలని. నాకు ఒక క్రొత్త డేటా నిర్మాణం ప్రతిపాదించారు అనుమతించే వివిధ కారణాలరీత్యా ఉపయోగించవచ్చు, ఈ సందర్భంలో ఒక హాష్ పట్టిక అని. అందువలన మేము చూసుకుంటూ ఉండడాన్ని తిరిగి నిజానికి ఉన్నాము ఒక ఈ విషయంలో శ్రేణిని, మరియు కొంతవరకు ఏకపక్ష, నేను ఈ డ్రా చేసిన ఒక విధమైన ఒక వ్యూహం హాష్ పట్టిక రెండు డైమెన్షనల్ శ్రేణి - లేదా బదులుగా ఒక రెండు ఇక్కడ వర్ణించబడిన లో డైమెన్షనల్ శ్రేణి - కానీ ఈ కేవలం అంత పరిమాణం 26 ఒక వరుస ఒకవేళ మేము అర్రే పట్టిక, పట్టిక బ్రాకెట్ కాల్ సున్నా పైన దీర్ఘ చతురస్రంగా చెప్పవచ్చు. టేబుల్ బ్రాకెట్ 25 దీర్ఘ చతురస్రం అనేది దిగువన. మరియు ఈ నేను ఒక డేటా డ్రా ఎలా ఉంది నేను నిల్వ చేయడానికి మీరు ఏ నిర్మాణం ప్రజల పేర్లు. సో ఉదాహరణకు, మరియు నేను డ్రా లేదు ఇక్కడ ఓవర్ హెడ్ న మొత్తం విషయం, నేను నేను ఇప్పుడు వెళుతున్న ఈ శ్రేణి కలిగి ఒక హాష్ పట్టిక కాల్, మరియు మళ్ళీ ఉంది నగర సున్నా. ఈ ఇక్కడ స్థానం ఒక, మొదలగునవి. నేను ఈ డేటాను ఉపయోగించడానికి కావలసిన క్లెయిమ్ నిర్మాణం, చర్చ కొరకు, ప్రజల పేర్లు నిల్వ, అలైస్ మరియు బాబ్ మరియు చార్లీ మరియు ఇతర పేర్లు. సో ప్రారంభం ఇప్పుడు ఈ అనుకుంటున్నారో ఒక నిఘంటువు, చెప్పటానికి, యొక్క పదాల మా తో. వారు పేర్లు కావడం ఇక్కడ మా ఉదాహరణలో. మరియు ఈ, బహుశా, అన్ని చాలా సంబంధించి ఉంది మేము వంటి, ఒక స్పెల్ చెకర్ అమలు సమస్య కోసం ఆరు సెట్ ఉండవచ్చు. మేము మొత్తం పరిమాణం 26 వ్యూహం కలిగి ఉంటే ఈ 25 నగర దీని దిగువన, మరియు నేను ఆలిస్ చెప్పడము యొక్క నిఘంటువులో మొదటి పదం నేను RAM ఇన్సర్ట్ చేయాలనుకున్న పేర్లు, ఈ డేటాను నిర్మాణాన్ని, చోట మీరు చెప్పడం ప్రవృత్తులు అలైస్ యొక్క పేరు ఈ శ్రేణి లో వెళ్ళాలి? మేము 26 ఎంపికలు ఉన్నాయి. మేము ఆమె చాలు ఎక్కడ? మేము, బ్రాకెట్ సున్నా ఆమె కావలసిన కుడి? ఆలిస్ ఒక, యొక్క ఆ సున్నా కాల్ చెయ్యనివ్వండి. మరియు B అవుతుంది, మరియు సి రెండు ఉంటుంది. కనుక మనం రాయాలో చేస్తున్నారు ఇక్కడ ఆలిస్ యొక్క పేరు అప్. మేము అప్పుడు బాబ్ అతని ఇన్సర్ట్ ఉంటే పేరు ఇక్కడ వెళ్తుంది. చార్లీ ఇక్కడ వెళ్తుంది. మొదలగునవి డౌన్ ద్వారా ఈ డేటాను నిర్మాణం. ఈ ఒక అద్భుతమైన డేటా నిర్మాణం. ఎందుకు? బాగా రన్నింగ్ సమయం ఏమిటి ఈ ఒక మానవ యొక్క పేరు చేరిక ప్రస్తుతం డేటా నిర్మాణం? ఈ పట్టిక అమలు ఉంటుంది, నిజంగా, ఒక వ్యూహం. బాగా స్థిరంగా సమయం. ఇది ఒక ఆఫ్ ఆర్డర్ యొక్క. ఎందుకు? బాగా ఎలా మీరు గుర్తించేందుకు లేదు ఆలిస్ చెందినదే? మీరు ఆమె పేరు యొక్క లెటర్ చూడండి? మొదటి. అది ఒక స్ట్రింగ్ ఉంటే మరియు మీరు,, అక్కడ పొందవచ్చు కేవలం స్ట్రింగ్ చూడటం ద్వారా బ్రాకెట్ సున్నా. స్ట్రింగ్ యొక్క జేరోయేత్ పాత్ర కాబట్టి. చాలా సులభం. మేము crypto ఆ చేసింది అప్పగించిన వారాల క్రితం. ఆపై ఒకసారి మీరు అలైస్ యొక్క తెలుసు లేఖ ఒక రాజధాని, మేము తగ్గించు చేయవచ్చు 65 లేదా రాజధానిని కూడా, ఆఫ్ మాకు సున్నా అవుతుంది. కనుక మనం ఇప్పుడు ఆలిస్ చెందిన తెలుసు నగర సున్నా వద్ద. మరియు ఈ డేటాను ఒక పాయింటర్ ఇచ్చిన నిర్మాణం, కొంత, ఎంత చేస్తుంది ఇది నగర కనుగొనేందుకు నాకు పడుతుంది వ్యూహంలో సున్నాకి? కేవలం ఒక అడుగు, కుడి ఇది స్థిరంగా సమయం రాండమ్ యాక్సెస్ ఎందుకంటే మేము ప్రతిపాదిత వ్యూహం యొక్క ఒక లక్షణం ఉంది. సో లఘు, ఇందుకు ఏ ఇండెక్స్ ఆలీస్ యొక్క పేరు లో, ఇది ఉంది ఈ సందర్భంలో, ఒక ఉంది, లేదా లెట్స్ కేవలం పరిష్కరించడానికి సున్నాకి, పేరు B ఒకటి మరియు C అని రెండు, ఆ చేయాలనుకుంటున్నాను స్థిరంగా సమయం. నేను, ఆమె మొదటి లేఖ చూడండి కలిగి సున్నా పేరు ఇందుకు ఒక అర్రే స్థిరంగా సమయం. సాంకేతికంగా ఆ ఇప్పుడు రెండు దశలను వంటి. కానీ ఇప్పటికీ స్థిరంగా ఉంది. కనుక మనం ఒక ఆఫ్ పెద్ద O కాల్, కాబట్టి మేము చేసిన ఈ పట్టిక ఆలిస్ చేర్చబడుతుంది స్థిరంగా సమయం. కానీ కోర్సు యొక్క, నేను ఉండటం వెబ్ ఇక్కడ అమాయక, కుడి? ఏ తరగతి లో ఒక ఆరోన్ ఉంది ఉంటే? లేదా అలిసియా? లేదా ఏ ఇతర పేర్లతో మొదలు A. ఎక్కడ మేము చాలు వెళ్తున్నారు ఆ వ్యక్తి కుడి? నా ఉద్దేశ్యం, ప్రస్తుతం కేవలం మూడు ఉంది పట్టిక ప్రజలు, కాబట్టి ఉండవచ్చు మేము స్థానంలో ఆరోన్ చాలు ఉండాలి సున్నా ఒకటి రెండు మూడు. రైట్, నేను ఇక్కడ ఒక చాలు కాలేదు. కానీ అప్పుడు, మేము లోకి డేవిడ్ ఇన్సర్ట్ చెయ్యడానికి ప్రయత్నించండి ఉంటే ఈ జాబితా, డేవిడ్ గడిచిపోయింది? ఇప్పుడు మా సిస్టమ్ బద్దలు మొదలవుతుంది డౌన్, కుడి? ఇప్పుడు డేవిడ్ ఇక్కడ ముగుస్తుంది ఎందుకంటే ఆరోన్ ఇక్కడ నిజానికి ఉంటే. ఒక కలిగి మరియు కాబట్టి ఇప్పుడు ఈ మొత్తం ఆలోచన మాకు ఇచ్చే శుభ్రంగా డేటా నిర్మాణం స్థిరంగా సమయం ప్రక్షిప్తాలు లేదు నేను ఎందుకంటే స్థిరంగా సమయం, తనిఖీ, OH, damnit, ఎవరైనా ఇప్పటికే ఆలిస్ యొక్క స్థానంలో. నాకు ఈ డేటాను మిగిలిన ప్రోబ్ లెట్ నిర్మాణం, ఉంచాలి ఒక స్థానం కోసం చూస్తున్న ఆరోన్ యొక్క పేరు వలె ఎవరైనా. మరియు కనుక ప్రారంభమైనదని సరళ సమయాన్ని. అంతేకాక, మీరు ఇప్పుడు కావలసిన ఉంటే ఈ డేటాను నిర్మాణం ఆరోన్, మరియు మీరు తనిఖీ, మరియు ఆరన్ యొక్క పేరు ఇక్కడ లేదు. ఆదర్శవంతంగా, మీరు కేవలం ఆరోన్ యొక్క చెబుతా కాదు డేటా నిర్మాణం లో. కానీ మీరు ఉంటే శ్రీకారం చుట్టారు మొదలు ఆరోన్ పేరు ఒక D ఉన్నాయి ఉండాలి లేదా ఒక E, మీరు, చెత్త సందర్భంలో, తనిఖీ కలిగి మొత్తం డేటా నిర్మాణం, ఏదో లోకి devolves ఇది కేసు పట్టిక పరిమాణంలో సరళ. అన్ని కుడి కాబట్టి, నేను ఈ పరిష్కరించడానికి ఉంటాం. ఇక్కడ సమస్య ఏమిటంటే నేను ఉన్నాడు ఈ శ్రేణి లో 26 అంశాలు. నాకు మార్చడానికి వీలు. అయ్యో. బదులుగా, దీని వలన నాకు మార్చడానికి లెట్ మొత్తం పరిమాణం 26, దిగువ గమనించవచ్చు ఇండెక్స్ n మైనస్ 1 మార్చడం కానుంది. 26 మానవుల కోసం స్పష్టంగా చాలా చిన్న ఉంటే పేర్లు, ఎందుకంటే వేల ఉంది ప్రపంచ పేర్లు, యొక్క మనం వీలు 100 లేదా 1000 లేదా 10,000. యొక్క కేవలం ఒక చాలా స్పేస్ కేటాయించుటకు లెట్. బాగా తప్పనిసరిగా తగ్గదని ఆ మేము రెండు ఉండదు సంభావ్యత పేర్లతో ప్రజలు ఒక ప్రారంభమై, కాబట్టి, మీరు ఒక ఉంచాలి ప్రయత్నించండి చేయబోతున్నట్లు ఇప్పటికీ నగర సున్నా వద్ద పేర్లు. వారు ఇప్పటికీ, ఢీకొను చేయబోతున్నామని ఇది మేము ఇంకా చాలు ఒక పరిష్కారం అవసరం అంటే ఆలిస్ మరియు ఆరోన్ మరియు అలిసియా మరియు ఇతర ఒక మరెక్కడా ప్రారంభమయ్యే పేర్లు. కానీ ఈ ఎంత సమస్య ఉంది? సంభావ్యత ఏమిటి అని మీరు ఒక డేటా పోటీలతో కలిగి ఈ వంటి నిర్మాణం? బాగా, నాకు తెలపండి - మేము తిరిగి వచ్చి ఉంటుంది ఇక్కడ ప్రశ్న. మరియు ఎలా మేము వాటిని చూడండి మొదటి దాని పరిష్కార. నాకు ఇక్కడ ఈ ప్రతిపాదన పుల్ అప్ లెట్. మనం పైన వివరించిన, ఒక అల్గోరిథం సరళ అనే సమస్య పరిష్కార మీరు ఇన్సర్ట్ ప్రయత్నించాడు ఉంటే, అనగా ఛేదించి ఈ డేటాను ఇక్కడ ఏదో ఒక హాష్ పట్టిక అంటారు నిర్మాణం, మరియు గది మీరు, అక్కడ వార్తలు నిజంగా డేటా నిర్మాణం ప్రోబ్ తనిఖీ, ఈ అందుబాటులో ఉంది? ఈ అందుబాటులో ఈ అందుబాటులో ఉంది? ఈ అందుబాటులో ఉంది? మరియు అది చివరికి ఉన్నప్పుడు, మీరు ఇన్సర్ట్ మీరు మొదట భావించిన పేరు ఏదో ఒకచోట ఆ స్థానంలో. కానీ చెత్త సందర్భంలో, మాత్రమే స్పాట్ డేటా చాలా దిగువ కావచ్చు నిర్మాణం, అర్రే యొక్క చివరిలో. సో సరళ చెత్త సందర్భంలో, ఛేదించి, ఒక సరళ అల్గోరిథం లోకి devolves పేరు ఆరోన్, అతను గత ఉండటాన్ని జరిగితే ఈ డేటాను నిర్మాణం లో, అతను వాటిని ఈ మొదటి స్థానాన్ని తో ఢీకొను, కానీ అప్పుడు చాలా చివర దురదృష్టం నిలిపివేస్తున్నట్లు. సో ఈ ఒక స్థిరమైనది కాదు మాకు సమయం హోలీ గ్రెయిల్. ఇన్సర్ట్ అంశాలను ఈ విధానం లోకి ఒక డేటా నిర్మాణం ఒక హాష్ అని పట్టిక స్థిరంగా సమయం అనిపించడం లేదు కనీసం సాధారణ విషయంలో. ఇది దీర్ఘ ఏదో లోకి బదిలీ చేయవచ్చు. మేము గుద్దుకోవటం పరిష్కరించడానికి సో వాట్ ఉంటే కొంతవరకు భిన్నంగా? ఇక్కడ మరింత అధునాతనమైన వార్తలు ఇప్పటికీ ఏమి సంప్రదించే ఒక హాష్ పట్టిక అని. మరియు హాష్ ద్వారా, ఒక ప్రక్కన, ఏమి వంటి నేను ఆ సూచిక అర్థం నేను ముందు సూచిస్తారు. కు హాష్ ఏదో ఉంటుంది క్రియ యొక్క ఆలోచన. మీరు హాష్ ఆలిస్ ఒక పేరు, తద్వారా హాష్ విధి, మాట్లాడటానికి, ఒక సంఖ్య తిరిగి ఉండాలి. ఆమె వద్ద చెందిన ఈ సందర్భంలో సున్నా ఆమె వద్ద చెందిన ఉంటే నగర సున్నా, ఒకటి నగర ఒక, మొదలగునవి. నా హాష్ ఫంక్షన్ను ఇప్పటివరకు ఉంది సాధారణ సూపర్ మాత్రమే చూడటం ఒకరి పేరు లో మొదటి అక్షరం. కానీ హాష్ విధి తీసుకుని ఇన్పుట్ డేటా యొక్క కొన్ని ముక్క, ఒక స్ట్రింగ్, ఒక Int, సంసార. మరియు అది సాధారణంగా అనేక ఉమ్మి వేస్తారు. మరియు ఆ సంఖ్య అనేది డేటా మూలకం డేటా నిర్మాణం చెందిన ఒక హాష్ పట్టిక ఇక్కడ ప్రసిద్ధి. సో కేవలం అకారణంగా, ఈ ఒక కొద్దిగా భిన్నమైన సందర్భంలో. ఈ నిజానికి ఒక ఉదాహరణ సూచిస్తుంది పాల్గొన్న పుట్టినరోజులు, పేరు అనేక ఉండవచ్చు నెలలో 31 రోజులు. కానీ ఈ వ్యక్తి ఏమి నిర్ణయించుకుంటారు లేదు ఢీకొన్న సందర్భంలో చేయండి? విషయం ఇప్పుడు, ఒక ఖండించు నష్టం పేర్లు, కానీ పుట్టిన ఘర్షణ రెండు ప్రజలు ఒకే పుట్టినరోజు కలిగి ఉంటే ఉదాహరణకు అక్టోబర్ 2 వ. STUDENT: [వినబడని]. SPEAKER 1: అవును, ఇక్కడ మనం లింక్ జాబితా పెరగడం. కనుక ఇది భిన్నంగా కొద్దిగా కనిపిస్తుంది మేము క్రితం ఆకర్షించింది కంటే. కానీ మేము ఒక శ్రేణి కలిగి కనిపిస్తుంది ఎడమ చేతి వైపు. ఏ కోసం, ఒక ఇండెక్స్ వార్తలు కారణమూ. కానీ ఇప్పటికీ ఒక అర్రే యొక్క. ఇది గమనికలు యొక్క ఒక అర్రే యొక్క. మరియు ప్రతి ఆ అంశాలు ప్రతి, ఈ వృత్తాలు లేదా శ్లాష్లు - స్లాష్ ప్రాతినిధ్యం శూన్య - ఈ యొక్క ప్రతి గమనికలు స్పష్టంగా కు సూచిస్తుంది ఏ డేటా నిర్మాణం? ఒక లింక్ జాబితా. కాబట్టి ఇప్పుడు మేము సామర్థ్యం కలిగి మా ప్రోగ్రామ్ లోకి హార్డ్ కోడ్ పట్టిక పరిమాణాన్ని. ఈ సందర్భంలో, మేము అక్కడ ఎప్పుడూ తెలిసిన ఒక నెల కంటే ఎక్కువ 31 రోజులు. కాబట్టి హార్డ్ 31 వంటి విలువ కోడింగ్ ఆ సందర్భంలో సహేతుకమైన. పేర్లు సందర్భంలో, హార్డ్ కోడింగ్ 26 తగని కాదు ప్రజల పేర్లు మాత్రమే, ఉదాహరణకు, ప్రారంభం Z. ద్వారా ఒక పాల్గొన్న వర్ణమాల మేము డేటా వాటిని అన్ని క్రామ్చే చేయవచ్చు నిర్మాణం చాలా కాలం మేము ఒక వచ్చినప్పుడు, వంటి ప్రమాదం మేము ఇక్కడ పేర్లు చాలు లేదు, మేము బదులుగా లు అనుకుంటున్నాను కాదు తీగలను తమను కానీ అంత ఉదాహరణకు, ఆలిస్ పాయింటర్లు. ఆపై ఆలిస్ మరొక పాయింటర్ ఉండవచ్చు ప్రారంభమయ్యే మరొక పేరు A. మరియు బాబ్ నిజానికి ఇక్కడ వెళ్తాడు. మరియు ప్రారంభమయ్యే మరొక పేరు ఉంది ఉంటే B తో, అతను ఇక్కడ ముగుస్తుంది. అందువలన ఈ మూలకాల యొక్క ప్రతి మేము ఈ ఒక రూపకల్పన ఉంటే పట్టిక రెండు, కొంచెం తెలివిగా - న వస్తాయి - మేము ఈ కొద్దిగా ఎక్కువగా రూపొందించబడింది ఉంటే తెలివిగా, ఇప్పుడు ఒక అనుకూల డేటా అవుతుంది ఎలాంటి పరిమితి ఇక్కడ నిర్మాణం, మీరు చేర్చగలను ఎన్ని అంశాలు న అది లోకి మీరు ఉంటే ఎందుకంటే ఘర్షణ ఆ మంచిది. కేవలం ముందుకు వెళ్ళి, దానికి జోడించు మేము ఒక బిట్ క్రితం చూసిన ఒక లింక్ జాబితా అని పిలుస్తారు. బాగా కేవలం ఒక క్షణం యొక్క విరామం వీలు. ఒక తాకిడి సంభావ్యత ఏమిటి మొదటి స్థానంలో? కుడి, బహుశా నేను ఉండవచ్చు, ఆలోచిస్తున్నాను నేను, ఈ సమస్య ఇంజనీరింగ్ పైగా రెడీ మీరు ఏమి ఎందుకంటే? అవును, నేను ఏకపక్ష తో రావచ్చు వంటి నా తల ఎగువ ఆఫ్ ఉదాహరణలు అల్లిసన్ మరియు ఆరోన్, కానీ వాస్తవానికి, ఒక ఏకరీతి పంపిణీ ఇచ్చిన కొన్ని యాదృచ్ఛిక ప్రక్షిప్తాలు అని ఇన్పుట్లను, ఒక డేటా నిర్మాణాన్ని, నిజంగా ఏమిటి ఒక తాకిడి సంభావ్యత? బాగా మారుతుంది, ఇది వాస్తవానికి వార్తలు సూపర్ అధిక. ఈ నాకు సాధారణీకరించే లెట్ సమస్య ఈ విధంగా. సో n యొక్క ఒక గదిలో CS50 విద్యార్థులు, ఏమిటి సంభావ్యత కనీసం గదిలో రెండు విద్యార్థులు అదే పుట్టినరోజు కలిగి? సో వాట్ ఉంది. కొన్ని హుండ్ - ఇక్కడ అనేక 200, 300 మంది నేడు ఇంట్లో వందలమంది. మీరు ఏమి మమ్మల్ని అడగండి కోరుకున్నాడు కనుక రెండు ప్రజలు సంభావ్యత అదే పుట్టినరోజు కలిగి ఈ గదిలో, మేము ఈ అవ్ట్ దొరుకుతుందని చేయవచ్చు. మరియు నేను రెండు ఉన్నాయి నిజానికి క్లెయిమ్ అదే పుట్టినరోజు తో ప్రజలు. ఉదాహరణకు, ఎవరైనా చేస్తుంది నేడు పుట్టినరోజు కలిగి? నిన్న? రేపు? నేను వెళుతున్నాను వంటి అన్ని కుడి, కాబట్టి అది అనిపిస్తుంది మరింత ఈ 363 లేదా అలా కలిగి సార్లు నిజానికి బయటకు దొరుకుతుందని మేము ఒక ఖండించు కలిగి. లేదా మేము కేవలం గణిత శాస్త్రపరంగా ఈ చేయటానికి బదులుగా మందమైన కంటే ఈ చేయడం. మరియు క్రింది ప్రతిపాదించారు. నేను మేము నమూనా అని ప్రతిపాదించారు కలిగి రెండు ప్రజలు సంభావ్యత 1 సంభావ్యత అదే పుట్టినరోజు కలిగి ఎవరూ యొక్క మైనస్ సంభావ్యత అదే పుట్టినరోజు. సో ఈ పొందుటకు, మరియు ఈ కేవలం ఈ రచన యొక్క ఫాన్సీ మార్గం, గదిలో మొదటి వ్యక్తి, అతను లేదా ఆమె సాధ్యం ఏ ఒకటి చేయవచ్చు పుట్టినరోజులు, సంవత్సరంలో 365 రోజులు ఊహిస్తూ తో వ్యక్తులకు క్షమాపణలు తో ఫిబ్రవరి 29 వ పుట్టినరోజు. సో ఈ గదిలో మొదటి వ్యక్తి ఉచితం పుట్టిన ఏ సంఖ్య కలిగి బయటకు 365 అవకాశాల తద్వారా మేము, 365 ద్వారా 365 విభజించిన చేస్తాను ఇది ఒకటి. గదిలో తదుపరి వ్యక్తి, ఉంటే లక్ష్యం ఘర్షణ నివారించేందుకు ఉంది, మాత్రమే ఎలా తన లేదా ఆమె పుట్టినరోజు కలిగి అనేక విభిన్న సాధ్య రోజుల? 364. సో ఈ వ్యక్తీకరణ రెండవ పదం ముఖ్యంగా మాకు ఆ గణిత చేయడం ఒక సాధ్యం రోజు ఆఫ్ తీసివేయడం ద్వారా. తరువాత రోజు, మరుసటి రోజు, డౌన్ మొత్తం సంఖ్య పక్కన రోజు గదిలో ప్రజలు. అప్పుడు మేము పరిగణలోకి ఉంటే, అప్పుడు ఏమిటి కాదు కలిగి ప్రతిఒక్కరూ సంభావ్యత ఏకైక పుట్టినరోజులు, కానీ మళ్ళీ 1 మైనస్ ఆ, మేము పొందుటకు వ్యక్తీకరణ చాలా సొగసుగా చెయ్యవచ్చు ఇలా. కానీ అది మరింత ఆసక్తికరంగా దృష్టి చూడండి. ఈ x-అక్షం మీద ఉన్న ఒక చార్ట్ ఉంది గదిలో ప్రజల సంఖ్య, పుట్టిన సంఖ్య. Y-అక్షం మీద అవకాశం ఒక తాకిడి, రెండు ప్రజలు అదే పుట్టినరోజు కలిగి. మరియు ఈ రేఖ నుండి తాత్కాలిక ఉంది మీరు 40 ఇష్టం ను వెంటనే విద్యార్థులు, మీరు ఒక 90% సంభావ్యత వద్ద చేస్తున్నామో combinatorically రెండు ప్రజలు లేదా ఎక్కువ కలిగి అదే పుట్టినరోజు. మరియు ఒకసారి మీరు అది 58 ప్రజలు ను ఒక అవకాశం రెండు దాదాపు 100% గదిలో ప్రజలు వెళ్తున్నారు అదే పుట్టినరోజు, అక్కడ అయినప్పటికీ 365 లేదా 366 సాధ్యం బక్కెట్లు, మరియు గదిలో 58 మంది. కేవలం గణాంక మీరు ఇష్టపడే , గుద్దుకోవటం పొందుటకు చిన్న లో ఈ చర్చ ప్రోత్సహిస్తుంది. మేము ఇక్కడ ఫాన్సీ పొందుటకు, మరియు కూడా ఆ ఈ గొలుసులు కలిగి మొదలు, మేము ఇప్పటికీ ఉన్నాము గుద్దుకోవటం కొనసాగుతుందని. ప్రశ్న ప్రార్థిస్తాడు తద్వారా, ఏమిటి ప్రక్షిప్తాలు మరియు తొలగింపులు ఖర్చులలో ఈ వంటి ఒక డేటా నిర్మాణాన్ని? బాగా నాకు ప్రతిపాదించారు వీలు - మరియు నేను తెర తిరిగి వెళ్ళి తెలపండి ఇక్కడ - మేము లో అంశాలు n ఉంటే జాబితా, కాబట్టి మేము ఇన్సర్ట్ చెయ్యడానికి ప్రయత్నిస్తున్న ఉంటే n మూలకాలు, మరియు మేము కలిగి ఎన్ని మొత్తం బకెట్లు? లెట్ యొక్క 31 మొత్తం బకెట్లు చెప్పటానికి పుట్టినరోజులు విషయంలో. ఒక గరిష్ట పొడవు ఏమిటి శక్తివంతమైన ఈ గొలుసులు? మళ్ళీ అవకాశం 31 ఉంది ఉంటే ఇచ్చిన నెలలో పుట్టినరోజులు. మరియు మేము కేవలం ప్రతి ఒక్కరూ గుత్తులగుట చేస్తున్నారు - నిజానికి ఒక తెలివితక్కువదని ఉదాహరణకు. బదులుగా 26 ఏమి యొక్క లెట్. నిజానికి దీని పేర్లు ప్రజలు కనుక తద్వారా ఇవ్వడం, Z ద్వారా ఒక ప్రారంభం మాకు 26 అవకాశాలను. మరియు మేము వంటి ఒక డేటా నిర్మాణం ఉపయోగిస్తున్నారు మేము కలిగి వస్తే మేము ఇప్పుడు చూసిన ఒక, గమనికలు యొక్క ఒక అర్రే, ఇది ప్రతి పేరు ఒక అనుసంధాన జాబితాకు పాయింట్లు మొదటి జాబితా ప్రతి ఒక్కరూ ఉంది పేరు ఆలిస్ తో. రెండవ జాబితా ప్రతి తో ఉంది ప్రారంభ, ఒక ప్రారంభమయ్యే పేరు B తో, మొదలగునవి. ప్రతి అవకాశం పొడవు ఏమిటి ఆ జాబితాలు మేము ఒక nice శుభ్రంగా ఊహించుకుంటే, ఒక Z ద్వారా పేర్లు పంపిణీ మొత్తం డేటా నిర్మాణం అంతటా? డేటా నిర్మాణంలో n ప్రజలు ఉంది వారు చక్కగా అయితే, 26 ద్వారా విభజించబడింది మొత్తం పైగా విస్తరించింది డేటా నిర్మాణం. సో ఈ ప్రతి పొడవు గొలుసులు 26 ద్వారా విభజించబడింది n ఉంది. కానీ పెద్ద O విధానంలో, ఆ ఏమిటి? నిజంగా ఆ ఏమిటి? సో కుడి, నిజంగా కేవలం n యొక్క? మేము గతంలో చెప్పారు చేసిన ఎందుకంటే, విసుగును తెలిపే శబ్దం మీరు 26 ద్వారా విభజించి ఆ. అవును, వాస్తవానికి ఇది వేగంగా ఉంది. కానీ సిద్ధాంతంలో ప్రాథమికంగా కాదు అన్ని వేగవంతమైన. కాబట్టి మేము అన్ని చాలా అనిపించడం లేదు దగ్గరగా ఈ పవిత్ర గ్రెయిల్ కు. నిజానికి, ఈ కేవలం సరళ సమయం. హెక్, ఈ సమయంలో, ఎందుకు మేము లేదు కేవలం ఒక భారీ లిస్ట్ లింక్డ్ ఉపయోగించాలి? ఎందుకు మేము కేవలం ఒక భారీ వాడవద్దు పేర్లు నిల్వ శ్రేణి గదిలో ప్రతి ఒక్కరూ? బాగా, ఏదో ఇప్పటికీ ఉంది ఒక హాష్ పట్టిక గురించి సమగ్ర? బలవంతపు ఏదో ఇప్పటికీ ఉంది ఒక డేటా నిర్మాణం గురించి ఈ కనిపిస్తుంది? ఈ. STUDENT: [వినబడని]. SPEAKER 1: ఇది కేవలం కుడి, మరియు మరలా ఉంటే ఒక సరళ సమయం అల్గోరిథం, మరియు ఒక సరళ సమయం డేటా నిర్మాణం, నేను చేయండి కేవలం ఒక పెద్ద ప్రతి ఒక్కరూ యొక్క పేరు నిల్వ అర్రే, లేదా ఒక పెద్ద లింక్ జాబితాలో? మరియు చాలా కష్టం CS స్టాప్ మేకింగ్ అది ఉండాలి కంటే? కూడా, ఈ గురించి సమగ్ర ఏమిటి నేను దాన్ని గీయబడిన అయితే? STUDENT: [వినబడని]. SPEAKER 1: ప్రక్షిప్తాలు కాదు? ఇకపై ఖరీదైన. సో ప్రక్షిప్తాలు సమర్థవంతంగా ఇప్పటికీ అనుకొనుట , స్థిరంగా సమయం కూడా మీ డేటా నిర్మాణం, ఈ వంటి ఒక వరుస కనిపిస్తుంది గమనికలు, వద్ద గురిపెట్టి, ఇందులో ప్రతి ఒక్కటి శక్తివంతమైన అనుబంధ జాబితా. ఎలా మీరు స్థిరమైన సాధించేది పేర్లు సమయం చొప్పించడం? కుడి, ముందు అది కర్ర? మేము నుండి ఒక రూపకల్పన ధ్యేయం త్యాగం ఉంటే ముందు మేము ఉంచాలని కోరుకున్నాడు పేరు ప్రతి ఒక్కరూ యొక్క పేరు, ఉదాహరణకు, క్రమబద్ధీకరించిన లేదా వేదికపై సంఖ్యల అన్ని, క్రమబద్ధీకరించబడింది మేము ఒక కలిగి ఊహించు క్రమబద్ధీకరించనిది లింక్ జాబితా. ఇది మాత్రమే, మాకు ఒకటి లేదా రెండు దశలు ఖర్చవుతుంది బెన్ మరియు బ్రియాన్ విషయంలో ఇష్టం ముందు వద్ద ఒక మూలకం ఇన్సర్ట్ జాబితా ప్రారంభంలో. మేము అన్ని సార్టింగ్ లక్షపెట్టరు కనుక తో మొదలయ్యే పేర్లు A లేదా అన్ని B ప్రారంభమయ్యే పేర్లు, మేము ఇంకా స్థిరంగా సమయం చొప్పించడం సాధించడానికి. ఇప్పుడు అలైస్ లేదా బాబ్ లేదా ఏ పేరు చూసేటప్పుడు సాధారణంగా ఇప్పటికీ ఏమిటి? ఇది 26 ద్వారా విభజించబడింది n యొక్క పెద్ద O, వార్తలు ప్రతి ఒక్కరూ ఒకే ఎక్కడ ఆదర్శ కేసు పంపిణీ, వంటి అనేక ఒక యొక్క ఇక్కడ Z యొక్క బహుశా ఇది ఉన్నాయి అవాస్తవ. కానీ ఇప్పటికీ సరళ వార్తలు. కానీ ఇక్కడ, మేము పాయింట్ తిరిగి వచ్చి ఉండటం asymptotic సంజ్ఞామానం సిద్ధాంతపరంగా నిజమైన. కానీ నిజ ప్రపంచంలో, నేను ప్రకటిస్తున్నారు నా కార్యక్రమం 26 సార్లు ఏదో ఒకటి చెయ్యాలి దీని కార్యక్రమం మీదే, కంటే వేగంగా మీరు ఉపయోగించి ఇష్టపడతారు వెళ్తున్నారు? యువర్స్ లేదా గని, ఇది 26 రెట్లు వేగంగా? వాస్తవికంగా, దీని వ్యక్తి 26 రెట్ల, కూడా సిద్ధాంతపరంగా ఉంటే మా అల్గోరిథంలు అదే అమలు సమయం నడుస్తున్న asymptotic. నాకు వేరే ప్రతిపాదన లెట్ పూర్తిగా పరిష్కారం. మరియు ఈ మీ మనసును రగిలించు లేదు ఉంటే, మేము డేటా నిర్మాణాలు లేదు. సో ఈ ఒక trie ఉంది - ఒక పెద్ద పేరు రకం. ఇది పదం రిట్రీవల్స్ నుండి వస్తుంది, మరియు ఎందుకంటే trie, t-r-i-ఇ, ఉన్నట్లు కోర్సు తిరిగి trie వంటి ధ్వనులు. కానీ ఆ చరిత్ర వార్తలు పదం trie యొక్క. సో ఒక trie, నిజానికి చెట్టు యొక్క రకం మరియు అది కూడా ఆ పదం ఒక నాటకం యొక్క. మరియు మీరు చాలా ఇది చూడండి కాదు అయినప్పటికీ ఈ విజువలైజేషన్ తో, ఒక trie ఒక చెట్టు ఒక కుటుంబం చెట్టు వంటి నిర్మించబడుతుంది టాప్ మరియు మా వద్ద ఒక పూర్వీకులు మునుమనవళ్లను మరియు గొప్ప మునుమనవళ్లను యొక్క వంటి అడుగున ఆకులు. కానీ ఒక trie ప్రతి నోడ్ ఒక శ్రేణి. మరియు అది వ్యూహంలో వార్తలు - మరియు లెట్స్ ఒక క్షణం సరళంగా - ఇది ఒక అర్రే, ఈ సందర్భంలో, పరిమాణం 26, పేరు ప్రతి నోడ్ మళ్ళీ పరిమాణాన్ని శ్రేణి 26, పేరు ఆ జేరోయేత్ మూలకం అర్రే ఒక సూచిస్తుంది మరియు చివరి ప్రతి లో మూలకం అర్రే Z. ప్రాతినిధ్యం నేను, అప్పుడు, ప్రతిపాదించాయి ఈ డేటాను ఒక trie అని పిలుస్తారు నిర్మాణం, ఉంటుంది పదాలు నిల్వ చేయడానికి కూడా ఉపయోగిస్తారు. మేము నిల్వ ఎలా ఒక క్షణం క్రితం చూసింది పదాలు, లేదా ఈ సందర్భంలో పేర్లు, మరియు మేము , మేము సంఖ్యలను నిల్వ ఎలా ముందు చూసింది కానీ మేము పేర్లు లేదా తీగలను దృష్టి ఉంటే ఇక్కడ, ఆసక్తికరంగా ఏమి గమనించవచ్చు. నేను పేరు మాక్స్వెల్ చెప్పడము ఈ డేటాను నిర్మాణం లోపల. ఎక్కడ మీరు మాక్స్వెల్ చూస్తారు? STUDENT: [వినబడని]. SPEAKER 1: ఎడమ. సో ఈ డేటాను ఆసక్తికరమైన ఏమిటి నిర్మాణం కాకుండా స్టోర్ కంటే స్ట్రింగ్ M-A-X-W-E-L-L బాక్ స్లాష్ సున్నా, అన్ని పక్కపక్కన, మీరు బదులుగా ఏమి అనుసరిస్తున్నారు. ఈ డేటాను నిర్మాణం వంటి trie ఉంటే, దీని నోడ్స్ యొక్క ప్రతి, మళ్ళీ ఒక శ్రేణి మరియు మీరు మాక్స్వెల్ నిల్వ అనుకుంటున్నారా, మీరు మొదటి ఇండెక్స్ మరియు కాబట్టి రూట్ నోడ్, ,, ఎత్తైన నోడ్ మాట్లాడటం కుడి, కాబట్టి నగర M వద్ద సుమారు మధ్యలో. మరియు అక్కడ నుండి, మీరు ఒక అనుసరించండి పిల్లల నోడ్లకు పాయింటర్, మాట్లాడటానికి. సో కుటుంబం చెట్టు అర్థంలో, మీరు కిందకి అది అనుసరించండి. మరియు మరొక నోడ్ మీరు దారి ఇది అక్కడ ఎడమ, న మరొక వ్యూహం. ఆపై మీరు, మాక్స్వెల్ నిల్వ అనుకుంటే మీరు సూచించే పాయింటర్ కనుగొనేందుకు A, ఇది ఇక్కడ ఈ ఒకటి. అప్పుడు మీరు తదుపరి నోడ్ వెళ్ళండి. మరియు ప్రకటన - ఈ ఎందుకు చిత్రం యొక్క కొద్దిగా మోసగించడాన్ని - ఈ నోడ్ చిన్న సూపర్ చూడండి. కానీ ఈ యొక్క కుడి Y మరియు Z. ఉంది ఇది కేవలం రచయిత స్తంభించిపోయింది ఉంది చిత్రం కాబట్టి మీరు నిజంగానే విషయాలు చూడండి. లేకపోతే ఈ చిత్రాన్ని అద్భుత వెడల్పులో. అప్పుడు నగర X లోకి కాబట్టి ఇప్పుడు మీరు ఇండెక్స్, అప్పుడు అప్పుడు W, అప్పుడు E, L, L. ఏమిటి ఈ ఉత్సుకత? బాగా, మేము కొత్త ఈ విధమైన ను ఉపయోగిస్తున్నట్లయితే ఒక ఒక స్ట్రింగ్ నిల్వ ఉండడం వల్లేనని డేటా నిర్మాణం, మీరు ఇప్పటికీ అవసరం తప్పనిసరిగా డేటా లో తనిఖీ ఒక పదం ఇక్కడ ముగుస్తుంది నిర్మాణం. ఇతర పదాలు, ఈ నోడ్స్ యొక్క ప్రతి ఏదో గుర్తు అని మేము నిజానికి తరువాత ఈ పాయింటర్లు అన్ని మరియు కొద్దిగా వదిలేస్తున్నారు ఈ ఇక్కడ దిగువన బ్రెడ్ చిన్న ముక్క M-A-X-W-E-L-L సూచించడానికి నిర్మాణం నిజానికి ఈ డేటాను నిర్మాణం లో. కాబట్టి మేము ఈ క్రింది విధంగా దీన్ని ఉండవచ్చు. మేము కేవలం చిత్రంలో నోడ్స్ యొక్క ప్రతి రంపపు ఒక, పరిమాణం 27 వ్యూహం ఉంది. P ఆరు సెట్ ఎందుకంటే, ప్రస్తుతం 27 వార్తలు మేము నిజానికి, మీరు అపాస్ట్రఫీని ఇస్తాము కాబట్టి మేము ఓ 'రియల్లి వంటి పేర్లు కలిగి ఉంటుంది సంగ్రహంగా రాయడానికి మరియు ఇతరులు. కానీ అదే ఆలోచన. ఆ అంశాలు ప్రతి ఒక struct కు శ్రేణి పాయింట్లు నోడ్, కాబట్టి కేవలం ఒక నోడ్. సో ఈ చాలా తెస్తుంది మా లింక్ జాబితా. ఆపై నేను ఒక బూలియన్ కలిగి, ఇది నేను చేస్తాము పదం కాల్, ఇది కేవలం అవతరిస్తుంది ఒక పదం ఈ వద్ద ముగుస్తుంది నిజమైన ఉంటే చెట్టు నోడ్. ఇది సమర్థవంతంగా కొద్దిగా ప్రాతినిధ్యం త్రిభుజం మేము ఒక క్షణం క్రితం చూసింది. ఒక పదం ఆ కణుపు వద్ద ముగుస్తుంది కనుక చెట్టు, ఆ పదం రంగంలో, నిజమైన ఉంటుంది ఇది సందర్భానుసారంగా ఆఫ్ తనిఖీ, లేదా మేము అవును అక్కడ, ఈ త్రిభుజం గీయడం చేస్తున్నారు ఇక్కడ ఒక పదం. సో ఈ ఒక trie ఉంది. మరియు ఇప్పుడు ప్రశ్న, ఏమిటి దాని సమయం రన్? ఇది n యొక్క పెద్ద O ఉంది? అది వేరే విషయం? బాగా, మీరు ఈ డేటాను పేర్లు n ఉంటే నిర్మాణం, మాక్స్వెల్ కేవలం ఒకటిగా వాటిని, రన్నింగ్ సమయం ఏమిటి ఇన్సర్ట్ లేదా మాక్స్వెల్ కనుగొనడంలో? నడుస్తున్న సమయం ఏమిటి మాక్స్వెల్ ప్రవేశపెట్టే? N ఇతర పేర్లు ఉన్నాయి ఉంటే ఇప్పటికే పట్టికలో? అవును? STUDENT: [వినబడని]. SPEAKER 1: అవును, అది పొడవు వార్తలు పేరు యొక్క, కుడి? M-a-x-w-ఇ-l-l కాబట్టి అది ఇలా అనిపిస్తుంది కాబట్టి అల్గోరిథం ఏడు పెద్ద O ఉంది. ఇప్పుడు, కోర్సు యొక్క, పేరు పొడవు మారుతుంది. దీనికి ఒక చిన్న పేరు యొక్క. దీనికి ఒక పెద్ద పేరుకు వార్తలు. కానీ ఇక్కడ కీ ఉంది అని అది స్థిరమైన సంఖ్య యొక్క. మరియు దీనికి, నిజంగా స్థిర కాదు కానీ దేవుడు, వాస్తవికంగా ఉంటే, ఒక లో నిఘంటువు, కొన్ని పరిమితి బహుశా ఉంది ఒక అక్షరాల సంఖ్య ఒక ప్రత్యేక దేశం లో వ్యక్తి యొక్క పేరు. అందువలన మేము పొందవచ్చు విలువ ఒక స్థిరాంకం. నేను ఏమి లేదు. ఇది బహుశా కంటే పెద్ద వార్తలు మేము అది భావిస్తున్నాను. కొన్ని మూలలో ఎల్లప్పుడూ ఉంది ఎందుకంటే ఒక వెర్రి దీర్ఘ పేరు సందర్భంలో. సో యొక్క ఇది k కాల్ చెయ్యనివ్వండి, కానీ ఇప్పటికీ ఒక వార్తలు స్థిరంగా బహుశా, ప్రతి ఎందుకంటే కనీసం ఒక లో, ప్రపంచంలో పేరు ప్రత్యేక దేశం, ఆ పొడవు లేదా చిన్న, కాబట్టి అది స్థిరంగా ఉంది. కానీ మేము చెప్పారు చేసినప్పుడు ఏదో పెద్దది ఒక స్థిరమైన విలువగా ఓ, ఏమి లేదని నిజంగా సమానమైన? నిజంగా అదే విషయం స్థిరంగా సమయం మాట్లాడుతూ. ఇప్పుడు మేము, మోసం రకం ఉన్నాము కుడి? మేము కొన్ని సిద్ధాంతం పరపతి రకం ఉన్నాము ఇక్కడ బాగా, k యొక్క ఆర్డర్ అని చెప్పటానికి నిజంగా కేవలం ఒక యొక్క ఆర్డర్ మరియు స్థిరంగా సమయం. కానీ అది నిజంగా ఉంది. ఇక్కడ కీ అంతర్దృష్టి ఎందుకంటే ఆ మేము ఈ లో ఇప్పటికే పేర్లు n ఉంటే డేటా నిర్మాణం, మరియు మేము చొప్పించు మాక్స్వెల్, ఇది మాకు సమయం మొత్తం అన్ని ప్రభావిత వద్ద మాక్స్వెల్ ఇన్సర్ట్ ఎన్ని ఇతర ప్రజలు డేటా నిర్మాణంలో ఉన్నాయి? అనిపించడం లేదు. నేను ఈ ఒక బిలియన్ మరిన్ని అంశములు కలిగి ఉంటే అప్పుడు trie, మరియు, మాక్స్వెల్ ఉంది ఇన్సర్ట్ అతడు ప్రభావితం? నం ఆ రోజు డేటా ఏ భిన్నంగా మేము అక్కడ ఇప్పటివరకు చూసిన నిర్మాణాలు మీ అల్గోరిథం నడుస్తున్న సమయం ఎంత పూర్తిగా స్వతంత్ర విషయం లేదా ఇప్పటికే కాదు ఆ సమాచార నిర్మాణం. ఈ దక్కుతుంది మరియు కనుక మీరు ఇప్పుడు ఒక ఉంది p సెట్ ఆరు, అవకాశం ఇది అవుతుంది మళ్ళీ మీ సొంత అమలు కలిగి 150,000 చదవడం స్పెల్ చెకర్, పదాలు, ఉత్తమ ఆ నిల్వ తప్పనిసరిగా స్పష్టంగా లేదు. మరియు నేను కనుగొనేందుకు ఆశపడ్డాడు చేసిన అయితే హోలీ గ్రెయిల్, నాదగ్గర ఒక trie పేర్కొన్నారు. నిజానికి, ఒక హాష్ పట్టిక బాగా మారవచ్చు చాలా సమర్థవంతంగా ఉండాలి నిరూపించడానికి. కానీ ఆ కేవలం ఉన్నాయి - కేవలం నిర్మాణ నిర్ణయాలు ఒకటి మీరు తయారు చేసుకోవాలి. కానీ మూసివేయడం లో యొక్క తీసుకుందాం 50 లేదా సెకన్లు ఉంది ఏమి వద్ద ఒక పీక్ తీసుకోవాలని ముందుకు వారం తరువాత మరియు మేము బదిలీ దాటి ఈ కమాండ్ లైన్ నుండి విషయాలు వెబ్ ప్రపంచంలో సి కార్యక్రమాలు ఉంటే ఆధారిత మరియు PHP వంటి భాషలు మరియు జావాస్క్రిప్ట్ మరియు ఇంటర్నెట్ కూడా, మీరు ఇది HTTP వంటి ప్రోటోకాల్లు సంవత్సరాల మంజూరు కోసం తీసుకున్న ప్రతి చాలా ఇప్పుడు, మరియు టైప్ రోజు, బహుశా, లేదా చూసిన. మరియు మేము చర్మము తిరిగి ప్రారంభించగలరు ఏ పొరలు ఇంటర్నెట్ ఉంది. మరియు కోడ్ అదే అంతర్లీనంగా నేటి టూల్స్. ఇక్కడ ఈ టీజర్ కాబట్టి 50 సెకన్లు. నేను మీరు నెట్ యుద్ధవీరులు ఇవ్వాలని. [వీడియో ప్లేబ్యాక్] అతను ఒక సందేశం వచ్చింది. ఒక ప్రోటోకాల్ అన్ని అతని సొంత. అతను, క్రూరమైన ఫైర్ యొక్క ఒక ప్రపంచ వచ్చింది uncaring రౌటర్లు, మరియు ప్రమాదాల చాలా మరణం కంటే అధ్వాన్నంగా. అతను వేగమైనది. అతను బలమైన. అతను TCPIP వార్తలు. మరియు అతను మీ చిరునామా సంపాదించి. నెట్ యుద్ధవీరులు. [END వీడియో ప్లేబ్యాక్] SPEAKER 1: అంటే ఎలా ఇంటర్నెట్ వచ్చే వారం నాటికి పని చేస్తాయి.