SPEAKER 1: అన్ని కుడి, కాబట్టి ఈ ఉంది CS50 ఈ వారం ఐదు ముగింపు. మరియు చివరిసారి గుర్తు మేము ప్రారంభించారు ఫ్యాన్సియెర్స్ డేటా చూడటం పరిష్కరించడానికి ప్రారంభించారు నిర్మాణాలు పరిచయం ప్రారంభించారు సమస్యలు, కొత్త సమస్యలు, కానీ ఈ కీ త్రెడింగ్ యొక్క విధమైన ఉంది మేము నోడ్ నుండి నోడ్ ప్రారంభించారు. కాబట్టి కోర్సు యొక్క ఈ ఒక ఒక్కొక్కటిగా లింక్ జాబితా. మరియు ఒక్కొక్కటిగా, లింక్డ్ నేను కేవలం ఒక ఉంది అర్థం ఆ నోడ్స్ ప్రతి మధ్య థ్రెడ్. మీరు ఫ్యాన్సియెర్స్ చేయవచ్చు హాజరవుతారు రెట్టింపైన లింక్ జాబితాలు వంటి విషయాలు మీరు ఒక బాణం వీరికి , రెండు దిశలలో వెళుతున్న ఇది కొన్ని సామర్థ్యాలను తో సహాయపడుతుంది. కానీ ఈ సమస్య పరిష్కారమైంది? ఈ ఏమి సమస్యను పరిష్కరించడానికి లేదు? మేము సోమవారం ఎందుకు పట్టించుకోను? ఎందుకు సిద్ధాంతంలో, మేము సోమవారం శ్రద్ధ లేదు? ఇది ఏమి చేస్తుంది? ప్రేక్షకులు: మేము డైనమిక్ పరిమాణాన్ని మార్చవచ్చు. SPEAKER 1: సరే, మేము చేయగలరా డైనమిక్ పరిమాణాన్ని. Well మీరు రెండు చేసారు. కాబట్టి మీరు డైనమిక్ ఈ పరిమాణాన్ని మార్చవచ్చు డేటా నిర్మాణం, వ్యూహం అయితే, రీకాల్, మీరు ఒక తెలుసుకోవలసి ఉంటుంది ఊహాకల్పిత ఎంత ఖాళీ మీకు కావలసిన మరియు మీరు ఒక చిన్న మరింత అవసరం ఉంటే స్పేస్, మీరు అదృష్టం రకమైన ఉన్నాము. మీరు ఒక సరికొత్త వ్యూహం సృష్టించడానికి కలిగి. మీరు అన్ని తరలించడానికి మీ నుండి ఇతర డేటా చివరికి పాత శ్రేణి విడిపించేందుకు మీరు చెయ్యవచ్చు, మరియు అప్పుడు కొనసాగితే. ఇది కేవలం చాలా ఖరీదైన అనిపిస్తుంది మరియు చాలా అసమర్థంగా మరియు నిజానికి ఇది ఉంటుంది. కానీ ఈ అన్ని మంచి కాదు. మేము ఒక ధర చెల్లించడానికి, ఒక ఏమిటి మరింత స్పష్టమైన ధరలు మేము ఒక లింక్ జాబితా ఉపయోగించి చెల్లించడానికి? ప్రేక్షకులు: మేము ఉపయోగించడానికి కలిగి ప్రతి ఒక కోసం స్థలమును రెండింతలు. SPEAKER 1: అవును, కాబట్టి మేము అవసరం కనీసం రెండుసార్లు ఎక్కువ స్థలం. నిజానికి, నేను గ్రహించి ఈ చిత్రం యొక్క కూడా కొద్దిగా తప్పుదారి, ఎందుకంటే ఆధునిక చాలా CS50 IDE లో కంప్యూటర్లు, ఒక పాయింటర్ యొక్క చిరునామా లేదా నిజానికి నాలుగు బైట్లు కాదు. ఇది చాలా తరచుగా ఈ వార్తలు రోజులు ఎనిమిది బైట్లు, ఇది దిగువన అంటే చాలా వాస్తవానికి అక్కడ దీర్ఘ చతురస్రాలు రెండుసార్లు వంటి ఒకరకమైన నేను డ్రా చేసిన ఏమి పెద్ద, మీరు మూడు సార్లు ఉపయోగిస్తున్నారు అంటే మేము లేకపోతే ఉండవచ్చు ఎక్కువ స్థలం. ఇప్పుడు అదే సమయంలో, మేము ఉన్నాము ఇప్పటికీ బైట్లు మాట్లాడటం, కుడి? మేము తప్పనిసరిగా మాట్లాడటం లేదు మెగాబైట్ల లేదా గిగాబైట్ల, ఈ డేటా తప్ప నిర్మాణాలు పెద్ద పొందండి. అందువలన నేడు మేము పరిగణలోకి ప్రారంభం మేము డేటా అన్వేషించడానికి ఎలా మరింత సమర్ధవంతంగా లో ఉంటే నిజానికి డేటా పెద్ద పొందుతాడు. కానీ యొక్క canonicalize ప్రయత్నించండి తెలియజేయండి మొదటి కార్యకలాపాల మీరు ఈ న చేయగల డేటా నిర్మాణాలు రకాల. ఒక లింక్ వంటి కాబట్టి ఏదో జాబితాలో సాధారణంగా మద్దతు కార్యకలాపాలు తొలగించండి ఇష్టం, ఇన్సర్ట్, మరియు శోధించండి. నేను ఆ ద్వారా ఏమిటి? కేవలం ఆ సాధారణంగా అర్ధం ప్రజలు అనుబంధ జాబితా ఉపయోగించి ఉంటే, వారు లేదా ఎవరో అమలు చేసింది తొలగింపు, చొప్పించు వంటి విధులు, మరియు శోధన, కాబట్టి మీరు నిజంగా ఏదో డేటా నిర్మాణం ఉపయోగకరమైన. కాబట్టి యొక్క ఒక త్వరిత వీక్షణ తీసుకుందాం మేము అమలు ఎలా ఒక లింక్ జాబితా కోసం కొన్ని కోడ్ అనుసరిస్తుంది. కాబట్టి ఈ కేవలం కొన్ని సి కోడ్, కూడా ఒక పూర్తి కార్యక్రమం నేను నిజంగా త్వరగా కొరడాతో. ఇది పంపిణీలో ఆన్లైన్ కాదు కోడ్, అది నిజంగా అమలు లేదు ఎందుకంటే. కానీ నేను చేసిన గమనిస్తారు ఒక వ్యాఖ్యను చెప్పాడు, డాట్ డాట్ డాట్, ఏదో అక్కడ, అక్కడ, ఏదో డాట్ డాట్ డాట్. మరియు లెట్స్ కేవలం చూద్దాం జ్యుసి ప్రాంతాల్లో ఏమిటో. కాబట్టి లైన్ మూడు, ఈ ఇప్పుడు గుర్తుచేసుకున్నారు మేము గత ఒక నోడ్ ప్రకటిస్తూ ప్రతిపాదించారు సమయం, ఆ దీర్ఘచతురస్రాకార వస్తువుల. ఇది మేము N పిలుస్తాను ఒక పూర్ణాంకానికి ఉంది కానీ మేము ఏదైనా కాల్ కాలేదు, ఆపై ఒక struct నోడ్ స్టార్ తదుపరి అనే. మరియు కేవలం ఆ రెండవ స్పష్టమైన ఉండాలి పంక్తి, లైన్ ఆరు, ఆ ఏమిటి? ఇది మాకు ఏమి ఉంది? అది ఖచ్చితంగా మరింత కనిపిస్తుంది ఎందుకంటే మన మామూలు వేరియబుల్స్ కంటే నిగూఢ. ప్రేక్షకులు: ఇది ఒక కదులుతాయో ఉంటుంది. SPEAKER 1: ఇది ఒకటి కంటే తరలించడానికి ఉంటుంది. మరియు, మరింత ఖచ్చితమైన ఉండాలి అది చిరునామా నిల్వ చేస్తుంది అని అర్థం ఆ నోడ్ యొక్క అర్థ వివరణ తదుపరి దానికి, కుడి? కనుక ఇది మాత్రం కాదు తప్పనిసరిగా ఏదైనా తరలించడానికి. ఇది కేవలం జరగబోతోంది ఇది ఒక విలువ నిల్వ చిరునామా చేస్తాడు కొన్ని ఇతర నోడ్ యొక్క మేము struct చెప్పారు చేసిన ఎందుకు ఆ నోడ్ స్టార్, స్టార్ సూచిస్తుంది ఒక పాయింటర్ లేదా ఒక చిరునామా. OK, కాబట్టి ఇప్పుడు మీరు మేము కలిగి ఊహించుకుంటే మాకు అందుబాటులో ఈ N, మరియు లెట్స్ వేరొకరి భావించండి పూర్ణాంకాల యొక్క మొత్తం బంచ్ చేర్చబడ్డ ఒక లింక్ జాబితా. మరియు ఆ లింక్ జాబితా కొన్ని పాయింట్ ద్వారా చూపారు ఒక వేరియబుల్ అని జాబితా ఒక ప్రామాణికంగా ఇక్కడ జారీ, ఎలా నేను లైన్ గురించి ఎలా గో 14 శోధన అమలు? ఇతర మాటలలో, నేను అమలు చేస్తున్నాను ఉంటే దీని ప్రయోజనం జీవితంలో ఫంక్షన్ ఒక పూర్ణాంకానికి మరియు పడుతుంది ఉంది ఒక లింక్ జాబితా ప్రారంభించి, ఆ లింక్ జాబితాకు ఒక పాయింటర్ ఉంది. మొదటి వంటి, నేను డేవిడ్ ఎవరు అనుకుంటున్నారు మా స్వచ్ఛంద, సోమవారం ఉంది అతను వద్ద గురిపెట్టి జరిగినది మొత్తం లింక్ జాబితా మేము అక్కడ చేస్తున్నారు అయితే ఉంది డేవిడ్ ఇక్కడ మా వాదన వంటి. ఎలా మేము ఈ జాబితా నదీ ప్రవాహానికి అడ్డంగా ప్రయాణం గురించి గో? Well, అది అవుతుంది ఆ అయినప్పటికీ గమనికలు, మాకు ఇప్పుడు చాలా కొత్త మేము చాలా ఈ చేయవచ్చు సూటిగా. నేను ముందుకు వెళ్ళడానికి వెళుతున్న మరియు ఒక తాత్కాలిక వేరియబుల్ డిక్లేర్ సాంప్రదాయకంగా కేవలం అన్నారు కు, PTR పాయింటర్ అంటారు, లేదా కానీ మీరు మీకు కావలసిన ఏదైనా కాల్ కాలేదు. నేను ప్రారంభించడం వెళుతున్న అది జాబితాలో ప్రారంభాన్ని. కాబట్టి మీరు రకమైన ఈ ఆలోచించవచ్చు నాకు గురువుగా ఇతర రోజు, రకమైన ఎవరైనా వద్ద గురిపెట్టి వాలంటీర్లుగా మా మానవులు మధ్య. నేను ఒక తాత్కాలిక వేరియబుల్ ఉన్నాను ఇదే వద్ద గురిపెట్టి మా యాదృచ్చికంగా అనే స్వచ్ఛంద డేవిడ్ కూడా ఎత్తి చూపారు జరిగినది. ఇప్పుడు పాయింటర్ అయితే శూన్య కాదు, ఎందుకంటే రీకాల్ ఆ శూన్య కొన్ని ప్రత్యేక కాపలాదారుడు విలువ , జాబితా చివరకు కొలతను గుర్తించడము నేను వద్ద గురిపెట్టి కాదు కాబట్టి మా చివరి స్వచ్ఛంద వంటి గ్రౌండ్ ఉంది, యొక్క ముందుకు తెలియజేయండి మరియు క్రింది వాటిని. పాయింటర్ ఉంటే మరియు ఇప్పుడు నేను రకమైన కావలసిన మేము విద్యార్థి తో చేసిన పనిని చేయడానికి నిర్మాణం పాయింటర్ డాట్ తదుపరి ఉంటే సమానం పాయింటర్ డాట్ N, సమానం కాకుండా ఉంటే వేరియబుల్ N సమానం లో ఆమోదం చెయ్యబడిన వాదన, అప్పుడు నేను ముందుకు వెళ్లాలని మీరు మరియు నిజమైన తిరిగి సే. నేను లోపల సంఖ్య N కనుగొన్నారు నా లింక్ జాబితా నోడ్స్ యొక్క ఒక. కానీ డాట్ ఇకపై ఈ సందర్భంలో పనిచేస్తుంది, పాయింటర్, PTR, ఎందుకంటే నిజానికి ఒక పాయింటర్, ఒక చిరునామా, మేము నిజంగా అద్భుతంగా చెయ్యవచ్చు సింటెక్స్ చివరకు ఒక ముక్క ఉపయోగించడానికి తయారీలను ఆ రకమైన తక్షణ చైతన్యాన్ని మరియు నిజానికి నుండి వెళ్ళి అంటే, ఇక్కడ ఒక బాణం ఉపయోగించండి అక్కడ పూర్ణాంక ఆ చిరునామా. కనుక ఇది చాలా పోలి ఉంది డాట్ ఆపరేటర్లు ఆత్మ కానీ పాయింటర్ ఒక పాయింటర్ కాదు ఎందుకంటే మరియు వాస్తవ struct కూడా, మేము కేవలం బాణం ఉపయోగించండి. కనుక ప్రస్తుత నోడ్ ఆ నేను తాత్కాలిక వేరియబుల్, వద్ద గురిపెట్టి చేస్తున్నాను N, నేను ఏమి అనుకుంటున్నారు లేదు? Well, నా మానవ వాలంటీర్లతో మేము ఇతర రోజు ఇక్కడ ఉందని, నా మొదటి మానవ ఒకడు నేను కాదు ఉంటే కావలసిన, మరియు ఉండవచ్చు రెండవ మానవ కాదు మీరు ఒకటి, మరియు మూడవ, నేను కదిలే భౌతికంగా ఉంచాలని అవసరం. ఇలా ఎలా నేను ఒక జాబితా ద్వారా దశను లేదు? మేము ఒక అర్రే కలిగి ఉన్నప్పుడు, మీరు కేవలం నేను ప్లస్ ప్లస్ వంటి చేసింది. కానీ ఈ సందర్భంలో, అది సంతృప్తి పరుస్తుంది తదుపరి, పాయింటర్, గెట్స్, పాయింటర్ చేయండి. ఇతర మాటలలో, తదుపరి రంగంలో ఎడమ చేతులలో అన్ని వంటిది సోమవారం మా మానవ వాలంటీర్లు కొన్ని ఇతర నోడ్ సూచించడానికి ఉపయోగించడం ఉన్నాయి. ఆ వారి తదుపరి పొరుగు వారు. నేను ఈ జాబితా ద్వారా దశను అనుకుంటే, నేను ఇకపై నేను ప్లస్ ప్లస్ కాదు నేను బదులుగా చెప్పటానికి కలిగి నేను, పాయింటర్, అన్నారు తదుపరి రంగంలో సంసార సమం, తదుపరి రంగంలో, తదుపరి రంగంలో ఉంది ఆ ఎడమ చేతులు అన్ని క్రింది మేము వేదిక పాయింటింగ్ ఉందని కొన్ని తర్వాత విలువలకు. నేను ద్వారా వస్తే ఆ మొత్తం మళ్ళా, చివరకు, నేను చేయడంలో శూన్య హిట్ దొరకలేదు N ఇంకా, నేను కేవలం తప్పుడు తిరిగి. మరలా, మేము ఇక్కడ చేస్తున్నా అన్ని, ఒక క్షణం క్రితం చిత్రాన్ని ప్రకారం, వద్ద గురిపెట్టి ప్రారంభమైనదని బహుశా జాబితా ప్రారంభం. ఆపై నేను తనిఖీ విలువ ఉంది నేను తొమ్మిది సమానంగా చూస్తున్నాను? అలా అయితే, నేను నిజమైన తిరిగి మరియు నేను పూర్తయింది. లేకపోతే, నా చేతిలో అప్డేట్ AKA పాయింటర్, అభిప్రాయపడుతున్నారు తదుపరి బాణం యొక్క స్థానంలో, మరియు తరువాత బాణం యొక్క నగర, మరియు తదుపరి. నేను కేవలం ఈ శ్రేణి ద్వారా వాకింగ్ చేస్తున్నాను. మరలా, ఎవరు పట్టించుకుంటారు? ఇలా ఈ కోసం ఒక మూలవస్తువుగా ఏమిటి? Well, మేము పరిచయం గుర్తుచేసుకున్నారు ఒక స్టాక్ యొక్క సంకల్పం, ఇది అంతే ఒక సంగ్రహ దత్తాంశ అజమాయిషీ టైప్ ఒక సి విషయం, అది ఒక CS50 విషయం కాదు, అది ఒక నైరూప్య ఆలోచన యొక్క ఈ ఆలోచన ఒక మరొక పైన విషయాలు స్టాకింగ్ ఆ అమలు చేయవచ్చు వివిధ మార్గాల్లో పుష్పగుచ్ఛాలు. మరియు మేము ప్రతిపాదించిన ఒక మార్గం ఉంది ఒక శ్రేణి, లేదా ఒక లింక్ జాబితా తో. మరియు అది ఒక, ఆ canonically అవుతుంది స్టాక్ కనీసం రెండు కార్యకలాపాలను మద్దతు. మరియు buzz పదాలు, పుష్ స్టాక్ లో ఏదో పుష్, ఒక కొత్త ట్రే వంటి భోజనశాల, లేదా పాప్, ఇది ఎత్తైన తొలగించడానికి అర్థం భోజనాల లో స్టాక్ నుండి ట్రే హాల్, మరియు అప్పుడు బహుశా కొన్ని ఇతర కార్యకలాపాలు అలాగే. సో ఎలా మేము నిర్మాణం నిర్వచించే ఉండవచ్చు మేము ఇప్పుడు ఒక కుప్ప కాల్ చేస్తున్న? Well, మేము అవసరమైన అన్ని నేను చెప్పే C. లో మా పారవేయడం వద్ద వాక్యనిర్మాణం నాకు ఒక రకము నిర్వచనము ఇవ్వాలని ఒక స్టాక్ యొక్క లోపల ఒక struct, నేను ఒక యొక్క, ఒక శ్రేణి చెప్పడానికి వెళుతున్నాను మొత్తం సంఖ్యల కొంత ఆపై పరిమాణం. కాబట్టి ఇతర మాటలలో, నేను కావాలా కోడ్ లో ఈ అమలు, నాకు వెళ్ళి కేవలం రకమైన వీలు ఈ చెప్పినదానితో డ్రా. ఈ చెబుతున్నారు అని, కాబట్టి నాకు ఒక ఇవ్వాలని వ్యూహం సంపాదించి ఆ నిర్మాణం, మరియు నేను, సామర్థ్యం ఏమిటో తెలియదు నేను చేసిన స్పష్టంగా కొన్ని వదిలితే ఎక్కడైనా నిర్వచించబడి, మరియు ఆ మంచిది. కానీ, అది కేవలం ఒకటి అనుకుందాం రెండు, మూడు, నాలుగు, అయిదు. కాబట్టి సామర్థ్యం 5. లోపల ఈ మూలకం నా నిర్మాణం సంఖ్యలు అని ఉంటుంది. ఆపై నేను ఒక అవసరం ఇతర వేరియబుల్ స్పష్టంగా మొదట నేను వెళుతున్నాను అని పరిమాణం సున్నా initialized ఉంది నియమములు. ఏమీ ఉంది ఉంటే స్టాక్ పరిమాణం సున్నా మరియు అది సంఖ్యలో చెత్త విలువలు ఉంది. నేను ఇంకా అక్కడ ఏమి సంఖ్య ఆలోచన ఉంది. నేను పుష్ అనుకుంటే స్టాక్ లో ఏదో నేను ఫంక్షన్ పుష్ కాల్ అనుకుందాం, మరియు నేను, సంఖ్య 50 వంటి, 50 పుష్ చెప్పారు ఇక్కడ మీరు ప్రపోజ్ చేస్తుంది నేను ఈ శ్రేణి లో డ్రా? ఐదు వేర్వేరు సాధ్యం సమాధానాలు ఉంది. ఎక్కడ మీరు సంఖ్య 50 పుష్ అనుకుంటున్నారు? ఇక్కడ లక్ష్యం ఉంటే, మరలా కాల్ ఫంక్షన్ పుష్, ఒక వాదన లో పాస్ 50, నేను ఇక్కడ ఉంచగలను? ఐదు possible-- 20% అవకాశం యొక్క సరిగ్గా ఊహించడం. అవును? ప్రేక్షకులు: ఫార్ కుడి. SPEAKER 1: ఫార్ కుడి. 25% అవకాశం ఇప్పుడు ఉంది యొక్క సరిగ్గా ఊహించడం. కాబట్టి ఆ నిజానికి జరిమానా ఉంటుంది. సాంప్రదాయకంగా, నేను ఒక అర్రే తో చెప్పటానికి చేస్తాము మేము సాధారణంగా, ఎడమ వద్ద ప్రారంభిస్తుంది కానీ మేము ఖచ్చితంగా అనుకొనుట కుడి వద్ద ప్రారంభించండి. కాబట్టి ఇక్కడ స్పాయిలర్ నేను ఉన్నాను ఉంటుంది బహుశా ఎడమవైపు అది డ్రా అన్నారు, కేవలం ఒక సాధారణ శ్రేణి ఉన్న ఇష్టం నేను కుడి ఎడమ వెళ్లి ప్రారంభించండి. కానీ మీరు కుదుపు ఉంటే గణితం, జరిమానా. ఇది కేవలం సంప్రదాయ కాదు. సరే, నేను ఒక చేయవలసి అయితే మరింత మార్పు. ఇప్పుడు నేను ఏదో ముమ్మరం చేసిన స్టాక్ లో, తరువాత ఏమిటి? అన్ని కుడి, నేను పరిమాణం పెంచడం. నాలో ముందుకు మరియు కేవలం వీడలేదు సున్నా ఇది ఈ అప్డేట్. మరియు బదులుగా ఇప్పుడు, నేను వెళుతున్నాను విలువ లో ఉంచాలి. ఇప్పుడు నేను మరొక పుష్ అనుకుందాం స్టాక్ లో నంబర్, 51 ఇష్టం. Well, నేను ఒక మరింత చేసుకోవాలి పరిమాణం రెండు వరకు ఉంది మారిపోయింది. ఆపై నేను ఒక మరింత పుష్ అనుకుందాం 61 వంటి స్టాక్ లో నంబర్, ఇప్పుడు నేను పరిమాణం అప్డేట్ అవసరం ఒక మరింత సమయం, మరియు పరిమాణం వంటి విలువ 3 పొందండి. మరియు ఇప్పుడు నేను పాప్ కాల్ అనుకుందాం. ఇప్పుడు సాంప్రదాయకంగా, పాప్, ఒక వాదన పడుతుంది లేదు. ఒక స్టాక్ తో, మొత్తం ట్రే రూపకాలంకారం యొక్క పాయింట్ మీరు విచక్షణతో లేదు అని ఆ ట్రే పొందుటకు వెళ్ళడానికి, అన్ని మీరు చేయవచ్చు నుండి ఎత్తైన ఒకటి పాప్ ఉంది స్టాక్ కేవలం ఎందుకంటే. ఈ డేటా నిర్మాణం చేస్తుంది ఏమిటి. ఉంటే తర్కం ద్వారా నేను పాప్, ఏమి ఆఫ్ వస్తుంది చెబుతా? కాబట్టి 61. కాబట్టి నిజంగా కంప్యూటర్ అంటే ఏమిటి మెమరీలో అలా చేస్తాడు? నా కోడ్ కలిగి లేదు? మీరు ఏ ప్రపోజ్ చేస్తుంది మేము తెరపై మార్పు? ఏం మార్చాలి? క్షమించాలి? కాబట్టి మేము 61 వదిలించుకోవటం. నేను ఖచ్చితంగా ఆ చేయవచ్చు. మరియు నేను 61 వదిలించుకోవటం చేయవచ్చు. ఆపై ఇతర మార్పు జరిగే అవసరం? పరిమాణం బహుశా రెండు తిరిగి వెళ్ళడానికి ఉంది. కాబట్టి ఆ మంచిది. కానీ ఒక నిమిషం, పరిమాణం వేచి ఒక క్షణం క్రితం మూడు ఉంది. ఒక శీఘ్ర తెలివి చెక్ తెలియజేసేలా. మేము ఎలా మేము తెలుసా 61 వదిలించుకోవటం కోరుకుంటే? మేము పాపింగ్ చేస్తున్నారు కాబట్టి. కాబట్టి నేను ఈ రెండవ ఆస్తి పరిమాణాన్ని కలిగి ఉంటాయి. నేను, ఒక నిమిషం ఆగండి వారం రెండు తిరిగి ఆలోచిస్తూ మేము గురించి మాట్లాడటం మొదలు ఈ నగర సున్నా ఉన్న శ్రేణులను, ఈ నగర ఒకటి అయితే, ఈ ప్రాంతం రెండు ఈ నగర మూడు, నాలుగు ఉంది, ఇది అలా కనిపిస్తుంది పరిమాణం మధ్య సంబంధం మరియు నేను కావలసిన మూలకం తొలగించడానికి శ్రేణి నుండి కేవలం ఏమి కనిపిస్తుంది? పరిమాణం మైనస్ ఒకటి. కాబట్టి ఎంత మానవులు వార్తలు మేము 61 మొదటి వస్తుంది తెలుసు. ఎలా కంప్యూటర్ తెలుసుకోవాలి జరగబోతోంది? చేసినప్పుడు మీ కోడ్, మీరు ఎక్కడ బహుశా పరిమాణం మైనస్ ఒకటి చేయాలనుకుంటున్నారా, కనుక మూడు మైనస్ ఒకటి రెండు, మరియు ఆ ఉంటుంది మేము 61 వదిలించుకోవటం కావలసిన అర్థం. మరియు తర్వాత మేము నిజంగా నవీకరించవచ్చు ఆ పరిమాణం కాబట్టి పరిమాణం ఇప్పుడు కేవలం రెండు మూడు నుండి వెళుతుంది. మరియు కేవలం పాండిత్య ప్రకర్ష ఉండాలి, నేను వెళుతున్న నేను, పూర్తయింది ప్రతిపాదించారు? మీరు intuitively ప్రతిపాదిత సరిగ్గా నేను 61 వదిలించుకోవటం ఉండాలి. కానీ ఉండదు నేను రకమైన విధమైన 61 విమోచనం సంపాదించిన? నేను సమర్థవంతంగా మర్చిపోయి చేసిన అది నిజానికి ఉంది. మీరు చదివిన ఉంటే, తిరిగి Pset4 అనుకుంటున్నాను ఫోరెన్సిక్స్ గురించి వ్యాసం, PDF మేము ఉందని మీరు అబ్బాయిలు చదివిన, లేదా మీరు Pset4 ఈ వారం చదువుతాను. ఈ నిజానికి సంబంధించి గుర్తుచేసుకున్నారు కంప్యూటర్ ఫోరెన్సిక్స్ మొత్తం ఆలోచన. ఏం ఒక కంప్యూటర్ సాధారణంగా ఉండదు ఏదో ఉంటుంది అది కేవలం మర్చిపోతోంది కానీ అది వెళ్ళి వంటి లేదు దాన్ని లేదా భర్తీ గీతలు ప్రయత్నించండి సున్నాలు మరియు వాటిని ఆ బిట్స్ లేదా కొన్ని ఇతర యాదృచ్ఛిక నమూనా మీరు తప్ప మీరే కాబట్టి ఉద్దేశపూర్వకంగా చేయండి. సో మీ ఊహ ఉంది కుడి, యొక్క 61 వదిలించుకోవటం తెలియజేయండి. కానీ వాస్తవానికి, మేము ఇబ్బంది లేదు. మేము కేవలం ఆ మర్చిపోతే అవసరం అది మా పరిమాణం మార్చడం ద్వారా ఉంది. ఇప్పుడు ఈ స్టాక్ తో ఒక సమస్య ఉంది. నేను నెట్టడం విషయాలు ఉంటే స్టాక్ లో ఏమిటి స్పష్టంగా జరిగే కేవలం కొన్ని క్షణాలు సమయంలో? మేము స్థలం రన్నవుట్ చూడాలని. మరియు మేము ఏమి చేస్తారు? మేము రకమైన చిత్తు చేశాడు చేస్తున్నారు. ఈ అమలు వీలు లేదు ఉపయోగించి ఎందుకంటే మాకు, అర్రే పరిమాణాన్ని ఈ వాక్యనిర్మాణం, మీరు ఉంటే వారం రెండు తిరిగి భావిస్తే, మీరు డిక్లేర్డ్ చేసిన తర్వాత వ్యూహం యొక్క పరిమాణం, మేము ఇంకా పేరు ఒక యంత్రాంగాన్ని చూడని మీరు శ్రేణి యొక్క పరిమాణం మార్చవచ్చు. నిజానికి సి ఫీచర్ లేదు. మీరు చెప్పే లేకపోతే నాకు ఐదు ఇవ్వాలని Nths వాటిని కాల్ సంఖ్యలు, మీరు దానిని పొందడానికి వెళుతున్న అంతే. కాబట్టి మేము సోమవారం నాటికి ఇప్పుడు ఏమి కలిగి ఒక పరిష్కారం వ్యక్తం సామర్థ్యం అయితే, మేము కేవలం సర్దుబాటు అవసరం మా స్టాక్ యొక్క నిర్వచనం కొన్ని హార్డ్ కోడెడ్ శ్రేణి కాదని, కానీ కేవలం ఒక చిరునామా నిల్వ. ఇప్పుడు ఎందుకు ఈ ఉంది? ఇప్పుడు మేము కేవలం సౌకర్యవంతమైన ఉండాలి నిజానికి నా ప్రోగ్రామ్ అమలు అవుతున్నప్పుడు, ఆ, నేను బహుశా వెళుతున్న మానవ గోవా, ఎన్ని సంఖ్యలు మీరు నిల్వ అనుకుంటున్నారు? ఇన్పుట్ ఎక్కడో నుండి రావటానికి ఉంది. కానీ నేను తెలుసు ఒకసారి సంఖ్య, అప్పుడు నేను కేవలం చెయ్యవచ్చు ఇవ్వాలని చర్య ఏమి ఉపయోగించడానికి నాకు మెమరీ భాగం? నేను malloc ఉపయోగించవచ్చు. నేను ఎన్ని చెప్పగలను బైట్లు నేను తిరిగి ఈ Nths కోసం కావలసిన. మరియు అన్ని నేను సంఖ్యలో నిల్వ ఉంటుంది ఈ struct లోపల ఇక్కడ వేరియబుల్ ఏమి ఉండాలి? ఏమి నిజానికి వెళతాడు ఈ సందర్భంలో సంఖ్యలు? అవును, మొదటి ఒక పాయింటర్ మెమరీ యొక్క భాగం యొక్క బైట్, లేదా మరింత ప్రత్యేకంగా, చిరునామా ఆ బైట్లు మొదటి. ఇది ఒకటి ఉంటే పట్టింపు లేదు బైట్ లేదా ఒక బిలియన్ బైట్లు, నేను మొదటి పట్టించుకోనట్లు అవసరం. ఎందుకంటే malloc ఏమి హామీలు మరియు నా ఆపరేటింగ్ సిస్టమ్ హామీలు, మెమరీ ఆ నేను యొక్క భాగం పొందుటకు, అది ఆనుకొని చేస్తాడు. ఖాళీలు ఉన్నట్లు మాత్రం కాదు. నేను 50 కోసం అడిగారు చేస్తే బైట్లు లేదా 1000 బైట్లు, వారు అన్ని చేయబోతున్నామని తిరిగి వెనక్కి తిరిగి. మరియు చాలా కాలం నేను ఎలా ఎంత పెద్ద గుర్తుంచుకోవాలి వంటి చాలా నేను తెలుసుకోవాలి, అన్ని అడిగారు మొదటి అటువంటి చిరునామా. కాబట్టి ఇప్పుడు మేము కోడ్ లో సామర్ధ్యాన్ని కలిగి ఉంటాయి. అయితే, అది మాకు తీసుకోవాలని జరగబోతోంది ఎక్కువ సమయం, ఈ అప్ రాయడానికి మేము ఇప్పుడు ద్వారా ఆ స్మృతి పునర్నియోగిస్తాయి కాలేదు అక్కడే వేరే చిరునామా నిల్వ మేము కూడా ఒక పెద్ద లేదా కావాలా మెమరీ యొక్క ఒక చిన్న భాగం. కాబట్టి ఇక్కడ ఒక వాణిజ్య ఆఫ్. ఇప్పుడు మేము చైతన్యానికి పొందండి. మేము ఇప్పటికీ contiguousness నేను ఆరోపించారు కాబట్టి. Malloc మాకు ఇస్తుంది ఎందుకంటే మెమరీ అవిచ్ఛిన్నంగా భాగం. కానీ ఈ ఒక నొప్పి అవతరిస్తుంది మాకు మెడ, ప్రోగ్రామర్, నిజానికి అప్ సంకేతానికి. ఇది కేవలం మరింత పని. మేము నేను ఏమి వంటిదని కోడ్ అవసరం కేవలం ఒక క్షణం క్రితం బయటకు banging. చాలా doable, కానీ సంక్లిష్టత పెంచుతుంది. కాబట్టి డెవలపర్ సమయం, ప్రోగ్రామర్ సమయం ఇంకా మరొక వనరు మేము ఖర్చు అవసరం ఉండవచ్చు కొంత సమయం కొత్త లక్షణాలు పొందడానికి. ఆపై కోర్సు ఒక క్యూ ఉంది. మేము ఈ లోకి తీసుకోను చాలా వివరాలు ఒక. కానీ అది ఆత్మ లో చాలా పోలి ఉంది. నేను క్యూ అమలు కాలేదు, మరియు దాని సంబంధిత కార్యకలాపాలు, ఎన్క్యూ లేదా dequeue జోడించడానికి లేదా తొలగించడానికి వంటి, అది చెప్పడం కేవలం ఒక ఫ్యాన్సియెర్స్ మార్గం ఎన్క్యూ లేదా dequeue, ఈ కింది విధంగా ఉంటుంది. నేను నాకు ఒక struct ఇవ్వగలిగిన మళ్ళీ ఒక సంఖ్య యొక్క వ్యూహం ఉంది, మళ్ళీ ఒక పరిమాణం ఉంది, కానీ ఎందుకు నేను ఇప్పుడు చేయాలి ఒక క్యూ ముందు ట్రాక్? నేను తెలుసుకోవాలి లేదు నా స్టాక్ ముందు. Well, ఉంటే నేను మళ్ళీ ఒక క్యూ కేవలం హార్డ్ చేసుకుందాం ఐదు వంటి కలిగి గా కోడ్ ఇక్కడ సమర్థవంతంగా లో పూర్ణాంకాల. కాబట్టి ఈ సున్నా, ఒకటి, రెండు, మూడు, నాలుగు ఉంది. ఈ అవతరిస్తుంది మళ్ళీ అని సంఖ్యలు. మరియు ఈ పరిమాణం అని ఉంటుంది. ఎందుకు అది సరిపోదు కేవలం పరిమాణం కలిగి? సరే, మీద ఆ అదే సంఖ్యలో పుష్ లెట్. సో నేను వరుసలో, లేదా నేట్టబడుతుంది pushed--. ఇప్పుడు నేను అప్పుడు 50 ఎన్క్యూ, మరియు 51, ఆపై 61, మరియు డాట్ డాట్ డాట్. కాబట్టి ఆ ఎన్క్యూ ఉంది. నేను అప్పుడు 61, అప్పుడు 50, 51 వరుసలో. మరియు ఆ ఒకేలా కనిపిస్తుంది ఇప్పటివరకు ఒక స్టాక్ కు, తప్ప నేను ఒక మార్పు అవసరం లేదు. ఈ పరిమాణం అప్డేట్ అవసరం, కాబట్టి నేను వెళ్ళి ఇప్పుడు మూడు రెండు ఒకటి సున్నా నుంచి. నేను ఎలా dequeue చెయ్యాలి? ఏం dequeue జరుగుతుంది? ఎవరు మొదటి ఈ జాబితా ఆఫ్ రావాల్సిందే ఇది ఆపిల్ స్టోర్ వద్ద లైన్ ఉంటే? అలా 50. కనుక ఇది రకమైన trickier ఈ సమయం. చివరిసారి అయితే అది సూపర్ సులభంగా కేవలం పరిమాణం మైనస్ ఒకటి చేయాలని నేను సమర్థవంతంగా నా అర్రే చివర పొందుటకు సంఖ్యలు పేరు, అది 61 తొలగిస్తుంది. కానీ నేను 61 తొలగించాలని లేదు. నేను 50 పొందాలనుకునే 5:00 వద్ద ఉంది కోసం వరుసలో కొత్త ఐఫోన్ లేదా whatnot. కాబట్టి నేను 50 వదిలించుకోవటం కేవలం కుడి, ఈ చెయ్యలేరని? నేను 50 బయటకు క్రాస్ చేయవచ్చు. కానీ మేము కేవలం మేము చెప్పారు కాబట్టి అంగ ఉండాలి లేదు వలె గీతలు లేదా డేటా దాచడానికి. అది ఎక్కడ మేము కేవలం మరిచిపోవచ్చు. కానీ నేను ఇప్పుడు నా పరిమాణం మార్చేందుకు రెండు, ఈ తగినంత సమాచారం ఉంది నా క్యూ లో జరగబోతోంది ఏమి? కాదు నిజంగా. నా పరిమాణం, రెండు ఇలా అయితే క్యూ ఎక్కడ ప్రారంభం లేదు, ముఖ్యంగా నేను ఇప్పటికీ ఉంటే మెమరీ లో ఆ అదే సంఖ్యలో. 50, 51, 61. నేను గుర్తుంచుకోవాల్సిన అవసరం ఇప్పుడు ముందు ఉన్న. కాబట్టి నేను ప్రతిపాదించిన అక్కడ, మేము కేవలం పిలుపునిచ్చారు చేస్తాము దీని ప్రారంభ Nth ముందు, విలువ ఏమిటి వుండాలి? జీరో జాబితా ప్రారంభం. కానీ ఇప్పుడు అదనంగా దానికి వీలు కు పరిమాణం, మేము ముందు పెంచడం. ఇప్పుడు ఇక్కడ మరొక సమస్య. నేను కొనసాగించడాన్ని ఒకసారి. ఈ సంఖ్య అనుకుందాం వంటి 121, 124, మరియు అప్పుడు, dammit, నేను స్పేస్ బయటకు రెడీ. కానీ నేను కాదు, ఒక నిమిషం ఆగండి. కథ ఈ సమయంలో, పరిమాణం ఒకటి, రెండు అని అనుకుందాం, మూడు, నాలుగు, కాబట్టి ఊహించు పరిమాణం, ఫ్రంట్ ఒకటి, నాలుగు ఉంది కాబట్టి 51 ముందు ఉంది. నేను ఇక్కడ మరొక సంఖ్య ఉంచాలి కావలసిన, కానీ, dammit, నేను ఖాళీ బయటకు రెడీ. కానీ నేను నిజంగా తెలియదు? నేను కొన్ని ఎక్కడ ఉంచారు కాలేదు 171 వంటి అదనపు విలువ? అవును, నేను అనుకొనుట కేవలం రకమైన కుడి, తిరిగి అక్కడ వెళ్ళి? ఆపై 50 క్రాస్, లేదా కేవలం 171 తో తిరిగి రాస్తుంది. మరియు మీరు ఎందుకు వొండరింగ్ ఉంటే మా సంఖ్యలు, కాబట్టి యాదృచ్ఛిక వచ్చింది వీటిలో సాధారణంగా కంప్యూటర్ తీసుకుంటారు CS50 తర్వాత హార్వర్డ్ వద్ద శాస్త్రం కోర్సులు. కానీ ఒక మంచి ఆప్టిమైజేషన్ ఉంది, ఇప్పుడు ఎందుకంటే నేను స్పేస్ వృధా కాదు. నేను ఇప్పటికీ గుర్తు పెట్టుకోవాలి ఎంత పెద్ద ఈ విషయం మొత్తం ఉంది. ఇది ఐదు మొత్తం ఉంది. నేను అనుకుంటున్న ఎందుకంటే 51 తిరిగి రాయటం మొదలు. కాబట్టి ఇప్పుడు నేను ఇప్పటికీ ఖాళీ am, కాబట్టి అదే సమస్యగా ముందు. కానీ మీరు ఎలా ఇప్పుడు చూడగలరు మీ కోడ్ లో, మీరు బహుశా కొంచెం వ్రాయడానికి కలిగి సంక్లిష్టత ఆ జరిగే చేయడానికి. నిజానికి, ఏమి ఆపరేటర్లు సి లో బహుశా అనుమతిస్తుంది మీరు అద్భుతంగా ఈ ప్రకటన చేయాలని? అవును మాడ్యులో ఆపరేటర్లు, శాతం సంకేతం. సో ఒక క్యూ గురించి చల్లని రకం ఏది, మేము డ్రాయింగ్ శ్రేణుల ఉంచండి అయినప్పటికీ ఈ వంటి సరళరేఖలు వలె, మీరు ఉంటే రకమైన తిప్పడం ఈ గురించి ఆలోచించడం చుట్టూ ఒక సర్కిల్ గా, అప్పుడు అకారణంగా రకమైన మానసిక పనిచేస్తుంది నేను మరింత సజావుగా కొంచెం ఆలోచించాలి. మీరు ఇప్పటికీ అమలు వుంటుంది కోడ్ లో మానసిక మోడల్. కాబట్టి ఆ హార్డు కాదు, చివరికి, అమలు కానీ మేము ఇప్పటికీ కాకుండా, పరిమాణం కోల్పోతారు మేము దీన్ని తప్ప సామర్థ్యం, ​​పరిమాణాన్ని. మేము శ్రేణి యొక్క వదిలించుకోవటం కలిగి, మేము ఒకే పాయింటర్ తో భర్తీ, ఆపై ఎక్కడో నా కోడ్ లో నేను పొందారు ఒక నిజంగా సృష్టించడానికి పని ఏమి కాల్ వ్యూహం అని సంఖ్యలు? Malloc, లేదా కొన్ని ఇటువంటి ఫంక్షన్, సరిగ్గా. స్టాక్స్ లేదా క్యూలు ఏ ప్రశ్నలు. అవును? మంచి ప్రశ్న. మాడ్యులో ఏమి మీరు ఇక్కడ ఉపయోగించే. కనుక సాధారణంగా, ఉపయోగిస్తున్నప్పుడు mod, మీరు దీన్ని పరిమాణం తో మొత్తం డేటా నిర్మాణం. కాబట్టి ఏదో ఐదు లేదా సామర్థ్యం ఉంటే ఇష్టం ఇది వదిలితే, బహుశా కలిగి ఉంటుంది. కానీ కేవలం మాడ్యులో ఐదు చేయడం బహుశా తగినంత కాదు మేము తెలుసుకోవాలి ఎందుకంటే మేము ఇక్కడ లేదా ఇక్కడ లేదా ఇక్కడ చుట్టూ. సో మీరు బహుశా కూడా ఉన్నారు కలిగి అనుకుంటున్నారా అన్నారు విషయం యొక్క పరిమాణం, లేదా అలాగే ముందు వేరియబుల్. కనుక ఇది కేవలం ఈ చాలా వార్తలు సాధారణ అంకగణిత వ్యక్తీకరణ, కానీ మాడ్యులో కీలక అంశం అవుతుంది. కాబట్టి చిన్న సినిమా మీరు రెడీ ఉంటే. ఒక యానిమేషన్ కొన్ని మరొక విశ్వవిద్యాలయం వద్ద వారిని మేము చేసిన ఆ కూర్చు ఈ చర్చ స్వీకరించబడ్డాయి. ఇది జాక్ నేర్చుకోవటం ఉంటాయి క్యూలు మరియు గణాంకాలను గురించి వాస్తవాలు. సినిమా: ఒకసారి ఒక సమయం మీద, జాక్ అనే వ్యక్తి ఉంది. ఇది చెయ్యడం వచ్చినప్పుడు, జాక్ ఒక నేర్పు కలిగి లేదు. కనుక జాక్ మాట్లాడటానికి వెళ్ళారు అత్యంత ప్రజాదరణ వ్యక్తి అతను తెలుసు. అతను లౌ వెళ్లి నేను ఏమి చేస్తారు, అడిగారు? లౌ తన స్నేహితుడు గమనించాను నిజంగా నిరాశ నిస్పృహలకి గురయ్యాడు. Well, అతను కేవలం ప్రారంభమైంది మీరు ధరించి చేస్తున్నాం ఎలా చూడండి. మీరు ఏ బట్టలు లేదు వేరొక రూపాన్ని? అవును, జాక్ చెప్పారు. నేను ఖచ్చితంగా ఏమి. నా ఇంటికి వచ్చి నేను మీరు వాటిని తెలియజేస్తాము. కాబట్టి వారు జాక్ యొక్క కాబడింది. మరియు జాక్ లూ బాక్స్ చూపించాడు అక్కడ అయిన అన్ని అతని చొక్కాలు ఉంచింది మరియు అతని ప్యాంటు, మరియు తన సాక్స్. లౌ నేను మీరు చూడండి, అన్నాడు ఒక పైల్ లో అన్ని మీ బట్టలు. ఎందుకు మీరు కొన్ని ధరించరు అందాకా ఒకసారి ఇతరులు? జాక్ చెప్పారు బాగా, నేను , బట్టలు మరియు సాక్స్లతో తొలగించడానికి నేను వాటిని కడగడం మరియు చాలు వాటిని దూరంగా బాక్స్ లో. తరువాతి వస్తుంది ఉదయం, మరియు అప్ నేను హాప్. నేను బాక్స్ వెళ్లి పొందడానికి టాప్ ఆఫ్ నా బట్టలు. లౌ త్వరగా గ్రహించాడు జాక్ తో సమస్య. అతను బట్టలు, CD యొక్క ఉంచింది మరియు స్టాక్ పుస్తకాలు. అతను చేరుకున్నప్పుడు ఏదో చదవడానికి లేదా ధరించడం, అతను టాప్ పుస్తకం లేదా లోదుస్తుల ఎంచుకోండి భావిస్తున్న. అప్పుడు అతను పూర్తి కాగానే, అతను కుడి తిరిగి ఉంచుతాడు. తిరిగి స్టాక్ పైన, ప్రయత్నించాడు. నేను పరిష్కారం తెలుసు, ఒక విజయవంతమైన బిగ్గరగా అన్నారు. మీరు తెలుసుకోవడానికి అవసరం ఒక క్యూ ఉపయోగించడం ప్రారంభించడానికి. లౌ జాక్ యొక్క బట్టలు పట్టింది మరియు గదిలో వాటిని ముగించారు. అతడు ఖాళీచేయబడ్డ ఉన్నప్పుడు బాక్స్, అతను కేవలం అది విసిరిన. అప్పుడు అతను జాక్ చివరిలో, ఇప్పుడు, అన్నారు రోజు, ఎడమవైపున మీ బట్టలు చాలు మీరు వాటిని దూరంగా ఉంచాలి ఉన్నప్పుడు. అప్పుడు రేపు ఉదయం ఉన్నప్పుడు మీరు మీ బట్టలు పొందుటకు, సూర్యరశ్మి చూడండి పంక్తి చివర నుండి కుడి, న. మీరు చూడలేదా? లౌ చెప్పారు. అది nice ఉంటుంది. మీరు ఒకసారి ప్రతిదీ ధరిస్తారు చేస్తాము ముందు మీరు రెండుసార్లు ఏదో ధరిస్తారు. మరియు క్యూలు ప్రతిదీ తన గదిలో మరియు షెల్ఫ్ లో, జాక్ అనుభూతి ప్రారంభమైంది తనను చాలా ఖచ్చితంగా. లౌ అన్ని ధన్యవాదాలు మరియు తన అద్భుతమైన క్యూ. SPEAKER 1: అన్ని కుడి, అది పూజ్యమైన ఉంది. కాబట్టి నిజంగా ఏమి జరుగుతుందో చెయ్యబడింది ఇప్పుడు హుడ్ కింద? మేము గమనికలు కలిగి, మేము malloc కలిగి, మేము సృష్టించే సామర్థ్యం కలిగి మేమే కోసం మెమరీ భాగాలుగా సాహసోపేతంగా. కాబట్టి ఈ చిత్రాన్ని మనం ఇతర రోజు చూడటం. మేము నిజంగా తొలిచే అది, కానీ ఈ చిత్రం కింద ఉంది జరుగుతున్నాయి ఇప్పుడు వారాలు హుడ్. మరియు ఈ కేవలం, సూచిస్తుంది మేము డ్రా చేసిన ఒక దీర్ఘ చతురస్రాన్ని మీ కంప్యూటర్ యొక్క మెమరీ. మరియు ఉండవచ్చు మీ కంప్యూటర్, లేదా CS50 ID, మెమరీ లేదా RAM యొక్క ఒక గిగాబైట్ ఉంది లేదా రెండు గిగాబైట్ల లేదా నాలుగు. ఇది నిజంగా పట్టింపు లేదు. మీ ఆపరేటింగ్ సిస్టమ్ Windows లేదా Mac OS లేదా Linux, తప్పనిసరిగా మీ ప్రోగ్రామ్ అనుమతిస్తుంది ప్రాప్తి ఉంది అనుకొనే మొత్తానికి కు మీ కంప్యూటర్ యొక్క మెమరీ, కూడా మీరు అమలు చేస్తూ ఉండవచ్చు అయితే ఒకేసారి పలు కార్యక్రమాలు. కాబట్టి వాస్తవంలో, ఆ నిజంగా పని లేదు. కానీ అది ఒక భ్రమ రకంగా మీ అన్ని కార్యక్రమాల ఇచ్చిన. కాబట్టి మీరు ఈ RAM యొక్క రెండు వేదికలను కలిగి కంప్యూటర్ ఆలోచించి ఎలా ఉంది. ఇప్పుడు యాదృచ్ఛికం ఈ ఒకటి విషయాలు, మెమరీ ఈ భాగాలు ఒకటి, ఒక స్టాక్ అంటారు. నిజానికి ఏ సమయంలో ఇప్పటివరకు రచన కోడ్ లో మీరు అని ఒక ఉదాహరణకు ప్రధాన ఫంక్షన్. ఏ సమయంలో నేను గుర్తుచేసుకున్నారు డ్రా కంప్యూటర్ యొక్క మెమరీ, నేను ఎల్లప్పుడూ విధమైన డ్రా ఇక్కడ ఒక దీర్ఘచతురస్ర సగం మాట్లాడటం ఇబ్బంది లేదు పైన ఏమిటి గురించి. ప్రధాన అంటారు, నేను క్లెయిమ్ ఎందుకంటే మీరు మెమొరీ ఈ అంశం గురించి ఆలోచించారు పొందండి ఇక్కడ డౌన్ వెళుతుంది. ప్రధాన ఉంటే మరియు ఒక విధి అని swap వంటి, బాగా స్వాప్ ఇక్కడ వెళ్తాడు. మరియు అది ఆ హాజరవుతారు అది ఎక్కడ ముగించాడు లో. ఒక స్టాక్ అని ఏదో మీ కంప్యూటర్ యొక్క మెమరీ లోపల. ఇప్పుడు రోజు చివరిలో, ఈ కేవలం చిరునామాలను ఉంది. ఇది బైట్ సున్నా వంటిది బైట్ ఒకటి, బైట్ 2 బిలియన్. కానీ మీరు దాని గురించి అనుకుంటే ఈ దీర్ఘచతురస్రాకార వస్తువులా, అన్ని మేము ప్రతి చేస్తున్నా సమయంలో మేము ఒక ఫంక్షన్ కాల్ మెమరీ కొత్త ముక్క పొరలు. మేము ఒక ముక్క ఆ ఫంక్షన్ ఇవ్వడం చేస్తున్నారు దాని స్వంత మెమొరీ యొక్క పని. మరియు ఈ ముఖ్యమైన అని ఇప్పుడు గుర్తు. మేము కలిగి లేకపోతే ఎందుకంటే swap వంటి ఏదో A మరియు B మరియు వంటి మరియు రెండు స్థానిక వేరియబుల్స్ మేము ఒక మరియు రెండు నుండి ఆ విలువలను మార్చడం రెండు మరియు ఒక గుర్తుకు స్వాప్ వచ్చినప్పడు ఆ ఈ ముక్క అయితే వార్తలు కేవలం మెమరీ వెళ్లిపోయిన. వాస్తవంలో, ఇది ఇప్పటికీ అక్కడ forensically. మరియు ఏదో వాస్తవానికి ఇప్పటికీ ఉంది. కానీ సంభావితంగా, అది వార్తలు అయితే అది పూర్తిగా అయిపోంది. అందువలన ప్రధాన పని ఏ తెలీదు ఆ ఫంక్షన్ మార్పిడి జరిగింది నిజానికి ఆ జారీ తప్ప పాయింటర్ లేదా సూచనగా వాదనలు. ఇప్పుడు, ప్రాథమిక పరిష్కారం స్వాప్ తో ఆ సమస్యకు చిరునామా ద్వారా విషయాలు తరలించడం. కానీ అది చాలా, ఏమిటి, హాజరవుతారు ఆ భాగం పైన జరుగుతున్న దీర్ఘ చతురస్రం యొక్క అన్ని ఈ సమయంలో ఉంది ఇంకా మరింత మెమరీ ఇంకెవరూ లేరు. మరియు మీరు డైనమిక్ మెమరీని కేటాయించాల్సిన, ఇది GetString, లోపల లేదో ఇది మేము CS50 లో మీరు చేస్తున్న చేసిన లైబ్రరీ, లేదా మీరు అబ్బాయిలు ఉంటే malloc కాల్ మరియు అడగండి ఒక భాగం ఆపరేటింగ్ సిస్టమ్ జ్ఞాపకశక్తి, ఇది స్టాక్ నుండి రాదు. ఇది మరొక ప్రదేశం నుండి వస్తుంది మీ కంప్యూటర్ యొక్క మెమరీ లో కుప్ప అని. మరియు ఏ వివిధ కాదు. ఇది అదే రామ్. ఇది అదే మెమరీ ఉంది. అది అప్ వార్తలు ఆ RAM వార్తలు అక్కడ బదులుగా డౌన్ ఇక్కడ. కాబట్టి ఆ అర్థం ఏమిటి? బాగా, మీ కంప్యూటర్ కలిగి ఉంటే మెమరీ పరిమిత మొత్తం మరియు స్టాక్ కాబట్టి, అప్ పెరుగుతోంది మాట్లాడటం, మరియు కుప్ప ప్రకారం ఈ బాణం, డౌన్ పెరుగుతోంది. ఇతర మాటలలో, ప్రతి సమయం మీరు malloc కాల్, మీరు ఒక ముక్క ఇచ్చిన చేస్తున్నారు మెమరీ పైన నుండి, కొద్దిగా దిగువ అప్పుడు బహుశా కొద్దిగా తక్కువ, మీరు malloc కాల్ ప్రతిసారీ, కుప్ప, ఇది వాడుక యొక్క, రకమైన పెరుగుతోంది, ఏమి దగ్గరగా మరియు దగ్గరగా పెరుగుతున్న? స్టాక్. కాబట్టి ఈ ఒక మంచి ఆలోచన వంటి అనిపించడం లేదు? అది నిజంగా స్పష్టంగా లేదు పేరు నేను అర్థం మీరు ఏమి మీరు మాత్రమే ఉంటే చేయవచ్చు మెమరీ ఒక పరిమిత మొత్తం కలిగి. కానీ ఈ ఖచ్చితంగా చెడ్డది. ఆ రెండు బాణములు ఉన్నాయి ఒక మరొక కోసం కోర్సు క్రాష్. మరియు ఆ చెడ్డ వ్యక్తి, చేసారో ఎవరు అవుతుంది ప్రోగ్రామింగ్ తో ముఖ్యంగా మంచి మరియు కంప్యూటర్లు హాక్ ప్రయత్నిస్తున్న, ఈ రియాలిటీ దోపిడీ. నిజానికి, యొక్క పరిశీలిద్దాం ఒక చిన్న స్నిప్పెట్. కాబట్టి ఈ మీరు చదువుకోవచ్చు ఒక ఉదాహరణ గురించి వికీపీడియాలో మరింత వివరంగా. మేము వద్ద మీరు అభిప్రాయపడుతున్నారు చేస్తాము వ్యాసం ఉంటే ఆసక్తికరమైన. కానీ దాడి సాధారణంగా ఉంది బఫర్ ఓవర్ఫ్లో అని అంటారు మానవులు ఉన్నంత ఉనికిలో ఉంది సవరించడానికి సామర్థ్యానికి కలిగి ముఖ్యంగా C. లో కంప్యూటర్ యొక్క మెమరీ, కాబట్టి ఈ చాలా ఏకపక్ష కార్యక్రమం, కానీ యొక్క దిగువ నుండి చదవడానికి వీలు. Argc చార్ స్టార్ argv లోకి ప్రధాన. కనుక ఇది పడుతుంది ఒక కార్యక్రమం ఆదేశ పంక్తి వాదనలు. మరియు అన్ని ప్రధాన స్పష్టంగా పిలుపు లేదు ఒక ఫంక్షన్, సరళత కోసం F కాల్. మరియు అది ఏ వెళుతుంది? ఒకటి argv. కనుక ఇది F లోకి వెళుతుంది సంసార పదం యూజర్ టైప్ ఉంది తర్వాత ప్రాంప్ట్ వద్ద కార్యక్రమం యొక్క పేరు అన్ని వద్ద. ఎంతగా సీజర్ లేదా విజెనెరే మాదిరిగా మీరు argv తో చేస్తున్న గుర్తు ఉండవచ్చు. సో F ఏమిటి? F ఒక స్ట్రింగ్ లో పడుతుంది దాని ఏకైక వాదన వంటి, AKA ఒక చార్ స్టార్, అదే విషయం ఒక స్ట్రింగ్ వంటి. మరియు కక్ష్య అని ఈ ఉదాహరణలో బార్. ఆపై చార్ సి 12, కేవలం లేమాన్ నియమాలు, మాకు చేయడం చార్ సి బ్రాకెట్ 12 ఏమిటి? అది ఏమి ఉంది? ప్రత్యేకంగా స్మృతితో పెడుతోంది 12 అక్షరాలు కోసం 12 బైట్లు. సరిగ్గా. ఆపై చివరి పంక్తి, కదిలించు మరియు కాపీని, మీరు బహుశా చూడని చేసిన. ఈ స్ట్రింగ్ నకలు దీని ప్రయోజనం జీవితంలో ఫంక్షన్ దాని రెండవ వాదన కాపీ ఉంది మొదటి వాదన లోకి, కానీ ఒక వరకు బైట్లు నిర్దిష్ట సంఖ్యలో. కాబట్టి మూడవ వాదన చెప్పారు మీరు ఎన్ని బైట్లు కాపీ ఉండాలి? బార్ యొక్క పొడవు, సంసార లో టైప్ యూజర్. మరియు విషయాలు ఉన్నాయి, ఆ స్ట్రింగ్ బార్ మెమరీ లోకి కాపీ C. వద్ద దిశగానే కాబట్టి ఈ రకమైన తెలివితక్కువదని ఉంది, మరియు అది ఉంది. ఇది ఒక కంట్రైవ్డ్ ఉదాహరణకు, కానీ ఇది ప్రాతినిధ్య వార్తలు దాడి వెక్టర్స్ యొక్క తరగతి, ఒక కార్యక్రమం దాడి యొక్క మార్గం. అన్ని జరిమానా మరియు యూజర్ ఉంటే మంచి 11 అక్షరాల యొక్క, ఒక పదం లో రకాలు తక్కువ, ప్లస్ బాక్ స్లాష్ సున్నా లేదా. దానికంటే లో యూజర్ రకాల ఎక్కువ ఉంటే 11 లేదా 12 లేదా 20 లేదా 50 అక్షరాలు? చేయబోవడం ఈ కార్యక్రమం ఏమిటి? సమర్థవంతంగా seg తప్పు. అది జరగబోతోంది గుడ్డిగా అప్ బార్ లో ప్రతిదీ కాపీ దాని పొడవు, అక్షరాలా బార్ లో ప్రతిదీ, చిరునామాగా C. కానీ సి దిశగానే మాత్రమే preemptively 12 బైట్లు గా ఇచ్చారు. అయితే వీటికి అదనపు తనిఖీ. పరిస్థితులు ఉంటే ఏ ఉంది. ఇక్కడ ఏ దోష ఉంది. కాబట్టి ఈ ప్రోగ్రామ్ ఏమిటి చేయబోవడం గుడ్డిగా ఉంది ఇతర ఒక విషయం కాపీ. కాబట్టి మేము ఈ డ్రా ఉంటే ఒక చిత్రాన్ని, ఇక్కడ మెమరీని కేవలం ఒక అంశం గురించి ఆలోచించారు. కాబట్టి మేము, దిగువన ప్రకటన స్థానిక వేరియబుల్ బార్ కలిగి. Store-- జరగబోతోంది ఆ పాయింటర్ కాబట్టి అని ఆ స్థానిక వాదన కాకుండా స్ట్రింగ్ బార్ నిల్వ అన్నారు. ఆపై కేవలం గమనించవచ్చు ఇది పైన ఒక స్టాక్ లో, ఎందుకంటే మీరు అడగండి ప్రతిసారీ స్టాక్ మెమరీ కోసం, ఇది కొద్దిగా వెళ్తాడు చిత్రాల పై, మేము అక్కడ 12 బైట్లు పొందారు నోటీసు. ఎగువ ఎడమ ఒక C బ్రాకెట్ సున్నా మరియు కుడి దిగువన ఒక C బ్రాకెట్ 11 ఉంది. ఆ ఎంత కంప్యూటర్లు వార్తలు దాన్ని వేయడానికి వెళ్తున్నారు. కాబట్టి కేవలం intuitively, బార్ మరింత కలిగి ఉంటే సహా మొత్తం 12 అక్షరాలు కంటే ఉన్న బాక్ స్లాష్ సున్నా, 12 లేదా సి బ్రాకెట్ 12 వెళ్ళడానికి వెళ్తున్నారు? లేదా బదులుగా ఇక్కడ 12 వ ఉంది పాత్ర లేదా 13 పాత్ర, అన్నారు వందవ పాత్ర చిత్రంలో వదులుకోవడానికి? అటుఇటుగా? కుడి, అయినప్పటికీ ఎందుకంటే స్టాక్ స్వయంగా పైకి పెరుగుతుంది మీరు stuff ఉంచవచ్చు ఒకసారి అది రూపకల్పన వంటి కారణాల కోసం, పై నుంచి కిందకు మెమరీ ఉంచుతుంది. మీరు కంటే ఎక్కువ 12 బైట్లు పొందారు చేస్తే, మీరు బార్ తిరిగి రాస్తుంది ఆరంభమవుతుంది చేస్తున్నారు. ఇప్పుడు ఒక బగ్ ఉంది, కానీ అది నిజంగా ఒక పెద్ద ఒప్పందం. ఉంది ఎందుకంటే కానీ అది ఒక పెద్ద ఒప్పందం ఉంది మెమరీ లో మరింత stuff. ఇక్కడ మేము ఎలా వాటిని వార్తలు స్పష్టతను, హలో చాలు. నేను ప్రాంప్ట్ వద్ద హలో లో టైప్ ఉంటే. H-E-L-L-O బాక్ స్లాష్ సున్నా, లోపల ముగుస్తుంది ఆ 12 బైట్లు, మరియు మేము సూపర్ సురక్షితంగా ఉన్నారు. అన్ని బాగా ఉంది. కానీ నేను ఏదో టైప్ చేస్తే ఇక, సమర్థవంతంగా అంతే బార్ అంతరిక్షంలోకి భీతి అన్నారు. కానీ అధ్వాన్నంగా ఇంకా, అది మారుతుంది ఈ సమయంలో, మేము గురించి మాట్లాడారు ఎప్పుడూ చేసిన అయినప్పటికీ ఇది స్టాక్ ఇతర విషయం కోసం ఉపయోగిస్తారు. ఇది కేవలం స్థానిక వేరియబుల్స్ కాదు. సి చాలా తక్కువ స్థాయి భాష. మరియు విధమైన రహస్యంగా కూడా స్టాక్ ఉపయోగించే ఉన్నప్పుడు గుర్తుంచుకోవడానికి ఒక ఫంక్షన్, ఏ అంటారు చిరునామా, మునుపటి ఫంక్షన్ ఉంది కాబట్టి అది తిరిగి ఆ ఫంక్షన్ వెళ్లగలదు. కాబట్టి ప్రధాన కాల్స్ మధ్య, మార్పిడి చేసినప్పుడు విషయాలు స్టాక్ లో ముమ్మరం కేవలం, స్థానిక వేరియబుల్స్ మార్పిడులు లేదు లేదా దాని వాదనలు, కూడా రహస్యంగా ముమ్మరం స్టాక్ లో సూచించబడిన ఇక్కడ ఎరుపు ముక్క, ప్రధాన యొక్క చిరునామా భౌతికంగా మీ కంప్యూటర్ యొక్క మెమరీ లో, కాబట్టి swap చేయబడుతుంది, కంప్యూటర్ నేను ప్రధాన తిరిగి వెళ్లాలి తెలుసు మరియు ప్రధాన విధి అమలు పూర్తి. కాబట్టి ఈ ఇప్పుడు ప్రమాదకరం ఎందుకంటే హలో కంటే బాగా ఎక్కువ వినియోగదారు రకాల యూజర్ యొక్క ఇన్పుట్ clobbers అలాంటి లేదా, ఆ ఎరుపు విభాగంలోని తిరిగి రాస్తుంది తార్కికంగా ఉంటే కంప్యూటర్ యొక్క కేవలం గుడ్డిగా ఊహించుకోవటం అన్నారు ఆ ఎరుపు ముక్క లో బైట్లు అని ఇది దేశంలోని ఏ చిరునామా, విరోధి ఏమి ఉంటే తగినంత స్మార్ట్ లేదా బైట్లు ఒక క్రమం ఉంచాలి తగినంత అదృష్ట అక్కడ ఒక చిరునామా కనిపించే, కానీ ఇది కోడ్ చిరునామా వార్తలు అతను లేదా ఆమె కంప్యూటర్ కోరుకుంటున్నారు బదులుగా ప్రధాన అమలు ఎలా? ఇతర మాటలలో, ఏం వినియోగదారు ప్రాంప్ట్ వద్ద టైప్ కేవలం ఏదో కాదు హలో హానికరం వంటి కాని ఇది సమాన ఆ కోడ్ నిజానికి అన్ని ఈ యూజర్ యొక్క ఫైళ్ళను తొలగించడానికి ఎలా? లేదా నాకు వారి పాస్వర్డ్ను? ఇమెయిల్ లేదా లాగింగ్ ప్రారంభించిన వారి కీస్ట్రోక్, కుడి? ఒక మార్గం ఉంది, నేడు నియమములు వీలు వారు హలో కేవలం టైప్ అని ప్రపంచ లేదా వారి పేరు, వారు తప్పనిసరిగా అనుకొనుట కోడ్, సున్నాలు లో పాస్ మరియు వాటిని ఆ కంప్యూటర్లో కోడ్ మరియు ఒక చిరునామా రెండు కోసం తప్పులు. అయినప్పటికీ కాబట్టి కొంతవరకు బొత్తిగా ఉంటే తగినంత పటిష్టమయిన కోడ్ యూజర్ రకాల మేము ఇక్కడ సాధారణీకరించడం చేస్తాము అని A. ఎ దాడి లేదా వ్యతిరేకుల ఉంది. కాబట్టి కేవలం చెడు విషయం. మనం శ్రద్ధ లేదు సంఖ్యలు లేదా సున్నాలు లేదా వాటిని నేడు, మీరు ముగుస్తుంది ఆ ఎరుపు విభాగంలోని తిరిగి రాయటం, బైట్లు క్రమం గమనించవచ్చు. O 835 C సున్నా ఎనిమిది సున్నా. ఇప్పుడు ఇక్కడ వికీపీడియా వ్యాసం వంటి మీరు ఇప్పుడు నిజానికి మొదలు ఉంటే, ప్రతిపాదించారు మీ కంప్యూటర్ యొక్క బైట్ల గుర్తించడం మెమరీ వికీపీడియా వ్యాసం ఏమిటి ప్రతిపాదిస్తూ, ఆ ఏమి చిరునామా ఉంటే టాప్ ఎడమ బైట్ యొక్క 80 సి 0 3508 ఉంది. ఇతర మాటలలో, చెడ్డ వ్యక్తి ఉంటే అతని లేదా ఆమె కోడ్ తగినంత స్మార్ట్ నిజానికి ఇక్కడ ఒక సంఖ్య ఉంచాలి కోడ్ యొక్క చిరునామా అనుగుణంగా అతను లేదా ఆమె లోపలికి కంప్యూటర్ లోకి మీరు కంప్యూటర్ మోసపూరిత చేయవచ్చు ఏదైనా చేయడం లోకి. , ఫైళ్లను తొలగించటం ఇమెయిల్ విషయాలు మీ ట్రాఫిక్ sniffing, అక్షరాలా ఏదైనా కావచ్చు కంప్యూటర్ చొప్పించారు. కాబట్టి ఒక బఫర్ ఓవర్ఫ్లో దాని కోర్ వద్ద దాడి కేవలం తెలివితక్కువదని, తెలివితక్కువదని ఉంది వ్యూహం యొక్క దీనికి ఆ దాని సరిహద్దులు తనిఖీ లేదు. మరియు ఈ సూపర్ ప్రమాదకరమైన ఏమిటి మరియు ఏకకాలంలో సూపర్ శక్తివంతమైన సి లో మేము నిజానికి కలిగి లేని ఉంది మెమరీ ఎక్కడైనా యాక్సెస్. ఇది మాకు ఇష్టం, ప్రోగ్రామర్లు, అసలు కోడ్ వ్రాయడానికి ఏ రంధ్రాన్ని సరి చేయు పొడవు తనిఖీ మేము అభిసంధానించడం చేస్తున్న శ్రేణుల. కాబట్టి స్పష్టతను, పరిష్కారము ఏమిటి? మేము ఈ తిరిగి వెళ్లండి ఉంటే కోడ్, నేను కాదు కేవలం బార్ యొక్క పొడవు మార్చడానికి, ఏమి వేరే నేను తనిఖీ చేయాలి? నేను ఏమి చేయడం చేయాలి పూర్తిగా ఈ దాడి నిరోధించడానికి? నేను గుడ్డిగా అంతరంలో లేదు మీరు అనేక బైట్లు కాపీ ఉండాలని బార్ పొడవు. నేను కాపీ, అంతరంలో అనేక బైట్లు బార్ లో ఉన్నాయి కేటాయించింది వరకు మెమొరీ లేదా గరిష్టంగా 12. కాబట్టి నేను పరిస్థితి ఉంటే రకమైన అవసరం ఆ బార్ యొక్క పొడవును తనిఖీ చేస్తుంది, కానీ అది 12, మేము కేవలం హార్డ్ కోడ్ అతిక్రమిస్తే గరిష్ట దూరం 12. లేకపోతే అని పిలవబడే బఫర్ ఓవర్ఫ్లో దాడి జరుగుతుంది. ఆ స్లయిడ్లను దిగువన, మీరు మరింత చదవడానికి ఆసక్తిగా ఉంటే వాస్తవ అసలైన కథనం మీరు పరిశీలించి చెయ్యాలనుకుంటే. కానీ ఇప్పుడు, ధరలు మధ్య అసమర్థతలను ఇక్కడ చెల్లించింది. కాబట్టి ఒక త్వరితంగా వద్ద తక్కువ స్థాయి లుక్ ఏమి సమస్యలు మేము ఇప్పుడు పెరగవచ్చు కంప్యూటర్ స్మృతికి ప్రాప్తిని కలిగి. కానీ మరొక సమస్య మేము ఇప్పటికే సోమవారం డెక్కన్ ఛార్జర్స్ కేవలం అసమర్థతపై ఉంది ఒక లింక్ జాబితా. మేము తిరిగి సరళ సమయంలో కూడా ఉన్నాయి. మేము ఇకపై అవిచ్ఛిన్నంగా శ్రేణి కలిగి. మేము రాండమ్ యాక్సెస్ లేదు. మేము చదరపు బ్రాకెట్ సంజ్ఞామానం ఉపయోగించలేరు. మేము వాచ్యంగా ఒక సమయంలో లూప్ ఉపయోగించడానికి కలిగి ఒక వంటి నేను ఒక క్షణం క్రితం రాశాడు. కానీ సోమవారం, మేము చెయ్యవచ్చు పేర్కొన్నారు సామర్థ్యం రాజ్యం తిరిగి భీతి ఏదో సాధించే సంవర్గమాన ఉండవచ్చు, లేదా ఉత్తమ ఇంకా, ఆ ఇంకా ఏదో స్థిరంగా సమయం అని పిలవబడే. కాబట్టి మేము ఈ నూతన ఉపయోగించి ఆ ఎలా చేయవచ్చు టూల్స్, ఈ చిరునామాలు, ఈ గమనికలు, మరియు మా సొంత విషయాలు థ్రెడ్డింగ్? Well, ఆ భావించండి ఇక్కడ, ఈ ఒక బంచ్ ఉంటాయి మేము ఒక నిల్వ అనుకుంటున్నారా సంఖ్యల సమర్ధవంతంగా డేటా నిర్మాణం మరియు శోధన. మేము ఖచ్చితంగా వారం రివైండ్ చేయవచ్చు రెండు, వ్యూహం లోకి ఈ త్రో మరియు బైనరీ శోధన ఉపయోగించి వాటిని అన్వేషణ. విభజించి జయించటానికి. నిజానికి మీరు రాశారు pset3 లో బైనరీ శోధన, ఇక్కడ మీరు కనుగొనండి కార్యక్రమం అమలు. కానీ మీరు ఏమి తెలుసు. మరింత రకం ఉంది ఇలా తెలివైన మార్గం. ఇది కొంచెం వార్తలు అధునాతన మరియు బహుశా మాకు ఎందుకు బైనరీ చూడండి అనుమతిస్తుంది శోధన చాలా వేగంగా ఉంది. మొదటి, యొక్క పరిచయం తెలియజేయండి ఒక చెట్టు యొక్క భావన. ఇది కూడా అయితే రియాలిటీ చెట్లు రకమైన కంప్యూటర్ ప్రపంచంలో, ఈ వంటి పెరుగుతాయి వారు రకమైన కిందకి పెరుగుతాయి శాస్త్రం మీరు ఉన్న ఒక కుటుంబం చెట్టు, వంటి మీ తాతలు లేదా గొప్ప తాతలు లేదా whatnot టాప్, మూలపురుషుడైన మరియు కుటుంబ Matriarch, కేవలం ఒక రూట్ నోడ్, క్రింద పిలవబడే దాని పిల్లలు ఇవి, ఇది క్రింద దాని పిల్లలు, లేదా దాని వారసులు సాధారణంగా. మరియు ఎవరైనా ఆఫ్ ఉరి కుటుంబం దిగువన చెట్టు, ఉండడంవల్ల కుటుంబం లో చిన్న, కూడా కేవలం సాధారణంగా ఉంటుంది చెట్టు ఆకులు అని. కాబట్టి ఈ కేవలం ఒక బంచ్ ఉంది పదాలు మరియు నిర్వచనములు ఏదో కంప్యూటర్ లో ఒక చెట్టు అని సైన్స్, ఒక కుటుంబం చెట్టు వంటి చాలా. కానీ ఫ్యాన్సియెర్స్ అవతారములు వార్తలు చెట్లు, వీటిలో ఒకటి ఒక బైనరీ శోధన చెట్టు అంటారు. మరియు మీరు బాధించటం రకం ఈ విషయం వేరుగా ఏమి. సరే, ఏ కోణంలో బైనరీ? ఎక్కడ బైనరీ ఇక్కడ నుండి వస్తుంది? క్షమించాలి? ఇది చాలా ఒక గాని లేదా కాదు. ఇది నోడ్స్ యొక్క ప్రతి ఏ ఉంది ఆ మరింత రెండు కంటే ఎక్కువ పిల్లలు, మేము ఇక్కడ చూడండి. జనరల్, ఒక చెట్టు మరియు మీ తల్లిదండ్రులు మరియు తాతామామల అనేక పిల్లలు కలిగి లేదా grandkids వారు నిజంగానే మీరు, అందువలన ఉదాహరణకు అక్కడ మేము మూడు కలిగి ఆ కుడి చేతి నోడ్ ఆఫ్ పిల్లలు, కానీ ఒక బైనరీ చెట్టు ఒక నోడ్ ఉంది గరిష్టంగా సున్నా, ఒకటి, లేదా రెండు పిల్లలు. మరియు ఆ, ఒక nice ఆస్తి వార్తలు ఇది రెండు పొదగబడి ఉంటే ఎందుకంటే మనం విధంగా చూడాలని కొద్దిగా లాగ్ బేస్ పొందుటకు రెండు చర్య ఇక్కడ చివరకు న వెళుతున్నారు. కాబట్టి మేము సంవర్గమాన ఏదైనా కలిగి. కానీ ఒక క్షణం లో ఆ మరింత. శోధన చెట్టు సంఖ్యలు అని అర్థం ఏర్పాటు అలాంటి ఎడమ పిల్లల విలువ మూలం కంటే ఎక్కువ. మరియు దాని కుడి సంతానం మూలం కంటే పెద్దగా ఉంటాయి. ఇతర మాటలలో, మీరు ఏ తీసుకుంటే నోడ్స్, ఈ చిత్రంలో వృత్తాలు, మరియు దాని ఎడమ చూసి బాల మరియు దాని కుడి బాల, మొదటి, కంటే తక్కువ ఉండాలి రెండవ కంటే ఎక్కువ ఉండాలి. కాబట్టి తెలివి 55 తనిఖీ. ఇది పిల్లల వదిలి 33 ఉంది. ఇది కంటే తక్కువగా. 55 దాని కుడి బాల 77 ఉంది. ఇది కంటే ఎక్కువ. మరియు ఒక పునరావృత నిర్వచనం ఉంది. మేము ఆ ప్రతి ఒకటి తనిఖీ కాలేదు నోడ్స్ మరియు పట్టుకోండి అదే నమూనా. సో ఒక లో nice ఏమిటి బైనరీ శోధన వృక్షం ఒక, మేము దానిని అమలు చేయవచ్చు ఒక struct, కేవలం దీన్ని ఇష్టపడుతున్నారు. మరియు మేము విసిరి చేస్తున్నారు అయినప్పటికీ మీ నిర్మాణాల్లో మా, వారు కొంత ఉన్నారు సహజమైన ఇప్పుడు ఆశాజనక. వాక్యనిర్మాణం, ఇప్పటికీ ఖచ్చితంగా మర్మమైన ఉంది కానీ ఈ ఒక నోడ్ యొక్క కంటెంట్లను సందర్భం మరియు మేము ఉంచడానికి పదం నోడ్ ఉపయోగించి, అది ఒక దీర్ఘ చతురస్రం ఉంది లేదో స్క్రీన్ లేదా ఒక వృత్తంలో, అది కేవలం కొన్ని సాధారణ కంటైనర్ ఒక వంటి ఒక చెట్టు యొక్క ఈ సందర్భంలో, మేము ఒక పూర్ణాంకం అవసరం చూసింది నోడ్స్ యొక్క ప్రతి లో ఆపై నేను రెండు పాయింటర్లు పాయింటింగ్ అవసరం ఎడమ బాల మరియు కుడి బాల, వరుసగా. సో ఎలా మేము వాటిని ఒక struct లో అమలు. మరియు ఎలా నేను కోడ్ అమలు ఉండవచ్చు? సరే, ఒక శీఘ్ర తీసుకుందాం ఈ చిన్న ఉదాహరణ చూడండి. ప్రమేయ కాదు, కానీ నేను కాపీ మరియు ఆ నిర్మాణం అతికించారు. మరియు ఒక బైనరీ కోసం నా ఫంక్షన్ శోధన చెట్టు, అన్వేషణ అంటారు దీంతో ఈ రెండు వాదనలు, పూర్ణాంకం N మరియు ఒక పాయింటర్ చెట్టు ఒక నోడ్, కాబట్టి ఒక పాయింటర్ లేదా ఒక చెట్టు యొక్క root ఒక పాయింటర్, ఎలా నేను N శోధించడం గురించి గో? బాగా, మొదటి, నేను ఉన్నాను ఎందుకంటే గమనికలు వ్యవహరించే, నేను ఒక పవిత్రత చెక్ చేయ బోతున్నాను. చెట్టు సమానం సమానం ఉంటే శూన్య n అయితే, ఈ చెట్టు లో లేదా ఈ చెట్టు లో? ఇది కుడి, కాదు? నేను శూన్య గత am ఉంటే, అక్కడ ఏమీ లేదు. నేను వాటిని అలాగే కేవలం గుడ్డిగా తప్పుడు తిరిగి అంటున్నారు. మీరు నాకు ఏమీ ఇవ్వాలని ఉంటే, నేను ఖచ్చితంగా కాదు ఎన్ని N. కనుగొనేందుకు వేరే సో వాట్ నేను వాటిని ఇప్పుడు తనిఖీ? నేను వేరే బాగా n ఉంటే చెప్పడానికి వెళుతున్నాను చెట్టు నోడ్ వద్ద సంసార కంటే తక్కువ నేను N విలువ అందజేశారు చేసిన. ఇతర మాటలలో, సంఖ్య నేను ఉన్నాను ఉంటే N, చూస్తుంది నోడ్ కంటే తక్కువగా ఉంటుంది నేను చూస్తున్నాను. మరియు నోడ్ నేను చూస్తున్నాను చెట్టు అని పిలుస్తారు వద్ద, మరియు మునుపటి ఉదాహరణ నుండి గుర్తు ఒక పాయింటర్ లో విలువ వద్ద పొందడానికి, నేను బాణం నోటేషన్ ను ఉపయోగిస్తాయి. N చెట్టు బాణం కంటే తక్కువ ఉంటే N, నేను సంభావితంగా ఎడమ వెళ్లాలనుకుంటే. నేను ఎలా ఎడమ శోధించడం వ్యక్తం అనుకుంటున్నారా? ఈ ఉంటే, స్పష్టమైన ఉండాలి ప్రశ్న లో చిత్రం, మరియు నేను ఆమోదించింది చేసిన ఎత్తైన ఆ డౌన్ గురిపెట్టి బాణం. ఆ నా చెట్టు పాయింటర్ ఉంది. నేను చెట్టు యొక్క రూట్ వద్ద గురిపెట్టి చేస్తున్నాను. మరియు నేను సే చూస్తున్నాను ఏకపక్ష సంఖ్యను 44. కంటే 44 తక్కువ లేదా స్పష్టంగా 55 కంటే ఎక్కువ? కనుక ఇది కంటే తక్కువగా. కాబట్టి ఈ పరిస్థితి ఉంటే వర్తిస్తుంది. అందువలన సంభావితంగా, నేను ఏమి అనుకుంటున్నారు నేను 44 చూస్తున్నాను ఉంటే తదుపరి అన్వేషణ? అవును? సరిగ్గా, నేను కావలసిన ఎడమ బాల, అన్వేషణ లేదా ఈ చిత్రంలో ఎడమవైపు ఉప చెట్టు. నిజానికి, నాకు ద్వారా తెలియజేయండి డౌన్ ఇక్కడ చిత్రాన్ని కేవలం ఒక క్షణం, నుండి నేను ఈ గీతలు కాదు. నేను 55 వద్ద ఇక్కడ ప్రారంభించండి, మరియు ఉంటే నాకు తెలుసు ఆ విలువ 44 ఉంది నేను చూస్తున్నాను ఎడమ, అది రకంగా లో ఫోన్ బుక్ చిరిగిపోవడానికి వంటి సగం లేదా సగం చెట్టు చిరిగిపోవడానికి. నేను ఇకపై పట్టించుకోనట్లు చెట్టు యొక్క ఈ మొత్తం సగం. మరియు ఇంకా, ఆసక్తికరంగా పరంగా నిర్మాణం, ఇక్కడ పైగా ఈ విషయం 33 మొదలవుతుంది కూడా ఆ ఒక బైనరీ శోధన వృక్షం. నేను ఎందుకంటే ముందునుంచే ఈ పదం పునరావృత్తమయ్యే చెప్పారు నిజానికి ఈ డేటా నిర్మాణం అని నిర్వచనం ద్వారా పునరావృత ఉంది. మీరు ఈ ఒక చెట్టు కలిగి ఉండవచ్చు పెద్ద, కానీ దాని పిల్లలు ప్రతి ఒకటి చిన్న కొంచెం ఒక చెట్టు సూచిస్తుంది. దానికి యొక్క తాతను ఉండటం లేదా బామ్మగారు, ఇప్పుడు అది కేవలం తల్లి or-- నేను అమ్మ లేదు చెప్పడానికి కాదు లేదా తండ్రి ఆ అదృష్టము. అక్కడ బదులుగా ఇద్దరు పిల్లలు సోదరుడు మరియు తోబుట్టువులు మాదిరిగా అవుతుంది. కుటుంబం చెట్టు ఒక కొత్త తరం. కానీ నిర్మాణాత్మకంగా, ఒకే ఆలోచన. మరియు అది నేను ఒక ఫంక్షన్ కలిగి అవుతుంది ఇది నేను ఒక బైనరీ శోధన శోధించవచ్చు చెట్టు. ఇది శోధన అంటారు. నేను చెట్టు బాణం ఎడమ N కోసం అన్వేషణ N విలువ కంటే ఎక్కువ వేరే ఉంటే నేను ప్రస్తుతం అక్కడనే ఉన్నాను. ఒక క్షణం క్రితం కథ 55. నేను అనే చర్య శోధన నేను కేవలం చెయ్యవచ్చు N ఈ పాస్ మరియు పునరావృతంగా అన్వేషణ ఉప చెట్టు మరియు కేవలం తిరిగి సంసార సమాధానం. ఎల్స్ నేను ఇక్కడ కొన్ని తుది బేస్ కేసు పొందారు. చివరి కేస్ ఏమిటి? ట్రీ గాని NULL. నేను గాని చూస్తున్నాను విలువ కంటే ఇది కంటే తక్కువ లేదా ఎక్కువ లేదా దానికి సమానం. నేను సమాన చెప్పగల్గినవి సమాన, కానీ తార్కికంగా అంతే కేవలం ఇక్కడ else చెప్పడం సమానం. సో నిజమైన నేను ఏదో కనుగొనేందుకు ఎలా ఉంది. సో ఆశాజనక ఈ ఒక ఉంది మరింత బలవంతపు ఉదాహరణకు స్టుపిడ్ సిగ్మా ఫంక్షన్ కంటే మేము తిరిగి కొన్ని ఉపన్యాసాలు చేశాడు పేరు అది ఒక లూప్ ఉపయోగించడానికి కేవలం సులభం ఒకటి నుండి అన్ని సంఖ్యలు అప్ లెక్కించడానికి డేటా నిర్మాణం ఇక్కడ N. కు కూడా పునరావృతంగా అని మేము ఇప్పుడు నిర్వచించిన మరియు పునరావృతంగా డ్రా మమ్మల్ని వ్యక్తం సామర్థ్యం కోడ్ లో కూడా పునరావృత అని. కాబట్టి ఈ ఇక్కడ ఖచ్చితమైన కోడ్. కాబట్టి మేము ఏమి ఇతర సమస్యలు పరిష్కరించగల? దూరంగా నుండి సో శీఘ్ర అడుగు కేవలం ఒక క్షణం చెట్లు. ఇక్కడ ఉంది, జర్మన్ జెండా అంటున్నారు. మరియు స్పష్టంగా ఉంది ఒక ఈ జెండా నమూనా. మరియు ఎన్నో ఉన్నాయి ప్రపంచంలో జెండాలు ఆ పరంగా ఈ వంటి సాధారణ ఉంటాయి వారి రంగులు మరియు నమూనాలు. కానీ ఈ నిలువ ఉంటుంది ఊహించు .GIF, లేదా ఒక JPEG, లేదా బిట్మ్యాప్ లేదా ఒక పింగ్, ఏ గ్రాఫికల్ ఫైల్ ఫార్మాట్ ఇది మీకు, తెలిసిన మేము ఉన్నాము వీటిలో కొన్ని pset4 లో ఆడటం. ఈ నిల్వ విలువైనదే కనపడదు నలుపు పిక్సెల్, బ్లాక్ పిక్సెల్, బ్లాక్ పిక్సెల్, డాట్, డాట్, డాట్, ఒక మొత్తం బంచ్ మొదటి scanline నలుపు పిక్సెళ్ళు, లేదా వరుసగా, అప్పుడు ఒక మొత్తం బంచ్ అదే, అప్పుడు ఒక మొత్తం బంచ్ అప్పుడు అదే, మరియు Red పిక్సెళ్ళు యొక్క మొత్తం బంచ్, Red పిక్సెళ్ళు, ఎరుపు పిక్సెళ్ళు, అప్పుడు మొత్తం పసుపు పసుపు పిక్సెళ్ళు గుత్తిని, కుడి? ఇటువంటి అసమర్థతపై ఇక్కడ ఉంది. ఎలా అకారణంగా మీరు చేస్తాను జర్మన్ జెండా కుదించుము ఒక ఫైలు దానిని అమలు ఉంటే? సమాచారం ఇలా మేము కాదు క్రమంలో డిస్క్ నిల్వ ఇబ్బంది వంటి నుండి మా ఫైలు పరిమాణం తగ్గించడానికి ఒక కిలోబైట్, ఏదో ఒక మెగాబైట్ చిన్న? ఇందులో పునరుక్తి ఉంది ఇక్కడ స్పష్టంగా ఉండాలి? మీరు ఏమి చేయవచ్చు? అవును? సరిగ్గా. ఎందుకు లేదు కాకుండా గుర్తు ప్రతి రంధ్రాన్ని సరి చేయు పిక్సెల్ యొక్క రంగు కేవలం మీరు pset4 లో చేస్తున్నా వంటి బిట్మ్యాప్ ఫైల్ ఫార్మాట్, ఎందుకు మీరు ప్రాతినిధ్యం లేదు ఉదాహరణకు పిక్సెళ్ళు ఎడమవైపున కాలమ్, నలుపు పిక్సెళ్ళు, కొంత కొంత ఎరుపు మరియు పసుపు యొక్క ఒక సమూహం, ఆపై కేవలం ఏదో ఎన్కోడ్ రిపీట్ యొక్క ఆలోచన ఈ 100 సార్లు లేదా ఈ 1,000 సార్లు పునరావృతం? ఎక్కడ 100 లేదా 1,000 కేవలం పూర్ణాంకం, కాబట్టి మీరు కేవలం ఒకే సంఖ్యలో దూరంగా పొందవచ్చు బదులుగా వందల లేదా వేల అదనపు పిక్సెళ్ళు. నిజానికి, ఆ మేము ఎలా వార్తలు జర్మన్ జెండా కుదించుము కాలేదు. మరియు ఫ్రెంచ్ జెండా గురించి ఇప్పుడు ఏమి? విధమైన మరియు కొద్దిగా మానసిక వ్యాయామం, ఇది జెండా డిస్క్లో ఎక్కువ సంపీడన? జర్మన్ జెండా లేదా ఫ్రెంచ్ జెండా, మేము ఆ పద్ధతిని ఉంటే? జర్మన్ జెండా ఉంది ఎందుకంటే మరింత సమాంతర పునరుక్తి. మరియు నమూనా ద్వారా, అనేక గ్రాఫికల్ ఫైల్ ఫార్మాట్లలో నిజానికి స్కాన్ పంక్తులు పని లేదు అడ్డంగా. వారు పని కాలేదు నిలువుగా, కేవలం మానవత్వం నిర్ణయించుకుంది సంవత్సరాల క్రితం మేము చేస్తాము సాధారణంగా విషయాలు వరుసగా అనుకుంటున్నారో కాలమ్ వరుసగా బదులుగా కాలమ్. కాబట్టి నిజంగా మీరు ఒకవేళ ఫైలు చూడండి ఒక జర్మన్ జెండా మరియు ఒక ఫ్రెంచ్ యొక్క పరిమాణం జెండా, చాలా కాలం స్పష్టత ఉంది అదే, అదే వెడల్పు మరియు ఎత్తు, ఈ ఒక ఇక్కడ పెద్ద అవతరిస్తుంది మీరు ఎందుకంటే మీరే మూడు సార్లు పునరావృతం ఉంటుంది. మీరు నీలం, పునః పేర్కొనాలి మీరే, తెలుపు, ఎరుపు మిమ్మల్ని మళ్ళీ మీ పునరావృతం. మీరు అన్ని వెళ్ళి కాదు కుడి మార్గం. మరియు జనాంతికంగా, చేయడానికి కుదింపు క్లియర్ ఇవి ఉంటే, ప్రతిచోటా ఉంది ఒక ఆర్జించింది వీడియో నుండి నాలుగు చట్రాలు మీరు ఒక సినిమా గుర్తుచేసుకున్నారు ఉండవచ్చు లేదా వీడియో సాధారణంగా ఉంది సెకనుకు 29 లేదా 30 ఫ్రేములు వంటి. ఇది కొద్దిగా ఫ్లిప్ బుక్ వంటిది పేరు మీరు కేవలం చిత్రం, చిత్రం, చిత్రం, చిత్రం చూడండి, చిత్రం కేవలం సూపర్ ఫాస్ట్ కాబట్టి ఇది కనిపిస్తోంది తెరపై నటులు తరలిస్తున్నారు. ఇక్కడ ఒక బంబుల్ బీ లో వార్తలు పువ్వుల ఒక బంచ్ పైన. మరియు అది రకమైన కావచ్చు అయితే మొదటి చూపులో చూడటానికి హార్డ్, కదిలే మాత్రమే విషయం ఈ చిత్రం బీ ఉంది. ఏం నిల్వ గురించి మూగ వీడియో కంప్రెస్డ్? ఇది వీడియో నిల్వ వేస్ట్ రకంగా నాలుగు దాదాపు ఒకేలా చిత్రాలు ఆ మాత్రమే వరకు బీ కౌంటీ వంటి విభిన్నమైన. మీరు తీసివేసినట్లు అతి ఆ సమాచారాన్ని మరియు మాత్రమే గుర్తు, ఉదాహరణకు, మొదటి ఫ్రేమ్ మరియు చివరి చట్రం, మీరు చేసిన ఉంటే కీ ఫ్రేములు ఎప్పుడూ పదం విన్న మరియు కేవలం నిల్వ తేనెటీగ ఉన్న మధ్య. మరియు మీరు కలిగి లేదు , గులాబీ అన్ని నిల్వ నీలం, మరియు మరియు ఆకుపచ్చ విలువలు అలాగే. కాబట్టి ఈ మాత్రమే అని చెప్పబడినది కుదింపు ప్రతిచోటా ఉంది. ఇది మేము తరచుగా ఉపయోగించే ఒక టెక్నిక్ వార్తలు ఈ రోజుల్లో మంజూరు కోసం లేదా పడుతుంది. కానీ ఎలా మీరు టెక్స్ట్ కుదించుము చెయ్యాలి? ఎలా మీరు టెక్స్ట్ కుదించేందుకు గురించి గో? Well, అక్షరాలు ప్రతి లో ASCII ఒక బైట్, లేదా ఎనిమిది బిట్స్ ఉంది. మరియు ఆ రకమైన మూగ, రైట్? మీరు బహుశా ఒక రకమైన ఎందుకంటే మరియు E మరియు నేను మరియు O మరియు U చాలా మరింత తరచుగా W లేదా Q లేదా Z వంటి కంటే, భాష ఆధారంగా దీనిలో మీరు ఖచ్చితంగా రాస్తున్నాం. కాబట్టి మనం ఉపయోగిస్తున్న ప్రతి అక్షరానికి ఎనిమిది బిట్స్ కనీసం సహా ప్రముఖ అక్షరాలు, కుడి? ఎందుకు తక్కువ బిట్స్ ఉపయోగించడానికి లేదు సూపర్ ప్రముఖ అక్షరాలు, E వంటి విషయాలు మీరు ఊహించడం మొదటి వీల్ ఆఫ్ ఫార్చూన్ లో, మరియు మరింత బిట్స్ ఉపయోగించడానికి తక్కువ ప్రజాదరణ అక్షరాలు? ఎందుకు? మేము కేవలం చూడాలని ఎందుకంటే తక్కువ తరచుగా వాటిని ఉపయోగించండి. సరే, అక్కడ ఆ అవుతుంది దీన్ని తయారు ప్రయత్నాలు. మరియు మీరు గ్రేడ్ నుండి గుర్తు ఉంటే పాఠశాల లేదా ఉన్నత పాఠశాల, మోర్స్ కోడ్. మోర్స్ కోడ్ చుక్కలు కలిగి మరియు వడివడిగా ఉండాలనే ఒక తీగ వంటి పాటు ప్రసరణ శబ్దాలు లేదా విధమైన సంకేతాలు. కానీ మోర్స్ కోడ్ సూపర్ శుభ్రంగా ఉంది. ఇది ఒక బైనరీ వ్యవస్థ రకంగా మీరు చుక్కలు లేదా వడివడిగా కలిగి. కానీ మీరు, ఉదాహరణకు, రెండు చుక్కలు చూడండి ఉంటే. లేదా మీరు ఆపరేటర్లు తిరిగి అనుకుంటే ఎవరు, బీప్, బీప్, బీప్ వంటి వెళ్తాడు బీప్, కొద్దిగా ట్రిగ్గర్ నొక్కిన ఒక సిగ్నల్ ప్రసారం, మీరు ఉంటే, గ్రహీత, రెండు అందుకుంటుంది చుక్కలు, ఏ సందేశం మీరు అందుకున్న? పూర్తిగా ఏకపక్షంగా. నేను? నేను? లేదా ఏ గురించి లేదా నేను? బహుశా అది కేవలం రెండు E యొక్క సరైన? కాబట్టి ఈ సమస్య ఉంది మోర్స్ తో decodability యొక్క కోడ్, అనగా తప్ప మీరు సందేశాన్ని పంపడం వ్యక్తి నిజానికి కాబట్టి మీరు క్రమం చేయవచ్చు అంతరాయాల చూడండి లేదా అక్షరాల మధ్య ఖాళీలు వినడానికి, అది కేవలం తగినంత కాదు సున్నాలు మరియు వాటిని ఒక ప్రవాహం పంపండి, లేదా చుక్కలు మరియు డాష్లు సందిగ్ధత ఉంది ఎందుకంటే. E ను ఒక డాట్, కాబట్టి మీరు ఉంటే రెండు చుక్కలు చూడండి లేదా రెండు చుక్కలు వినడానికి, దీనికి రెండు E యొక్క వార్తలు లేదా ఉండవచ్చు అది ఒక I. వార్తలు కాబట్టి మేము ఒక అని ఒక వ్యవస్థ అవసరం కంటే ఎక్కువ తెలివైన చిన్న. ఒక మనిషి అనే హఫ్ఫ్మన్ సంవత్సరాల క్రితం సరిగ్గా ఈ ముందుకు వచ్చారు. కాబట్టి మేము కేవలం చూడాలని ఒక్కసారి తీసుకోవాలని ఎలా ఈ చెట్లు కు సంబంధించి ఉంటాయి. ఈ కొన్ని అని అనుకుందాం మీరు పంపాలని తెలివితక్కువదని సందేశాన్ని కేవలం A, B కూడి, C యొక్క డి లు మరియు E యొక్క, కానీ పునరుక్తి చాలా ఇక్కడ ఉంది. ఆంగ్ల అని అర్థం కాదు. ఇది ఎన్క్రిప్ట్ చేయబడలేదు. ఇది కేవలం ఒక పెద్ద సందేశం పునరుక్తం మా తో. మీరు నిజంగా కౌంట్ మీ అవుట్ చేస్తే అన్ని A యొక్క, B యొక్క, C యొక్క, డి లు, మరియు E యొక్క, ఇక్కడ ఫ్రీక్వెన్సీ. అక్షరాల 20% A యొక్క, అక్షరాల 45% E యొక్క, మరియు మూడు ఇతర పౌనఃపున్యాలు. మేము మాన్యువల్గా అక్కడ అప్ లెక్కిస్తారు మరియు కేవలం గణిత చేశాడు. కాబట్టి ఆ అవుతుంది హఫ్ఫ్మన్, కొంతకాలం క్రితం, మీకు తెలిసిన, గ్రహించారు ఏమి, నేను భవనం ప్రారంభం ఉంటే ఒక చెట్టు, లేదా చెట్ల అడవి, మీరు రెడీ ఉంటే, క్రింది విధంగా, నేను క్రింది చేయవచ్చు. నేను ప్రతి ఒక నోడ్ ఇవ్వాలని వెళుతున్న నేను పట్టించుకోనట్లు ఆ అక్షరాల మరియు నేను నిల్వ వెళుతున్న ఆ నోడ్ లోపల ఒక ఫ్లోటింగ్ పాయింట్ వంటి పౌనఃపున్యాల విలువ, లేదా మీరు, చాలా, ఒక N దీనిని వాడవచ్చు కానీ మేము కేవలం ఇక్కడ ఒక ఫ్లోట్ ఉపయోగిస్తాము. మరియు అల్గోరిథం అతను మీరు ప్రతిపాదించాయి ఒకే నోడ్ యొక్క ఈ అటవీ తీసుకుని చెట్లు, కాబట్టి చిన్న సూపర్ చెట్లు, మరియు మీరు వాటిని కలిపే మొదలు కొత్త సమూహాలు, కొత్త తల్లిదండ్రులు, మీరు రెడీ ఉంటే. మరియు మీరు ఎంచుకోవడం ద్వారా దీన్ని ఒక సమయంలో రెండు చిన్న పౌనఃపున్యాల. కాబట్టి నేను 10% మరియు 10% పట్టింది. నేను ఒక కొత్త నోడ్ సృష్టించడానికి. మరియు నేను కొత్త నోడ్ 20% కాల్. ఏ రెండు నోడ్స్ నేను తదుపరి మిళితం? ఇది ఒక చిన్న అస్పష్ట ఉంది. కాబట్టి కొన్ని సందర్భాలలో మూలలో ఉంది పరిగణలోకి, కానీ అందంగా విషయాలు ఉంచడానికి, నేను 20% ఎంచుకోండి వెళుతున్న - నేను ఇప్పుడు పిల్లలు పట్టించుకోకుండా. నేను 20% ఎంచుకోండి వెళుతున్న మరియు 15% మరియు రెండు కొత్త అంచులు డ్రా. ఇప్పుడు ఇది రెండు నోడ్స్ నేను తార్కికంగా మిళితం లేదు? అన్ని పిల్లలు, అన్ని విస్మరించు మునుమనవళ్లను, కేవలం మూలాలు చూడండి ఇప్పుడు. ఏ రెండు నోడ్స్ నేను కలిసి టై చెయ్యాలి? పాయింట్ రెండు, 0.35. కాబట్టి నాకు రెండు కొత్త అంచులు డ్రా తెలియజేయండి. ఆపై నేను కేవలం ఒక ఎడమ పొందారు. కాబట్టి ఇక్కడ ఒక చెట్టు. మరియు అది ఉద్దేశపూర్వకంగా డ్రా అయిన రకమైన అందంగా చూడండి, కానీ అంచులు కలిగి గమనించవచ్చు కూడా సున్నా మరియు ఒకటి లేబుల్ చేయబడ్డాయి. కాబట్టి ఎడమ అంచులు అన్ని సున్నా ఏకపక్ష, కానీ నిలకడగా. అన్ని కుడి అంచుల కావలి. కాబట్టి హాఫ్మన్, ప్రతిపాదించాయి ఏమి మీరు ఒక B ప్రాతినిధ్యం అనుకుంటే, సంఖ్య 66 ప్రాతినిధ్యం కాకుండా ఎనిమిది మొత్తం బిట్స్ ఇది ఒక ASCII, మీరు ఏమి, కేవలం స్టోర్ తెలుసు నమూనా సున్నా సున్నా, సున్నా, సున్నా మార్గం, ఎందుకంటే నా చెట్టు నుండి, మిస్టర్ హఫ్ఫ్మన్ చెట్టు, మూలం నుంచి ఆకు. మీరు ఒక నిల్వ చేయాలనుకుంటే E, దీనికి విరుద్ధంగా, లేదు ఒక E. ప్రాతినిధ్యం ఎనిమిది బిట్స్ పంపడానికి బదులుగా, బిట్స్ ఏ నమూనా పంపాలనుకుంటున్నారా? వన్. మరియు ఈ గురించి nice ఏది ఇ అత్యంత ప్రాచుర్యం అక్షరం, మీరు ఉపయోగిస్తున్నట్లయితే ఇది చిన్నదైన కోడ్. తదుపరి అత్యంత ప్రాచుర్యం లేఖ కనిపిస్తోంది A. ఉంది కాబట్టి ఎన్ని బిట్స్ అతను ఆ కోసం ఉపయోగించి ప్రపోజ్ చేయలేదు? జీరో, ఒకటి. మరియు అది అమలు ఎందుకంటే ఈ చెట్టు గా, ఇప్పుడు కోసం నాకు ఉంది నియమములు వీలు మోర్స్ వంటి ఏ సందిగ్ధత కోడ్ యొక్క అన్ని ఎందుకంటే మీరు పట్టించుకోనట్లు అక్షరాలు ఈ అంచులు ముగింపు వద్ద ఉన్నాయి. కాబట్టి కేవలం ఒకటి ఒక చెట్టు యొక్క అప్లికేషన్. ఈ is-- మరియు నేను దుర్చాల్సిన చేస్తాము ఈ నా చేతి ఎలా మీరు ఒక సి నిర్మాణం ఈ అమలు ఉండవచ్చు. మేము కేవలం మిళితం అవసరం ఒక గుర్తు, చార్ వంటి మరియు పౌనఃపున్య ఎడమ మరియు కుడి. కానీ యొక్క రెండు చూద్దాం చివరి ఉదాహరణలు మీరు చేస్తాము తర్వాత చాలా బాగా సమస్య క్విజ్ సున్నా ఐదు సెట్. కాబట్టి డేటా నిర్మాణం ఉంది ఒక హాష్ పట్టిక అని పిలుస్తారు. మరియు ఒక హాష్ పట్టిక రకమైన ఉంది ఇది బకెట్లు కలిగి ఉంటుంది చల్లబరుస్తుంది. మరియు నాలుగు బకెట్లు ఉంది అనుకుందాం ఇక్కడ, కేవలం నాలుగు ఖాళీ ప్రదేశాలు. ఇక్కడ ఉంటుంది పేకాటలో, మరియు క్లబ్, చేతిపార, క్లబ్, వజ్రాలు, క్లబ్, వజ్రాలు, క్లబ్, వజ్రాలు, clubs-- కాబట్టి ఈ యాదృచ్ఛిక ఉంది. హార్ట్స్, hearts-- నేను ఉన్నాను ఇక్కడ ఇన్పుట్లను అన్ని bucketizing. మరియు ఒక హాష్ పట్టిక అవసరాలకు మీ ఇన్పుట్ చూడండి, ఆపై ఒక నిర్దిష్ట అది చాలు మీరు చూసే ఆధారంగా ఉంచండి. ఇది ఒక అల్గోరిథం యొక్క. నేను ఒక సూపర్ వాడుకుంటున్నారని సాధారణ దృశ్యమాన అల్గోరిథం. ఇది కష్టతరమైన భాగం చిత్రాలు ఉన్నాయి ఏమి గుర్తు. ఆపై మొత్తం నాలుగు విషయాలు ఉంది. ఇప్పుడు స్టాక్లు పెరుగుతున్న ఇక్కడ ఒక సమాలోచన డిజైన్ విషయం. కానీ నేను వేరే ఏమి ఉండవచ్చు? కాబట్టి నిజంగా ఇక్కడ మేము ఒక పాత పాఠశాల పరీక్ష పుస్తకాల సమూహం. ఒక సమూహం అని అనుకుందాం విద్యార్థులు పేర్లు ఇక్కడ ఉన్నాయి. ఇక్కడ ఒక పెద్ద హాష్ పట్టిక ఉంది. బదులుగా నాలుగు బకెట్లు, నేను 26 చెప్పండి లెట్. మరియు మేము 26 ఋణం వెళ్లాలనుకుంటే లేదు అవుట్సైడ్ [నుండి విషయాలు? Annenberg?], కాబట్టి ఇక్కడ ప్రాతినిధ్యం ఐదు వార్తలు ఒక Z. ద్వారా మరియు నేను ఉంటే దీని పేరు ఒక మొదలవుతుంది ఒక విద్యార్థి చూడండి నేను అక్కడ అతని లేదా ఆమె క్విజ్ ఉంచారు వెళుతున్న. ఎవరైనా సి మొదలవుతుంది ఉంటే, అక్కడ పైగా, ఫంక్షన్ నిజానికి, అలా కోరుకోలేదు. B ఇక్కడ పైగా వెళుతుంది. నేను పొందాను A మరియు B మరియు C. మరియు ఇప్పుడు ఇక్కడ మరొక విద్యార్ధి యొక్క. కానీ ఈ హాష్ పట్టిక ఉంటే వ్యూహం తో అమలు, నేను రకమైన చిత్తు చేశాడు చేస్తున్నాను ఈ సమయంలో, కుడి? నేను రకమైన ఈ ఎక్కడో ఉంచాలి. కాబట్టి నేను ఈ పరిష్కరించేందుకు ఒక మార్గం అన్ని ఉంది కుడి, ఒక C బిజీగా ఉంది, B బిజీగా ఉంది, బిజీగా ఉంది. నేను వద్ద కనుక D. అతడిని వెళుతున్న మొదటి, నేను యాదృచ్ఛిక తక్షణ యాక్సెస్ విద్యార్థులకు బకెట్లు ప్రతి. కానీ ఇప్పుడు అది రకమైన సంక్రమణ యొక్క ఏదో సరళ లోకి, నేను ఒకరి కోసం అన్వేషణ అనుకుంటే ఎందుకంటే దీని పేరు ఒక మొదలవుతుంది, నేను ఇక్కడ తనిఖీ. కానీ ఈ ఒక కాదు ఉంటే నేను చూస్తున్నాను విద్యార్థి, నేను రకమైన తనిఖీ ప్రారంభించడానికి కలిగి బక్కెట్లు, నేను ఏమి ఎందుకంటే యొక్క సరళంగా విధమైన ఉంది డేటా నిర్మాణం అన్వేషిస్తాయి. కేవలం చూడండి చెప్పడం ఒక పెద్ద మార్గం మొదటి అందుబాటులో ప్రారంభ కోసం, మరియు, మాట్లాడటానికి, ఒక ప్లాన్ బి వలె ఉంచాలి లేదా ఈ సందర్భంలో ప్రణాళిక D, విలువ బదులుగా ఆ ప్రదేశంలో జరగలేదు. ఈ మీరు చేసిన ఉంటే కేవలం ఉంది 26 స్థానాలు మరియు అన్ని విద్యార్థులు వచ్చింది పేరు Q లేదా Z, లేదా ఏదో వంటి ఆ, కనీసం మీరు స్థలం ఉపయోగించి చేస్తున్నారు. కానీ మేము ఇప్పటికే మరింత చూసిన ఇక్కడ తెలివైన పరిష్కారాలను, కుడి? మీరు బదులుగా ఏం చేస్తారు మీరు ఢీకొన్న కలిగి ఉంటే? రెండు ప్రజలు ఉంటే A పేరు, ఏమైంది ఒక తెలివిగా లేదా ఎక్కువ ఉండేవి కేవలం కంటే స్పష్టమైన పరిష్కారం D భావించబడేది పేరు ఒక పెట్టటం? నేను కేవలం వెళ్లరు అవుట్సైడ్ [? Annenberg?], malloc, మరొక నోడ్ వంటి, అది చాలు ఇక్కడ, మరియు ఇక్కడ ఒక విద్యార్థి ఉంచారు. నేను తప్పనిసరిగా కలిగి తద్వారా వ్యూహం యొక్క కొన్ని రకం, లేదా మేము ఉన్నాము వంటి బహుశా మరింత అందంగా ఒక లింక్ జాబితా చూడటానికి మొదలు. కాబట్టి ఒక హాష్ పట్టిక నిర్మాణం కేవలం ఈ వంటి కనిపించాలి కానీ మరింత తెలివిగా, మీరు ఏదో అని ప్రత్యేక కూర్పికం, అనగా ఒక హాష్ పట్టిక చాలా సరళంగా వ్యూహం యొక్క ప్రతి, ఉంది దీని అంశాలు ఒక సంఖ్య కాదు, ఒక లింక్ జాబితా కూడా ఉంది. మీరు సూపర్ ఫాస్ట్ యాక్సెస్ పొందడానికి తద్వారా ఎక్కడ మీ విలువ హాష్ నిర్ణయించింది. మచ్ కార్డులు ఉదాహరణకు లాగే, నేను సూపర్ శీఘ్ర నిర్ణయాలు తీసుకున్నాడు. హార్ట్స్ వజ్రాలు ఇక్కడ వెళ్ళిపోతుంది, ఇక్కడ వెళ్తాడు. ఇక్కడ అదే, ఇక్కడ వెళ్తాడు, D B ఇక్కడ వెళ్తాడు, ఇక్కడ వెళ్తాడు. కాబట్టి సూపర్ ఫాస్ట్ లుక్-అప్స్, మరియు ఉంటే మీరు ఒక సందర్భంలో లోకి అమలు జరిగే ఇక్కడ మీరు పొందారు ప్రమాదాలలో, రెండు అదే పేరుతో ప్రజలు, బాగా అప్పుడు మీరు వాటిని కలిసి లింకింగ్ మొదలు. మరియు ఉండవచ్చు మీరు వాటిని క్రమబద్ధీకరించబడింది ఉంచడానికి అక్షర, బహుశా మీరు లేదు. కానీ కనీసం ఇప్పుడు మేము చైతన్యానికి కలిగి. కాబట్టి ఒక వైపు మేము సూపర్ ఫాస్ట్ కలిగి స్థిరంగా సమయం మరియు లీనియర్ సమయం రకమైన ఈ అనుసంధాన జాబితాలు ఉంటే చేరి కొద్దిగా పొడవుగా పొందడానికి ప్రారంభించండి. సో ఒక వెర్రి యొక్క ఈ రకమైన, క్రితం అసాధారణ ప్రవర్తన కలిగిన జోక్ సంవత్సరాల. CS50 హాక్-a- థోన్ వద్ద, విద్యార్థులు తనిఖీ చేసినప్పుడు, కొన్ని TF లేదా CA ప్రతి సంవత్సరం అది భావించిన ఇవ్వడానికి ఫన్నీ వార్తలు ఈ వంటి ఒక గుర్తు ఉన్న అది కేవలం మీ పేరు ఒక A మొదలవుతుంది ఉంటే అర్థం, ఈ విధంగా వెళ్ళండి. మీ పేరు మొదలవుతుంది ఉంటే ఒక B, దీన్ని సరే వెళ్ళి, అది బహుశా తరువాత సెమిస్టర్ లో ఫన్నీ వార్తలు. కానీ మరొక ఉంది చాలా, ఈ చేయడం యొక్క మార్గం. ఆ తిరిగి రండి. కాబట్టి ఈ నిర్మాణం. ఈ మా చివరి ఉంది నేడు నిర్మాణం, ఒక trie అని ఏదో ఉంది. కొన్ని కారణాల వలన చిన్న ఇది T-R-ఐ-E, తిరిగి, కానీ అది trie అని. కాబట్టి ఒక trie మరొక ఆసక్తికరమైన ఉంది ఈ ఆలోచనలు చాలా మిశ్రమానికి. ఇది మేము ముందు చూసిన ఇది ఒక చెట్టు, వార్తలు. అది ఒక బైనరీ శోధన చెట్టు కాదు. ఇది పిల్లలు ఏ సంఖ్యలో ఒక చెట్టు కానీ ఒక trie లో పిల్లలు ప్రతి ఒక శ్రేణి. పరిమాణం యొక్క ఒక అమరిక, 26 లేదా ఉండవచ్చు 27 సే మీరు మిశ్రమ పేర్లు మద్దతు అనుకుంటే లేక ప్రజల పేర్లు సంగ్రహంగా రాయడానికి. కాబట్టి ఈ ఒక డేటా నిర్మాణం. మరియు మీరు ఎగువ నుండి చూస్తే దిగువ, ఇష్టం ఉంటే , అక్కడ టాప్ నోడ్, M చూడండి అక్కడ ఎడమవైపున విషయం గురిపెట్టి, ఇది అప్పుడు A, X, W, E, L, L. ఈ ఉంది కేవలం ఒక డేటా నిర్మాణం ఏకపక్ష ప్రజల పేర్లు నిల్వ ఉంది. మరియు మాక్స్వెల్ కేవలం క్రింది నిల్వ చేయబడితే శ్రేణి అమరిక శ్రేణి యొక్క ఒక మార్గం. ఒక trie గురించి కానీ అద్భుతమైన ఏమిటి ఆ లింక్ జాబితా అయితే మరియు కూడా వ్యూహం మనం సంపాదించిన చేసిన ఉత్తమ ఉంది సరళ సమయం లేదా సంవర్గమాన సమయం చూస్తున్న ఎవరినో. ఒక trie ఈ డేటాను నిర్మాణం, ఉంటే నా డేటా నిర్మాణం అది లో ఒక పేరు ఉంది మరియు నేను మాక్స్వెల్ చూస్తున్నాను, నేను రెడీ అందంగా త్వరగా అతనిని కనుగొనేందుకు వెళుతున్న. నేను కేవలం M-A-X-W-E-L-L చూడండి. ఉంటే ఈ డేటా నిర్మాణం, దీనికి విరుద్ధంగా, ఒక ఉంది ఉంటే N, ఒక మిలియన్ ఉంటే ఈ డేటాను నిర్మాణంలో మిలియన్ పేర్లు, మాక్స్వెల్ ఇప్పటికీ అవతరిస్తుంది గుర్తించగల కేవలం M-A-X-W-E-L-L తర్వాత దశలను. మరియు డేవిడ్ D-A-V-ఐ-D దశలను. ఇతర మాటలలో, నిర్మించడం ద్వారా ఒక డేటా నిర్మాణం వచ్చింది ఈ శ్రేణుల యొక్క అన్ని, ఇవన్నీ తమను రాండమ్ యాక్సెస్ మద్దతు నేను ప్రజల చూసేటప్పుడు ప్రారంభించవచ్చు ఆ సమయం మొత్తాన్ని ఉపయోగించి పేరు సంఖ్య నిష్పత్తిలో డేటా నిర్మాణంలో విషయాలు, వంటి మిలియన్ ఇప్పటికే పేర్లు. దానిని కనుగొనేందుకు నాకు సమయం మొత్తం M-A-X-W-E-L-L ఈ డేటాను నిర్మాణంలో ఉంది దామాషా లేదు డేటా నిర్మాణం యొక్క పరిమాణం, కానీ పేరు పొడవుకి. మరియు వాస్తవికంగా పేర్లు మేము అప్ చూస్తున్నారా పొడవైన ఎప్పుడూ వెర్రి వెళ్తున్నారు. బహుశా ఎవరైనా ఒక 10 పాత్ర ఉంది 20 పాత్ర పేరు పేరు. ఇది కుడి, ఖచ్చితంగా పరిమిత వార్తలు? భూమిపై మానవ ఉంది ఎవరు సాధ్యమైనంత పొడవైన పేరు ఉంది, కానీ ఆ పేరు ఒక స్థిరాంకం విలువ పొడవు, కుడి? ఇది ఏ కోణంలో ఉంటుంది లేదు. కాబట్టి ఈ విధంగా, మేము చేసిన డేటా నిర్మాణం సాధించింది స్థిరమైన సమయంలో లుక్ అప్ ఉంది. ఇది దశలను సంఖ్య పడుతుంది చేస్తుంది ఇన్పుట్ పొడవు మీద ఆధారపడి, పేరుతో కానీ సంఖ్య డేటా నిర్మాణం. మేము పేర్లు సంఖ్య రెట్టింపు చేస్తే ఒక బిలియన్ బిలియన్ రెండు నుండి మరుసటి సంవత్సరం, ఫైండింగ్ మాక్స్వెల్ తీసుకోవాలని అన్నారు ఏడు అడుగులు యొక్క ఖచ్చితమైన అదే నెంబర్ అతనికి కనుగొనేందుకు. కాబట్టి మనం సాధించిన కనిపిస్తుంది సమయం నడుస్తున్న మన పవిత్ర గ్రెయిల్. సో శీఘ్ర ప్రకటనల యొక్క జంట. క్విజ్ సున్నా వస్తోంది. కోర్సు యొక్క వెబ్ సైట్ ఆ మరింత తదుపరి రెండు రోజుల్లో పైగా. సోమవారం యొక్క ఇది ఒక సెలవు ఉపన్యాసం ఇక్కడ హార్వర్డ్ వద్ద సోమవారం. ఇది న్యూ హవెన్ లో కాదు కాబట్టి మేము తరగతి వేస్తున్నాము సోమవారం ఉపన్యాసం న్యూ హవెన్. అంతా చిత్రీకరించారు చేయబడుతుంది మరియు, ఎప్పటిలాగే ప్రత్యక్ష ప్రసారం కానీ నేడు అంతం తెలియజేయండి 30 రెండవ క్లిప్ తో పిలవబడే "డీప్ ఆలోచనలు" Daven Farnham ద్వారా ఇది శనివారం ద్వారా గత ఏడాది ప్రేరణతో నైట్ లైవ్ యొక్క "డీప్ ఆలోచనలు" జాక్ హ్యాండీ, ద్వారా ఆ ఇప్పుడు సమంజసం ఉండాలి. FILM: ఇప్పుడు, "డీప్ Daven Farnham ద్వారా ఆలోచనలు ". హాష్ పట్టిక. SPEAKER 1: అన్ని కుడి, ఇప్పుడు కోసం అది వార్తలు. వచ్చే వారం మీరు చూస్తారు. డౌ: ఇది చర్య లో చూడటానికి. కాబట్టి యొక్క ఇప్పుడు ఆ వద్ద ఒక లుక్ తీసుకుందాం. ఇక్కడ, మేము ఒక క్రమబద్ధీకరించనిది శ్రేణి కలిగి. IAN: డౌ, మీరు ముందుకు మరియు పునఃప్రారంభించుము వెళ్ళే కేవలం ఒక రెండవ కోసం ఈ దయచేసి. అన్ని కుడి, కెమెరాలు, కాబట్టి రోలింగ్ ఉంటాయి చర్య మీరు డౌ సిద్ధంగా ఉన్నాము చేసినప్పుడు, సరి? డౌ: అన్ని కుడి, కాబట్టి మేము ఇక్కడ కలిగి ఒక క్రమబద్ధీకరించనిది శ్రేణి. నేను అన్ని మూలకాల రంగు చేసిన అది నిజానికి, ఉంది సూచిస్తున్నాయి ఎరుపు, క్రమబద్ధీకరించనిది. కాబట్టి మొదటి విషయం మేము లేదని గుర్తు మేము శ్రేణి యొక్క ఎడమ అర్ధ క్రమం ఉంది. అప్పుడు మేము కుడి క్రమం అర్రే సగం. యా-డా య-డా య-డా మేము వాటిని కలిసి విలీనం. మరియు మేము ఒక పూర్తిగా క్రమబద్ధీకరించబడతాయి శ్రేణి కలిగి. కాబట్టి ఆ పని విధమైన విలీనం ఎలా. IAN: అయ్యో, అయ్యో, అయ్యో, కట్, కట్, కట్, కట్. డౌ, మీరు కేవలం య-da కాదు, య-డా య-డా విలీనంతో విధమైన ద్వారా మీ మార్గం. డౌ: నేను ఇప్పుడే చేశాం. పర్లేదు. మేము అన్నిటికి ఉన్నాము. యొక్క కేవలం తీస్తూ లెట్. సో ఏమైనప్పటికీ, IAN: మీరు వివరించేందుకు ఇది పూర్తిగా కంటే. కేవలం చాలదు. డౌ: ఇయాన్, మేము లేదు ఒక తిరిగి వెళ్లాలి. పర్లేదు. సో ఏమైనప్పటికీ, మేము merge-- కొనసాగించాలని ఉంటే ఇయాన్, మేము చిత్రీకరణ మధ్యలో ఉన్నాము. IAN: నేను తెలుసు. మరియు మేము కేవలం య-da కాదు, య-డా మొత్తం ప్రక్రియ ద్వారా య-డా. మీరు ఎలా వివరించేందుకు రెండు వైపులా కలిసి విలీనం చేసుకోగా. డౌ: కానీ మేము ఇప్పటికే చేసిన వివరించారు రెండు sides-- IAN: మీరు కేవలం చూపిన చేసిన వాటిని కలిసిపోయినా శ్రేణి. డౌ: వారు ప్రక్రియ తెలుసు. వారు జరిమానా ఉన్నారు. మేము అది పైగా పది సార్లు మారారు. IAN: మీరు కేవలం కుడి అది పైగా దాటవేయబడింది. మేము ఒక తిరిగి చూడాలని, మీరు అది పైగా మీరు యా-డా య-da కాదు. తిరిగి ఒక అన్ని కుడి. డౌ: నేను తిరిగి వెళ్ళడానికి కలిగి స్లయిడ్లను ద్వారా? దేవుడా. ఇది ఆరవ సారి, ఇయాన్ వంటిది. పర్లేదు. IAN: అన్ని కుడి. మీరు సిద్ధంగా ఉన్నారా? గ్రేట్. యాక్షన్.