1 00:00:00,000 --> 00:00:10,900 2 00:00:10,900 --> 00:00:15,860 >> SPEAKER 1: అన్ని కుడి, కాబట్టి ఈ ఉంది CS50 ఈ వారం ఐదు ముగింపు. 3 00:00:15,860 --> 00:00:19,220 మరియు చివరిసారి గుర్తు మేము ప్రారంభించారు ఫ్యాన్సియెర్స్ డేటా చూడటం 4 00:00:19,220 --> 00:00:22,310 పరిష్కరించడానికి ప్రారంభించారు నిర్మాణాలు పరిచయం ప్రారంభించారు సమస్యలు, 5 00:00:22,310 --> 00:00:25,640 కొత్త సమస్యలు, కానీ ఈ కీ త్రెడింగ్ యొక్క విధమైన ఉంది మేము 6 00:00:25,640 --> 00:00:27,940 నోడ్ నుండి నోడ్ ప్రారంభించారు. 7 00:00:27,940 --> 00:00:30,085 కాబట్టి కోర్సు యొక్క ఈ ఒక ఒక్కొక్కటిగా లింక్ జాబితా. 8 00:00:30,085 --> 00:00:31,960 మరియు ఒక్కొక్కటిగా, లింక్డ్ నేను కేవలం ఒక ఉంది అర్థం 9 00:00:31,960 --> 00:00:33,380 ఆ నోడ్స్ ప్రతి మధ్య థ్రెడ్. 10 00:00:33,380 --> 00:00:35,890 మీరు ఫ్యాన్సియెర్స్ చేయవచ్చు హాజరవుతారు రెట్టింపైన లింక్ జాబితాలు వంటి విషయాలు 11 00:00:35,890 --> 00:00:38,470 మీరు ఒక బాణం వీరికి , రెండు దిశలలో వెళుతున్న ఇది 12 00:00:38,470 --> 00:00:40,320 కొన్ని సామర్థ్యాలను తో సహాయపడుతుంది. 13 00:00:40,320 --> 00:00:42,000 కానీ ఈ సమస్య పరిష్కారమైంది? 14 00:00:42,000 --> 00:00:43,500 ఈ ఏమి సమస్యను పరిష్కరించడానికి లేదు? 15 00:00:43,500 --> 00:00:46,620 మేము సోమవారం ఎందుకు పట్టించుకోను? 16 00:00:46,620 --> 00:00:49,820 ఎందుకు సిద్ధాంతంలో, మేము సోమవారం శ్రద్ధ లేదు? 17 00:00:49,820 --> 00:00:50,630 ఇది ఏమి చేస్తుంది? 18 00:00:50,630 --> 00:00:51,950 >> ప్రేక్షకులు: మేము డైనమిక్ పరిమాణాన్ని మార్చవచ్చు. 19 00:00:51,950 --> 00:00:53,740 >> SPEAKER 1: సరే, మేము చేయగలరా డైనమిక్ పరిమాణాన్ని. 20 00:00:53,740 --> 00:00:54,710 Well మీరు రెండు చేసారు. 21 00:00:54,710 --> 00:00:57,560 కాబట్టి మీరు డైనమిక్ ఈ పరిమాణాన్ని మార్చవచ్చు డేటా నిర్మాణం, వ్యూహం అయితే, 22 00:00:57,560 --> 00:01:00,760 రీకాల్, మీరు ఒక తెలుసుకోవలసి ఉంటుంది ఊహాకల్పిత ఎంత ఖాళీ మీకు కావలసిన 23 00:01:00,760 --> 00:01:03,870 మరియు మీరు ఒక చిన్న మరింత అవసరం ఉంటే స్పేస్, మీరు అదృష్టం రకమైన ఉన్నాము. 24 00:01:03,870 --> 00:01:05,560 మీరు ఒక సరికొత్త వ్యూహం సృష్టించడానికి కలిగి. 25 00:01:05,560 --> 00:01:07,893 మీరు అన్ని తరలించడానికి మీ నుండి ఇతర డేటా 26 00:01:07,893 --> 00:01:10,600 చివరికి పాత శ్రేణి విడిపించేందుకు మీరు చెయ్యవచ్చు, మరియు అప్పుడు కొనసాగితే. 27 00:01:10,600 --> 00:01:13,891 ఇది కేవలం చాలా ఖరీదైన అనిపిస్తుంది మరియు చాలా అసమర్థంగా మరియు నిజానికి ఇది ఉంటుంది. 28 00:01:13,891 --> 00:01:14,890 కానీ ఈ అన్ని మంచి కాదు. 29 00:01:14,890 --> 00:01:18,180 మేము ఒక ధర చెల్లించడానికి, ఒక ఏమిటి మరింత స్పష్టమైన ధరలు మేము 30 00:01:18,180 --> 00:01:20,550 ఒక లింక్ జాబితా ఉపయోగించి చెల్లించడానికి? 31 00:01:20,550 --> 00:01:22,825 >> ప్రేక్షకులు: మేము ఉపయోగించడానికి కలిగి ప్రతి ఒక కోసం స్థలమును రెండింతలు. 32 00:01:22,825 --> 00:01:25,200 SPEAKER 1: అవును, కాబట్టి మేము అవసరం కనీసం రెండుసార్లు ఎక్కువ స్థలం. 33 00:01:25,200 --> 00:01:27,700 నిజానికి, నేను గ్రహించి ఈ చిత్రం యొక్క కూడా కొద్దిగా తప్పుదారి, 34 00:01:27,700 --> 00:01:32,200 ఎందుకంటే ఆధునిక చాలా CS50 IDE లో కంప్యూటర్లు, ఒక పాయింటర్ యొక్క చిరునామా లేదా 35 00:01:32,200 --> 00:01:33,700 నిజానికి నాలుగు బైట్లు కాదు. 36 00:01:33,700 --> 00:01:36,090 ఇది చాలా తరచుగా ఈ వార్తలు రోజులు ఎనిమిది బైట్లు, ఇది 37 00:01:36,090 --> 00:01:38,530 దిగువన అంటే చాలా వాస్తవానికి అక్కడ దీర్ఘ చతురస్రాలు 38 00:01:38,530 --> 00:01:40,900 రెండుసార్లు వంటి ఒకరకమైన నేను డ్రా చేసిన ఏమి పెద్ద, 39 00:01:40,900 --> 00:01:44,409 మీరు మూడు సార్లు ఉపయోగిస్తున్నారు అంటే మేము లేకపోతే ఉండవచ్చు ఎక్కువ స్థలం. 40 00:01:44,409 --> 00:01:46,700 ఇప్పుడు అదే సమయంలో, మేము ఉన్నాము ఇప్పటికీ బైట్లు మాట్లాడటం, కుడి? 41 00:01:46,700 --> 00:01:49,140 మేము తప్పనిసరిగా మాట్లాడటం లేదు మెగాబైట్ల లేదా గిగాబైట్ల, 42 00:01:49,140 --> 00:01:51,000 ఈ డేటా తప్ప నిర్మాణాలు పెద్ద పొందండి. 43 00:01:51,000 --> 00:01:54,510 >> అందువలన నేడు మేము పరిగణలోకి ప్రారంభం మేము డేటా అన్వేషించడానికి ఎలా 44 00:01:54,510 --> 00:01:57,310 మరింత సమర్ధవంతంగా లో ఉంటే నిజానికి డేటా పెద్ద పొందుతాడు. 45 00:01:57,310 --> 00:02:00,360 కానీ యొక్క canonicalize ప్రయత్నించండి తెలియజేయండి మొదటి కార్యకలాపాల 46 00:02:00,360 --> 00:02:02,460 మీరు ఈ న చేయగల డేటా నిర్మాణాలు రకాల. 47 00:02:02,460 --> 00:02:04,790 ఒక లింక్ వంటి కాబట్టి ఏదో జాబితాలో సాధారణంగా మద్దతు 48 00:02:04,790 --> 00:02:07,514 కార్యకలాపాలు తొలగించండి ఇష్టం, ఇన్సర్ట్, మరియు శోధించండి. 49 00:02:07,514 --> 00:02:08,639 నేను ఆ ద్వారా ఏమిటి? 50 00:02:08,639 --> 00:02:11,222 కేవలం ఆ సాధారణంగా అర్ధం ప్రజలు అనుబంధ జాబితా ఉపయోగించి ఉంటే, 51 00:02:11,222 --> 00:02:14,287 వారు లేదా ఎవరో అమలు చేసింది తొలగింపు, చొప్పించు వంటి విధులు, 52 00:02:14,287 --> 00:02:16,120 మరియు శోధన, కాబట్టి మీరు నిజంగా ఏదో 53 00:02:16,120 --> 00:02:18,030 డేటా నిర్మాణం ఉపయోగకరమైన. 54 00:02:18,030 --> 00:02:20,760 కాబట్టి యొక్క ఒక త్వరిత వీక్షణ తీసుకుందాం మేము అమలు ఎలా 55 00:02:20,760 --> 00:02:24,530 ఒక లింక్ జాబితా కోసం కొన్ని కోడ్ అనుసరిస్తుంది. 56 00:02:24,530 --> 00:02:27,885 >> కాబట్టి ఈ కేవలం కొన్ని సి కోడ్, కూడా ఒక పూర్తి కార్యక్రమం 57 00:02:27,885 --> 00:02:29,260 నేను నిజంగా త్వరగా కొరడాతో. 58 00:02:29,260 --> 00:02:32,300 ఇది పంపిణీలో ఆన్లైన్ కాదు కోడ్, అది నిజంగా అమలు లేదు ఎందుకంటే. 59 00:02:32,300 --> 00:02:33,790 కానీ నేను చేసిన గమనిస్తారు ఒక వ్యాఖ్యను చెప్పాడు, 60 00:02:33,790 --> 00:02:36,130 డాట్ డాట్ డాట్, ఏదో అక్కడ, అక్కడ, ఏదో డాట్ డాట్ డాట్. 61 00:02:36,130 --> 00:02:38,410 మరియు లెట్స్ కేవలం చూద్దాం జ్యుసి ప్రాంతాల్లో ఏమిటో. 62 00:02:38,410 --> 00:02:40,790 కాబట్టి లైన్ మూడు, ఈ ఇప్పుడు గుర్తుచేసుకున్నారు 63 00:02:40,790 --> 00:02:45,960 మేము గత ఒక నోడ్ ప్రకటిస్తూ ప్రతిపాదించారు సమయం, ఆ దీర్ఘచతురస్రాకార వస్తువుల. 64 00:02:45,960 --> 00:02:48,790 ఇది మేము N పిలుస్తాను ఒక పూర్ణాంకానికి ఉంది కానీ మేము ఏదైనా కాల్ కాలేదు, 65 00:02:48,790 --> 00:02:51,920 ఆపై ఒక struct నోడ్ స్టార్ తదుపరి అనే. 66 00:02:51,920 --> 00:02:55,520 మరియు కేవలం ఆ రెండవ స్పష్టమైన ఉండాలి పంక్తి, లైన్ ఆరు, ఆ ఏమిటి? 67 00:02:55,520 --> 00:02:57,930 ఇది మాకు ఏమి ఉంది? 68 00:02:57,930 --> 00:03:01,044 అది ఖచ్చితంగా మరింత కనిపిస్తుంది ఎందుకంటే మన మామూలు వేరియబుల్స్ కంటే నిగూఢ. 69 00:03:01,044 --> 00:03:02,740 >> ప్రేక్షకులు: ఇది ఒక కదులుతాయో ఉంటుంది. 70 00:03:02,740 --> 00:03:04,650 >> SPEAKER 1: ఇది ఒకటి కంటే తరలించడానికి ఉంటుంది. 71 00:03:04,650 --> 00:03:08,580 మరియు, మరింత ఖచ్చితమైన ఉండాలి అది చిరునామా నిల్వ చేస్తుంది 72 00:03:08,580 --> 00:03:11,582 అని అర్థం ఆ నోడ్ యొక్క అర్థ వివరణ తదుపరి దానికి, కుడి? 73 00:03:11,582 --> 00:03:13,540 కనుక ఇది మాత్రం కాదు తప్పనిసరిగా ఏదైనా తరలించడానికి. 74 00:03:13,540 --> 00:03:15,290 ఇది కేవలం జరగబోతోంది ఇది ఒక విలువ నిల్వ 75 00:03:15,290 --> 00:03:17,170 చిరునామా చేస్తాడు కొన్ని ఇతర నోడ్ యొక్క 76 00:03:17,170 --> 00:03:20,810 మేము struct చెప్పారు చేసిన ఎందుకు ఆ నోడ్ స్టార్, స్టార్ సూచిస్తుంది 77 00:03:20,810 --> 00:03:22,370 ఒక పాయింటర్ లేదా ఒక చిరునామా. 78 00:03:22,370 --> 00:03:26,390 OK, కాబట్టి ఇప్పుడు మీరు మేము కలిగి ఊహించుకుంటే మాకు అందుబాటులో ఈ N, మరియు లెట్స్ 79 00:03:26,390 --> 00:03:29,490 వేరొకరి భావించండి పూర్ణాంకాల యొక్క మొత్తం బంచ్ చేర్చబడ్డ 80 00:03:29,490 --> 00:03:30,400 ఒక లింక్ జాబితా. 81 00:03:30,400 --> 00:03:35,640 మరియు ఆ లింక్ జాబితా కొన్ని పాయింట్ ద్వారా చూపారు 82 00:03:35,640 --> 00:03:39,040 ఒక వేరియబుల్ అని జాబితా ఒక ప్రామాణికంగా ఇక్కడ జారీ, 83 00:03:39,040 --> 00:03:43,120 ఎలా నేను లైన్ గురించి ఎలా గో 14 శోధన అమలు? 84 00:03:43,120 --> 00:03:45,990 ఇతర మాటలలో, నేను అమలు చేస్తున్నాను ఉంటే దీని ప్రయోజనం జీవితంలో ఫంక్షన్ 85 00:03:45,990 --> 00:03:48,889 ఒక పూర్ణాంకానికి మరియు పడుతుంది ఉంది ఒక లింక్ జాబితా ప్రారంభించి, 86 00:03:48,889 --> 00:03:50,430 ఆ లింక్ జాబితాకు ఒక పాయింటర్ ఉంది. 87 00:03:50,430 --> 00:03:52,992 మొదటి వంటి, నేను డేవిడ్ ఎవరు అనుకుంటున్నారు మా స్వచ్ఛంద, సోమవారం ఉంది 88 00:03:52,992 --> 00:03:54,700 అతను వద్ద గురిపెట్టి జరిగినది మొత్తం లింక్ జాబితా 89 00:03:54,700 --> 00:03:57,820 మేము అక్కడ చేస్తున్నారు అయితే ఉంది డేవిడ్ ఇక్కడ మా వాదన వంటి. 90 00:03:57,820 --> 00:03:59,990 ఎలా మేము ఈ జాబితా నదీ ప్రవాహానికి అడ్డంగా ప్రయాణం గురించి గో? 91 00:03:59,990 --> 00:04:04,640 Well, అది అవుతుంది ఆ అయినప్పటికీ గమనికలు, మాకు ఇప్పుడు చాలా కొత్త 92 00:04:04,640 --> 00:04:07,010 మేము చాలా ఈ చేయవచ్చు సూటిగా. 93 00:04:07,010 --> 00:04:09,500 >> నేను ముందుకు వెళ్ళడానికి వెళుతున్న మరియు ఒక తాత్కాలిక వేరియబుల్ డిక్లేర్ 94 00:04:09,500 --> 00:04:12,364 సాంప్రదాయకంగా కేవలం అన్నారు కు, PTR పాయింటర్ అంటారు, లేదా 95 00:04:12,364 --> 00:04:14,030 కానీ మీరు మీకు కావలసిన ఏదైనా కాల్ కాలేదు. 96 00:04:14,030 --> 00:04:16,470 నేను ప్రారంభించడం వెళుతున్న అది జాబితాలో ప్రారంభాన్ని. 97 00:04:16,470 --> 00:04:20,050 కాబట్టి మీరు రకమైన ఈ ఆలోచించవచ్చు నాకు గురువుగా ఇతర రోజు, 98 00:04:20,050 --> 00:04:23,580 రకమైన ఎవరైనా వద్ద గురిపెట్టి వాలంటీర్లుగా మా మానవులు మధ్య. 99 00:04:23,580 --> 00:04:26,470 నేను ఒక తాత్కాలిక వేరియబుల్ ఉన్నాను ఇదే వద్ద గురిపెట్టి 100 00:04:26,470 --> 00:04:31,390 మా యాదృచ్చికంగా అనే స్వచ్ఛంద డేవిడ్ కూడా ఎత్తి చూపారు జరిగినది. 101 00:04:31,390 --> 00:04:35,440 ఇప్పుడు పాయింటర్ అయితే శూన్య కాదు, ఎందుకంటే రీకాల్ 102 00:04:35,440 --> 00:04:40,350 ఆ శూన్య కొన్ని ప్రత్యేక కాపలాదారుడు విలువ , జాబితా చివరకు కొలతను గుర్తించడము 103 00:04:40,350 --> 00:04:44,280 నేను వద్ద గురిపెట్టి కాదు కాబట్టి మా చివరి స్వచ్ఛంద వంటి గ్రౌండ్ 104 00:04:44,280 --> 00:04:47,190 ఉంది, యొక్క ముందుకు తెలియజేయండి మరియు క్రింది వాటిని. 105 00:04:47,190 --> 00:04:51,820 పాయింటర్ ఉంటే మరియు ఇప్పుడు నేను రకమైన కావలసిన మేము విద్యార్థి తో చేసిన పనిని చేయడానికి 106 00:04:51,820 --> 00:04:57,410 నిర్మాణం పాయింటర్ డాట్ తదుపరి ఉంటే సమానం పాయింటర్ డాట్ N, సమానం కాకుండా ఉంటే 107 00:04:57,410 --> 00:05:02,290 వేరియబుల్ N సమానం లో ఆమోదం చెయ్యబడిన వాదన, 108 00:05:02,290 --> 00:05:05,370 అప్పుడు నేను ముందుకు వెళ్లాలని మీరు మరియు నిజమైన తిరిగి సే. 109 00:05:05,370 --> 00:05:11,020 నేను లోపల సంఖ్య N కనుగొన్నారు నా లింక్ జాబితా నోడ్స్ యొక్క ఒక. 110 00:05:11,020 --> 00:05:13,500 కానీ డాట్ ఇకపై ఈ సందర్భంలో పనిచేస్తుంది, 111 00:05:13,500 --> 00:05:17,260 పాయింటర్, PTR, ఎందుకంటే నిజానికి ఒక పాయింటర్, ఒక చిరునామా, 112 00:05:17,260 --> 00:05:20,632 మేము నిజంగా అద్భుతంగా చెయ్యవచ్చు సింటెక్స్ చివరకు ఒక ముక్క ఉపయోగించడానికి 113 00:05:20,632 --> 00:05:22,590 తయారీలను ఆ రకమైన తక్షణ చైతన్యాన్ని మరియు నిజానికి 114 00:05:22,590 --> 00:05:27,870 నుండి వెళ్ళి అంటే, ఇక్కడ ఒక బాణం ఉపయోగించండి అక్కడ పూర్ణాంక ఆ చిరునామా. 115 00:05:27,870 --> 00:05:30,160 కనుక ఇది చాలా పోలి ఉంది డాట్ ఆపరేటర్లు ఆత్మ 116 00:05:30,160 --> 00:05:33,860 కానీ పాయింటర్ ఒక పాయింటర్ కాదు ఎందుకంటే మరియు వాస్తవ struct కూడా, 117 00:05:33,860 --> 00:05:35,380 మేము కేవలం బాణం ఉపయోగించండి. 118 00:05:35,380 --> 00:05:40,620 >> కనుక ప్రస్తుత నోడ్ ఆ నేను తాత్కాలిక వేరియబుల్, వద్ద గురిపెట్టి చేస్తున్నాను 119 00:05:40,620 --> 00:05:43,060 N, నేను ఏమి అనుకుంటున్నారు లేదు? 120 00:05:43,060 --> 00:05:45,910 Well, నా మానవ వాలంటీర్లతో మేము ఇతర రోజు ఇక్కడ ఉందని, 121 00:05:45,910 --> 00:05:49,710 నా మొదటి మానవ ఒకడు నేను కాదు ఉంటే కావలసిన, మరియు ఉండవచ్చు రెండవ మానవ కాదు 122 00:05:49,710 --> 00:05:52,660 మీరు ఒకటి, మరియు మూడవ, నేను కదిలే భౌతికంగా ఉంచాలని అవసరం. 123 00:05:52,660 --> 00:05:54,690 ఇలా ఎలా నేను ఒక జాబితా ద్వారా దశను లేదు? 124 00:05:54,690 --> 00:05:57,470 మేము ఒక అర్రే కలిగి ఉన్నప్పుడు, మీరు కేవలం నేను ప్లస్ ప్లస్ వంటి చేసింది. 125 00:05:57,470 --> 00:06:03,660 కానీ ఈ సందర్భంలో, అది సంతృప్తి పరుస్తుంది తదుపరి, పాయింటర్, గెట్స్, పాయింటర్ చేయండి. 126 00:06:03,660 --> 00:06:07,580 ఇతర మాటలలో, తదుపరి రంగంలో ఎడమ చేతులలో అన్ని వంటిది 127 00:06:07,580 --> 00:06:10,880 సోమవారం మా మానవ వాలంటీర్లు కొన్ని ఇతర నోడ్ సూచించడానికి ఉపయోగించడం ఉన్నాయి. 128 00:06:10,880 --> 00:06:12,890 ఆ వారి తదుపరి పొరుగు వారు. 129 00:06:12,890 --> 00:06:17,060 >> నేను ఈ జాబితా ద్వారా దశను అనుకుంటే, నేను ఇకపై నేను ప్లస్ ప్లస్ కాదు 130 00:06:17,060 --> 00:06:20,120 నేను బదులుగా చెప్పటానికి కలిగి నేను, పాయింటర్, అన్నారు 131 00:06:20,120 --> 00:06:24,650 తదుపరి రంగంలో సంసార సమం, తదుపరి రంగంలో, తదుపరి రంగంలో ఉంది 132 00:06:24,650 --> 00:06:28,350 ఆ ఎడమ చేతులు అన్ని క్రింది మేము వేదిక పాయింటింగ్ ఉందని 133 00:06:28,350 --> 00:06:30,000 కొన్ని తర్వాత విలువలకు. 134 00:06:30,000 --> 00:06:32,590 నేను ద్వారా వస్తే ఆ మొత్తం మళ్ళా, 135 00:06:32,590 --> 00:06:39,330 చివరకు, నేను చేయడంలో శూన్య హిట్ దొరకలేదు N ఇంకా, నేను కేవలం తప్పుడు తిరిగి. 136 00:06:39,330 --> 00:06:44,100 మరలా, మేము ఇక్కడ చేస్తున్నా అన్ని, ఒక క్షణం క్రితం చిత్రాన్ని ప్రకారం, 137 00:06:44,100 --> 00:06:47,840 వద్ద గురిపెట్టి ప్రారంభమైనదని బహుశా జాబితా ప్రారంభం. 138 00:06:47,840 --> 00:06:50,970 ఆపై నేను తనిఖీ విలువ ఉంది నేను తొమ్మిది సమానంగా చూస్తున్నాను? 139 00:06:50,970 --> 00:06:52,650 అలా అయితే, నేను నిజమైన తిరిగి మరియు నేను పూర్తయింది. 140 00:06:52,650 --> 00:06:56,450 లేకపోతే, నా చేతిలో అప్డేట్ AKA పాయింటర్, అభిప్రాయపడుతున్నారు 141 00:06:56,450 --> 00:06:59,540 తదుపరి బాణం యొక్క స్థానంలో, మరియు తరువాత బాణం యొక్క నగర, 142 00:06:59,540 --> 00:07:00,480 మరియు తదుపరి. 143 00:07:00,480 --> 00:07:03,770 నేను కేవలం ఈ శ్రేణి ద్వారా వాకింగ్ చేస్తున్నాను. 144 00:07:03,770 --> 00:07:06,010 >> మరలా, ఎవరు పట్టించుకుంటారు? 145 00:07:06,010 --> 00:07:07,861 ఇలా ఈ కోసం ఒక మూలవస్తువుగా ఏమిటి? 146 00:07:07,861 --> 00:07:10,360 Well, మేము పరిచయం గుర్తుచేసుకున్నారు ఒక స్టాక్ యొక్క సంకల్పం, ఇది 147 00:07:10,360 --> 00:07:15,400 అంతే ఒక సంగ్రహ దత్తాంశ అజమాయిషీ టైప్ ఒక సి విషయం, అది ఒక CS50 విషయం కాదు, 148 00:07:15,400 --> 00:07:19,430 అది ఒక నైరూప్య ఆలోచన యొక్క ఈ ఆలోచన ఒక మరొక పైన విషయాలు స్టాకింగ్ 149 00:07:19,430 --> 00:07:21,820 ఆ అమలు చేయవచ్చు వివిధ మార్గాల్లో పుష్పగుచ్ఛాలు. 150 00:07:21,820 --> 00:07:25,600 మరియు మేము ప్రతిపాదించిన ఒక మార్గం ఉంది ఒక శ్రేణి, లేదా ఒక లింక్ జాబితా తో. 151 00:07:25,600 --> 00:07:29,570 మరియు అది ఒక, ఆ canonically అవుతుంది స్టాక్ కనీసం రెండు కార్యకలాపాలను మద్దతు. 152 00:07:29,570 --> 00:07:32,320 మరియు buzz పదాలు, పుష్ స్టాక్ లో ఏదో పుష్, 153 00:07:32,320 --> 00:07:34,770 ఒక కొత్త ట్రే వంటి భోజనశాల, లేదా పాప్, 154 00:07:34,770 --> 00:07:39,000 ఇది ఎత్తైన తొలగించడానికి అర్థం భోజనాల లో స్టాక్ నుండి ట్రే 155 00:07:39,000 --> 00:07:41,500 హాల్, మరియు అప్పుడు బహుశా కొన్ని ఇతర కార్యకలాపాలు అలాగే. 156 00:07:41,500 --> 00:07:45,770 సో ఎలా మేము నిర్మాణం నిర్వచించే ఉండవచ్చు మేము ఇప్పుడు ఒక కుప్ప కాల్ చేస్తున్న? 157 00:07:45,770 --> 00:07:50,020 >> Well, మేము అవసరమైన అన్ని నేను చెప్పే C. లో మా పారవేయడం వద్ద వాక్యనిర్మాణం 158 00:07:50,020 --> 00:07:53,830 నాకు ఒక రకము నిర్వచనము ఇవ్వాలని ఒక స్టాక్ యొక్క లోపల ఒక struct, 159 00:07:53,830 --> 00:07:58,030 నేను ఒక యొక్క, ఒక శ్రేణి చెప్పడానికి వెళుతున్నాను మొత్తం సంఖ్యల కొంత ఆపై పరిమాణం. 160 00:07:58,030 --> 00:08:00,930 కాబట్టి ఇతర మాటలలో, నేను కావాలా కోడ్ లో ఈ అమలు, 161 00:08:00,930 --> 00:08:03,830 నాకు వెళ్ళి కేవలం రకమైన వీలు ఈ చెప్పినదానితో డ్రా. 162 00:08:03,830 --> 00:08:06,317 ఈ చెబుతున్నారు అని, కాబట్టి నాకు ఒక ఇవ్వాలని వ్యూహం సంపాదించి ఆ నిర్మాణం, 163 00:08:06,317 --> 00:08:09,400 మరియు నేను, సామర్థ్యం ఏమిటో తెలియదు నేను చేసిన స్పష్టంగా కొన్ని వదిలితే 164 00:08:09,400 --> 00:08:10,858 ఎక్కడైనా నిర్వచించబడి, మరియు ఆ మంచిది. 165 00:08:10,858 --> 00:08:15,260 కానీ, అది కేవలం ఒకటి అనుకుందాం రెండు, మూడు, నాలుగు, అయిదు. 166 00:08:15,260 --> 00:08:16,700 కాబట్టి సామర్థ్యం 5. 167 00:08:16,700 --> 00:08:21,730 లోపల ఈ మూలకం నా నిర్మాణం సంఖ్యలు అని ఉంటుంది. 168 00:08:21,730 --> 00:08:24,020 ఆపై నేను ఒక అవసరం ఇతర వేరియబుల్ స్పష్టంగా 169 00:08:24,020 --> 00:08:27,814 మొదట నేను వెళుతున్నాను అని పరిమాణం సున్నా initialized ఉంది నియమములు. 170 00:08:27,814 --> 00:08:29,730 ఏమీ ఉంది ఉంటే స్టాక్ పరిమాణం సున్నా 171 00:08:29,730 --> 00:08:31,420 మరియు అది సంఖ్యలో చెత్త విలువలు ఉంది. 172 00:08:31,420 --> 00:08:33,450 నేను ఇంకా అక్కడ ఏమి సంఖ్య ఆలోచన ఉంది. 173 00:08:33,450 --> 00:08:36,059 >> నేను పుష్ అనుకుంటే స్టాక్ లో ఏదో 174 00:08:36,059 --> 00:08:40,780 నేను ఫంక్షన్ పుష్ కాల్ అనుకుందాం, మరియు నేను, సంఖ్య 50 వంటి, 50 పుష్ చెప్పారు 175 00:08:40,780 --> 00:08:44,090 ఇక్కడ మీరు ప్రపోజ్ చేస్తుంది నేను ఈ శ్రేణి లో డ్రా? 176 00:08:44,090 --> 00:08:47,124 ఐదు వేర్వేరు సాధ్యం సమాధానాలు ఉంది. 177 00:08:47,124 --> 00:08:48,790 ఎక్కడ మీరు సంఖ్య 50 పుష్ అనుకుంటున్నారు? 178 00:08:48,790 --> 00:08:51,899 ఇక్కడ లక్ష్యం ఉంటే, మరలా కాల్ ఫంక్షన్ పుష్, ఒక వాదన లో పాస్ 179 00:08:51,899 --> 00:08:52,940 50, నేను ఇక్కడ ఉంచగలను? 180 00:08:52,940 --> 00:08:55,680 181 00:08:55,680 --> 00:08:59,052 ఐదు possible-- 20% అవకాశం యొక్క సరిగ్గా ఊహించడం. 182 00:08:59,052 --> 00:08:59,896 అవును? 183 00:08:59,896 --> 00:09:00,740 >> ప్రేక్షకులు: ఫార్ కుడి. 184 00:09:00,740 --> 00:09:01,990 >> SPEAKER 1: ఫార్ కుడి. 185 00:09:01,990 --> 00:09:08,359 25% అవకాశం ఇప్పుడు ఉంది యొక్క సరిగ్గా ఊహించడం. 186 00:09:08,359 --> 00:09:09,650 కాబట్టి ఆ నిజానికి జరిమానా ఉంటుంది. 187 00:09:09,650 --> 00:09:12,770 సాంప్రదాయకంగా, నేను ఒక అర్రే తో చెప్పటానికి చేస్తాము మేము సాధారణంగా, ఎడమ వద్ద ప్రారంభిస్తుంది 188 00:09:12,770 --> 00:09:14,519 కానీ మేము ఖచ్చితంగా అనుకొనుట కుడి వద్ద ప్రారంభించండి. 189 00:09:14,519 --> 00:09:17,478 కాబట్టి ఇక్కడ స్పాయిలర్ నేను ఉన్నాను ఉంటుంది బహుశా ఎడమవైపు అది డ్రా అన్నారు, 190 00:09:17,478 --> 00:09:20,060 కేవలం ఒక సాధారణ శ్రేణి ఉన్న ఇష్టం నేను కుడి ఎడమ వెళ్లి ప్రారంభించండి. 191 00:09:20,060 --> 00:09:21,780 కానీ మీరు కుదుపు ఉంటే గణితం, జరిమానా. 192 00:09:21,780 --> 00:09:23,060 ఇది కేవలం సంప్రదాయ కాదు. 193 00:09:23,060 --> 00:09:24,880 సరే, నేను ఒక చేయవలసి అయితే మరింత మార్పు. 194 00:09:24,880 --> 00:09:27,710 ఇప్పుడు నేను ఏదో ముమ్మరం చేసిన స్టాక్ లో, తరువాత ఏమిటి? 195 00:09:27,710 --> 00:09:29,400 >> అన్ని కుడి, నేను పరిమాణం పెంచడం. 196 00:09:29,400 --> 00:09:32,600 నాలో ముందుకు మరియు కేవలం వీడలేదు సున్నా ఇది ఈ అప్డేట్. 197 00:09:32,600 --> 00:09:35,950 మరియు బదులుగా ఇప్పుడు, నేను వెళుతున్నాను విలువ లో ఉంచాలి. 198 00:09:35,950 --> 00:09:39,460 ఇప్పుడు నేను మరొక పుష్ అనుకుందాం స్టాక్ లో నంబర్, 51 ఇష్టం. 199 00:09:39,460 --> 00:09:42,680 Well, నేను ఒక మరింత చేసుకోవాలి పరిమాణం రెండు వరకు ఉంది మారిపోయింది. 200 00:09:42,680 --> 00:09:46,100 ఆపై నేను ఒక మరింత పుష్ అనుకుందాం 61 వంటి స్టాక్ లో నంబర్, 201 00:09:46,100 --> 00:09:52,530 ఇప్పుడు నేను పరిమాణం అప్డేట్ అవసరం ఒక మరింత సమయం, మరియు పరిమాణం వంటి విలువ 3 పొందండి. 202 00:09:52,530 --> 00:09:54,690 మరియు ఇప్పుడు నేను పాప్ కాల్ అనుకుందాం. 203 00:09:54,690 --> 00:09:57,250 ఇప్పుడు సాంప్రదాయకంగా, పాప్, ఒక వాదన పడుతుంది లేదు. 204 00:09:57,250 --> 00:10:00,430 ఒక స్టాక్ తో, మొత్తం ట్రే రూపకాలంకారం యొక్క పాయింట్ 205 00:10:00,430 --> 00:10:03,450 మీరు విచక్షణతో లేదు అని ఆ ట్రే పొందుటకు వెళ్ళడానికి, అన్ని మీరు చేయవచ్చు 206 00:10:03,450 --> 00:10:06,330 నుండి ఎత్తైన ఒకటి పాప్ ఉంది స్టాక్ కేవలం ఎందుకంటే. 207 00:10:06,330 --> 00:10:08,010 ఈ డేటా నిర్మాణం చేస్తుంది ఏమిటి. 208 00:10:08,010 --> 00:10:12,250 >> ఉంటే తర్కం ద్వారా నేను పాప్, ఏమి ఆఫ్ వస్తుంది చెబుతా? 209 00:10:12,250 --> 00:10:13,080 కాబట్టి 61. 210 00:10:13,080 --> 00:10:15,402 కాబట్టి నిజంగా కంప్యూటర్ అంటే ఏమిటి మెమరీలో అలా చేస్తాడు? 211 00:10:15,402 --> 00:10:16,610 నా కోడ్ కలిగి లేదు? 212 00:10:16,610 --> 00:10:20,330 మీరు ఏ ప్రపోజ్ చేస్తుంది మేము తెరపై మార్పు? 213 00:10:20,330 --> 00:10:23,410 ఏం మార్చాలి? 214 00:10:23,410 --> 00:10:24,960 క్షమించాలి? 215 00:10:24,960 --> 00:10:26,334 కాబట్టి మేము 61 వదిలించుకోవటం. 216 00:10:26,334 --> 00:10:27,500 నేను ఖచ్చితంగా ఆ చేయవచ్చు. 217 00:10:27,500 --> 00:10:28,640 మరియు నేను 61 వదిలించుకోవటం చేయవచ్చు. 218 00:10:28,640 --> 00:10:30,980 ఆపై ఇతర మార్పు జరిగే అవసరం? 219 00:10:30,980 --> 00:10:33,160 పరిమాణం బహుశా రెండు తిరిగి వెళ్ళడానికి ఉంది. 220 00:10:33,160 --> 00:10:34,210 కాబట్టి ఆ మంచిది. 221 00:10:34,210 --> 00:10:36,690 కానీ ఒక నిమిషం, పరిమాణం వేచి ఒక క్షణం క్రితం మూడు ఉంది. 222 00:10:36,690 --> 00:10:38,240 ఒక శీఘ్ర తెలివి చెక్ తెలియజేసేలా. 223 00:10:38,240 --> 00:10:41,810 మేము ఎలా మేము తెలుసా 61 వదిలించుకోవటం కోరుకుంటే? 224 00:10:41,810 --> 00:10:42,760 మేము పాపింగ్ చేస్తున్నారు కాబట్టి. 225 00:10:42,760 --> 00:10:46,450 కాబట్టి నేను ఈ రెండవ ఆస్తి పరిమాణాన్ని కలిగి ఉంటాయి. 226 00:10:46,450 --> 00:10:48,470 >> నేను, ఒక నిమిషం ఆగండి వారం రెండు తిరిగి ఆలోచిస్తూ 227 00:10:48,470 --> 00:10:51,660 మేము గురించి మాట్లాడటం మొదలు ఈ నగర సున్నా ఉన్న శ్రేణులను, 228 00:10:51,660 --> 00:10:55,920 ఈ నగర ఒకటి అయితే, ఈ ప్రాంతం రెండు ఈ నగర మూడు, నాలుగు ఉంది, 229 00:10:55,920 --> 00:10:58,460 ఇది అలా కనిపిస్తుంది పరిమాణం మధ్య సంబంధం 230 00:10:58,460 --> 00:11:02,780 మరియు నేను కావలసిన మూలకం తొలగించడానికి శ్రేణి నుండి కేవలం ఏమి కనిపిస్తుంది? 231 00:11:02,780 --> 00:11:05,120 పరిమాణం మైనస్ ఒకటి. 232 00:11:05,120 --> 00:11:07,786 కాబట్టి ఎంత మానవులు వార్తలు మేము 61 మొదటి వస్తుంది తెలుసు. 233 00:11:07,786 --> 00:11:09,160 ఎలా కంప్యూటర్ తెలుసుకోవాలి జరగబోతోంది? 234 00:11:09,160 --> 00:11:11,701 చేసినప్పుడు మీ కోడ్, మీరు ఎక్కడ బహుశా పరిమాణం మైనస్ ఒకటి చేయాలనుకుంటున్నారా, 235 00:11:11,701 --> 00:11:14,950 కనుక మూడు మైనస్ ఒకటి రెండు, మరియు ఆ ఉంటుంది మేము 61 వదిలించుకోవటం కావలసిన అర్థం. 236 00:11:14,950 --> 00:11:18,000 మరియు తర్వాత మేము నిజంగా నవీకరించవచ్చు ఆ పరిమాణం కాబట్టి పరిమాణం ఇప్పుడు 237 00:11:18,000 --> 00:11:20,300 కేవలం రెండు మూడు నుండి వెళుతుంది. 238 00:11:20,300 --> 00:11:24,520 మరియు కేవలం పాండిత్య ప్రకర్ష ఉండాలి, నేను వెళుతున్న నేను, పూర్తయింది ప్రతిపాదించారు? 239 00:11:24,520 --> 00:11:27,660 మీరు intuitively ప్రతిపాదిత సరిగ్గా నేను 61 వదిలించుకోవటం ఉండాలి. 240 00:11:27,660 --> 00:11:30,700 కానీ ఉండదు నేను రకమైన విధమైన 61 విమోచనం సంపాదించిన? 241 00:11:30,700 --> 00:11:33,790 నేను సమర్థవంతంగా మర్చిపోయి చేసిన అది నిజానికి ఉంది. 242 00:11:33,790 --> 00:11:37,680 మీరు చదివిన ఉంటే, తిరిగి Pset4 అనుకుంటున్నాను ఫోరెన్సిక్స్ గురించి వ్యాసం, PDF 243 00:11:37,680 --> 00:11:40,780 మేము ఉందని మీరు అబ్బాయిలు చదివిన, లేదా మీరు Pset4 ఈ వారం చదువుతాను. 244 00:11:40,780 --> 00:11:44,300 ఈ నిజానికి సంబంధించి గుర్తుచేసుకున్నారు కంప్యూటర్ ఫోరెన్సిక్స్ మొత్తం ఆలోచన. 245 00:11:44,300 --> 00:11:47,820 ఏం ఒక కంప్యూటర్ సాధారణంగా ఉండదు ఏదో ఉంటుంది అది కేవలం మర్చిపోతోంది 246 00:11:47,820 --> 00:11:51,300 కానీ అది వెళ్ళి వంటి లేదు దాన్ని లేదా భర్తీ గీతలు ప్రయత్నించండి 247 00:11:51,300 --> 00:11:54,560 సున్నాలు మరియు వాటిని ఆ బిట్స్ లేదా కొన్ని ఇతర యాదృచ్ఛిక నమూనా 248 00:11:54,560 --> 00:11:56,690 మీరు తప్ప మీరే కాబట్టి ఉద్దేశపూర్వకంగా చేయండి. 249 00:11:56,690 --> 00:11:58,930 సో మీ ఊహ ఉంది కుడి, యొక్క 61 వదిలించుకోవటం తెలియజేయండి. 250 00:11:58,930 --> 00:12:00,650 కానీ వాస్తవానికి, మేము ఇబ్బంది లేదు. 251 00:12:00,650 --> 00:12:04,040 మేము కేవలం ఆ మర్చిపోతే అవసరం అది మా పరిమాణం మార్చడం ద్వారా ఉంది. 252 00:12:04,040 --> 00:12:05,662 >> ఇప్పుడు ఈ స్టాక్ తో ఒక సమస్య ఉంది. 253 00:12:05,662 --> 00:12:07,620 నేను నెట్టడం విషయాలు ఉంటే స్టాక్ లో ఏమిటి 254 00:12:07,620 --> 00:12:11,167 స్పష్టంగా జరిగే కేవలం కొన్ని క్షణాలు సమయంలో? 255 00:12:11,167 --> 00:12:12,500 మేము స్థలం రన్నవుట్ చూడాలని. 256 00:12:12,500 --> 00:12:13,580 మరియు మేము ఏమి చేస్తారు? 257 00:12:13,580 --> 00:12:14,680 మేము రకమైన చిత్తు చేశాడు చేస్తున్నారు. 258 00:12:14,680 --> 00:12:19,000 ఈ అమలు వీలు లేదు ఉపయోగించి ఎందుకంటే మాకు, అర్రే పరిమాణాన్ని 259 00:12:19,000 --> 00:12:21,240 ఈ వాక్యనిర్మాణం, మీరు ఉంటే వారం రెండు తిరిగి భావిస్తే, 260 00:12:21,240 --> 00:12:23,520 మీరు డిక్లేర్డ్ చేసిన తర్వాత వ్యూహం యొక్క పరిమాణం, 261 00:12:23,520 --> 00:12:26,780 మేము ఇంకా పేరు ఒక యంత్రాంగాన్ని చూడని మీరు శ్రేణి యొక్క పరిమాణం మార్చవచ్చు. 262 00:12:26,780 --> 00:12:29,020 నిజానికి సి ఫీచర్ లేదు. 263 00:12:29,020 --> 00:12:32,524 మీరు చెప్పే లేకపోతే నాకు ఐదు ఇవ్వాలని Nths వాటిని కాల్ సంఖ్యలు, 264 00:12:32,524 --> 00:12:33,940 మీరు దానిని పొందడానికి వెళుతున్న అంతే. 265 00:12:33,940 --> 00:12:38,790 కాబట్టి మేము సోమవారం నాటికి ఇప్పుడు ఏమి కలిగి ఒక పరిష్కారం వ్యక్తం సామర్థ్యం 266 00:12:38,790 --> 00:12:42,480 అయితే, మేము కేవలం సర్దుబాటు అవసరం మా స్టాక్ యొక్క నిర్వచనం 267 00:12:42,480 --> 00:12:46,840 కొన్ని హార్డ్ కోడెడ్ శ్రేణి కాదని, కానీ కేవలం ఒక చిరునామా నిల్వ. 268 00:12:46,840 --> 00:12:47,890 >> ఇప్పుడు ఎందుకు ఈ ఉంది? 269 00:12:47,890 --> 00:12:51,690 ఇప్పుడు మేము కేవలం సౌకర్యవంతమైన ఉండాలి నిజానికి నా ప్రోగ్రామ్ అమలు అవుతున్నప్పుడు, ఆ, 270 00:12:51,690 --> 00:12:53,730 నేను బహుశా వెళుతున్న మానవ గోవా, 271 00:12:53,730 --> 00:12:55,110 ఎన్ని సంఖ్యలు మీరు నిల్వ అనుకుంటున్నారు? 272 00:12:55,110 --> 00:12:56,776 ఇన్పుట్ ఎక్కడో నుండి రావటానికి ఉంది. 273 00:12:56,776 --> 00:12:59,140 కానీ నేను తెలుసు ఒకసారి సంఖ్య, అప్పుడు నేను కేవలం చెయ్యవచ్చు 274 00:12:59,140 --> 00:13:02,470 ఇవ్వాలని చర్య ఏమి ఉపయోగించడానికి నాకు మెమరీ భాగం? 275 00:13:02,470 --> 00:13:03,580 నేను malloc ఉపయోగించవచ్చు. 276 00:13:03,580 --> 00:13:06,710 నేను ఎన్ని చెప్పగలను బైట్లు నేను తిరిగి ఈ Nths కోసం కావలసిన. 277 00:13:06,710 --> 00:13:10,910 మరియు అన్ని నేను సంఖ్యలో నిల్వ ఉంటుంది ఈ struct లోపల ఇక్కడ వేరియబుల్ 278 00:13:10,910 --> 00:13:13,480 ఏమి ఉండాలి? 279 00:13:13,480 --> 00:13:18,440 ఏమి నిజానికి వెళతాడు ఈ సందర్భంలో సంఖ్యలు? 280 00:13:18,440 --> 00:13:21,300 అవును, మొదటి ఒక పాయింటర్ మెమరీ యొక్క భాగం యొక్క బైట్, 281 00:13:21,300 --> 00:13:24,940 లేదా మరింత ప్రత్యేకంగా, చిరునామా ఆ బైట్లు మొదటి. 282 00:13:24,940 --> 00:13:27,300 ఇది ఒకటి ఉంటే పట్టింపు లేదు బైట్ లేదా ఒక బిలియన్ బైట్లు, 283 00:13:27,300 --> 00:13:28,890 నేను మొదటి పట్టించుకోనట్లు అవసరం. 284 00:13:28,890 --> 00:13:31,530 ఎందుకంటే malloc ఏమి హామీలు మరియు నా ఆపరేటింగ్ సిస్టమ్ హామీలు, 285 00:13:31,530 --> 00:13:34,170 మెమరీ ఆ నేను యొక్క భాగం పొందుటకు, అది ఆనుకొని చేస్తాడు. 286 00:13:34,170 --> 00:13:35,378 ఖాళీలు ఉన్నట్లు మాత్రం కాదు. 287 00:13:35,378 --> 00:13:38,576 నేను 50 కోసం అడిగారు చేస్తే బైట్లు లేదా 1000 బైట్లు, 288 00:13:38,576 --> 00:13:40,450 వారు అన్ని చేయబోతున్నామని తిరిగి వెనక్కి తిరిగి. 289 00:13:40,450 --> 00:13:44,500 మరియు చాలా కాలం నేను ఎలా ఎంత పెద్ద గుర్తుంచుకోవాలి వంటి చాలా నేను తెలుసుకోవాలి, అన్ని అడిగారు 290 00:13:44,500 --> 00:13:46,230 మొదటి అటువంటి చిరునామా. 291 00:13:46,230 --> 00:13:48,660 >> కాబట్టి ఇప్పుడు మేము కోడ్ లో సామర్ధ్యాన్ని కలిగి ఉంటాయి. 292 00:13:48,660 --> 00:13:51,280 అయితే, అది మాకు తీసుకోవాలని జరగబోతోంది ఎక్కువ సమయం, ఈ అప్ రాయడానికి 293 00:13:51,280 --> 00:13:55,900 మేము ఇప్పుడు ద్వారా ఆ స్మృతి పునర్నియోగిస్తాయి కాలేదు అక్కడే వేరే చిరునామా నిల్వ 294 00:13:55,900 --> 00:13:59,060 మేము కూడా ఒక పెద్ద లేదా కావాలా మెమరీ యొక్క ఒక చిన్న భాగం. 295 00:13:59,060 --> 00:14:00,170 కాబట్టి ఇక్కడ ఒక వాణిజ్య ఆఫ్. 296 00:14:00,170 --> 00:14:01,360 ఇప్పుడు మేము చైతన్యానికి పొందండి. 297 00:14:01,360 --> 00:14:03,350 మేము ఇప్పటికీ contiguousness నేను ఆరోపించారు కాబట్టి. 298 00:14:03,350 --> 00:14:05,881 Malloc మాకు ఇస్తుంది ఎందుకంటే మెమరీ అవిచ్ఛిన్నంగా భాగం. 299 00:14:05,881 --> 00:14:08,630 కానీ ఈ ఒక నొప్పి అవతరిస్తుంది మాకు మెడ, ప్రోగ్రామర్, 300 00:14:08,630 --> 00:14:09,770 నిజానికి అప్ సంకేతానికి. 301 00:14:09,770 --> 00:14:10,730 ఇది కేవలం మరింత పని. 302 00:14:10,730 --> 00:14:13,930 మేము నేను ఏమి వంటిదని కోడ్ అవసరం కేవలం ఒక క్షణం క్రితం బయటకు banging. 303 00:14:13,930 --> 00:14:16,120 చాలా doable, కానీ సంక్లిష్టత పెంచుతుంది. 304 00:14:16,120 --> 00:14:19,520 కాబట్టి డెవలపర్ సమయం, ప్రోగ్రామర్ సమయం ఇంకా మరొక వనరు 305 00:14:19,520 --> 00:14:22,520 మేము ఖర్చు అవసరం ఉండవచ్చు కొంత సమయం కొత్త లక్షణాలు పొందడానికి. 306 00:14:22,520 --> 00:14:24,020 ఆపై కోర్సు ఒక క్యూ ఉంది. 307 00:14:24,020 --> 00:14:26,227 మేము ఈ లోకి తీసుకోను చాలా వివరాలు ఒక. 308 00:14:26,227 --> 00:14:27,560 కానీ అది ఆత్మ లో చాలా పోలి ఉంది. 309 00:14:27,560 --> 00:14:31,220 నేను క్యూ అమలు కాలేదు, మరియు దాని సంబంధిత కార్యకలాపాలు, 310 00:14:31,220 --> 00:14:35,660 ఎన్క్యూ లేదా dequeue జోడించడానికి లేదా తొలగించడానికి వంటి, అది చెప్పడం కేవలం ఒక ఫ్యాన్సియెర్స్ మార్గం 311 00:14:35,660 --> 00:14:38,100 ఎన్క్యూ లేదా dequeue, ఈ కింది విధంగా ఉంటుంది. 312 00:14:38,100 --> 00:14:41,170 నేను నాకు ఒక struct ఇవ్వగలిగిన మళ్ళీ ఒక సంఖ్య యొక్క వ్యూహం ఉంది, 313 00:14:41,170 --> 00:14:44,000 మళ్ళీ ఒక పరిమాణం ఉంది, కానీ ఎందుకు నేను ఇప్పుడు చేయాలి 314 00:14:44,000 --> 00:14:46,940 ఒక క్యూ ముందు ట్రాక్? 315 00:14:46,940 --> 00:14:50,630 నేను తెలుసుకోవాలి లేదు నా స్టాక్ ముందు. 316 00:14:50,630 --> 00:14:53,570 Well, ఉంటే నేను మళ్ళీ ఒక క్యూ కేవలం హార్డ్ చేసుకుందాం 317 00:14:53,570 --> 00:14:57,870 ఐదు వంటి కలిగి గా కోడ్ ఇక్కడ సమర్థవంతంగా లో పూర్ణాంకాల. 318 00:14:57,870 --> 00:15:00,940 కాబట్టి ఈ సున్నా, ఒకటి, రెండు, మూడు, నాలుగు ఉంది. 319 00:15:00,940 --> 00:15:03,430 ఈ అవతరిస్తుంది మళ్ళీ అని సంఖ్యలు. 320 00:15:03,430 --> 00:15:06,940 మరియు ఈ పరిమాణం అని ఉంటుంది. 321 00:15:06,940 --> 00:15:10,056 >> ఎందుకు అది సరిపోదు కేవలం పరిమాణం కలిగి? 322 00:15:10,056 --> 00:15:11,680 సరే, మీద ఆ అదే సంఖ్యలో పుష్ లెట్. 323 00:15:11,680 --> 00:15:14,220 సో నేను వరుసలో, లేదా నేట్టబడుతుంది pushed--. 324 00:15:14,220 --> 00:15:20,150 ఇప్పుడు నేను అప్పుడు 50 ఎన్క్యూ, మరియు 51, ఆపై 61, మరియు డాట్ డాట్ డాట్. 325 00:15:20,150 --> 00:15:21,070 కాబట్టి ఆ ఎన్క్యూ ఉంది. 326 00:15:21,070 --> 00:15:23,176 నేను అప్పుడు 61, అప్పుడు 50, 51 వరుసలో. 327 00:15:23,176 --> 00:15:25,050 మరియు ఆ ఒకేలా కనిపిస్తుంది ఇప్పటివరకు ఒక స్టాక్ కు, 328 00:15:25,050 --> 00:15:27,190 తప్ప నేను ఒక మార్పు అవసరం లేదు. 329 00:15:27,190 --> 00:15:33,680 ఈ పరిమాణం అప్డేట్ అవసరం, కాబట్టి నేను వెళ్ళి ఇప్పుడు మూడు రెండు ఒకటి సున్నా నుంచి. 330 00:15:33,680 --> 00:15:35,760 నేను ఎలా dequeue చెయ్యాలి? 331 00:15:35,760 --> 00:15:36,890 ఏం dequeue జరుగుతుంది? 332 00:15:36,890 --> 00:15:41,950 ఎవరు మొదటి ఈ జాబితా ఆఫ్ రావాల్సిందే ఇది ఆపిల్ స్టోర్ వద్ద లైన్ ఉంటే? 333 00:15:41,950 --> 00:15:42,780 అలా 50. 334 00:15:42,780 --> 00:15:44,700 కనుక ఇది రకమైన trickier ఈ సమయం. 335 00:15:44,700 --> 00:15:47,880 చివరిసారి అయితే అది సూపర్ సులభంగా కేవలం పరిమాణం మైనస్ ఒకటి చేయాలని 336 00:15:47,880 --> 00:15:51,440 నేను సమర్థవంతంగా నా అర్రే చివర పొందుటకు సంఖ్యలు పేరు, అది 61 తొలగిస్తుంది. 337 00:15:51,440 --> 00:15:52,920 కానీ నేను 61 తొలగించాలని లేదు. 338 00:15:52,920 --> 00:15:55,030 నేను 50 పొందాలనుకునే 5:00 వద్ద ఉంది 339 00:15:55,030 --> 00:15:56,790 కోసం వరుసలో కొత్త ఐఫోన్ లేదా whatnot. 340 00:15:56,790 --> 00:16:01,200 కాబట్టి నేను 50 వదిలించుకోవటం కేవలం కుడి, ఈ చెయ్యలేరని? 341 00:16:01,200 --> 00:16:02,547 నేను 50 బయటకు క్రాస్ చేయవచ్చు. 342 00:16:02,547 --> 00:16:04,380 కానీ మేము కేవలం మేము చెప్పారు కాబట్టి అంగ ఉండాలి లేదు 343 00:16:04,380 --> 00:16:06,330 వలె గీతలు లేదా డేటా దాచడానికి. 344 00:16:06,330 --> 00:16:08,090 అది ఎక్కడ మేము కేవలం మరిచిపోవచ్చు. 345 00:16:08,090 --> 00:16:12,330 >> కానీ నేను ఇప్పుడు నా పరిమాణం మార్చేందుకు రెండు, ఈ తగినంత సమాచారం ఉంది 346 00:16:12,330 --> 00:16:15,711 నా క్యూ లో జరగబోతోంది ఏమి? 347 00:16:15,711 --> 00:16:16,680 కాదు నిజంగా. 348 00:16:16,680 --> 00:16:19,830 నా పరిమాణం, రెండు ఇలా అయితే క్యూ ఎక్కడ ప్రారంభం లేదు, 349 00:16:19,830 --> 00:16:22,980 ముఖ్యంగా నేను ఇప్పటికీ ఉంటే మెమరీ లో ఆ అదే సంఖ్యలో. 350 00:16:22,980 --> 00:16:24,260 50, 51, 61. 351 00:16:24,260 --> 00:16:27,090 నేను గుర్తుంచుకోవాల్సిన అవసరం ఇప్పుడు ముందు ఉన్న. 352 00:16:27,090 --> 00:16:29,630 కాబట్టి నేను ప్రతిపాదించిన అక్కడ, మేము కేవలం పిలుపునిచ్చారు చేస్తాము 353 00:16:29,630 --> 00:16:33,729 దీని ప్రారంభ Nth ముందు, విలువ ఏమిటి వుండాలి? 354 00:16:33,729 --> 00:16:35,270 జీరో జాబితా ప్రారంభం. 355 00:16:35,270 --> 00:16:40,876 కానీ ఇప్పుడు అదనంగా దానికి వీలు కు పరిమాణం, మేము ముందు పెంచడం. 356 00:16:40,876 --> 00:16:42,000 ఇప్పుడు ఇక్కడ మరొక సమస్య. 357 00:16:42,000 --> 00:16:43,030 నేను కొనసాగించడాన్ని ఒకసారి. 358 00:16:43,030 --> 00:16:47,520 ఈ సంఖ్య అనుకుందాం వంటి 121, 124, మరియు అప్పుడు, dammit, 359 00:16:47,520 --> 00:16:48,610 నేను స్పేస్ బయటకు రెడీ. 360 00:16:48,610 --> 00:16:50,390 కానీ నేను కాదు, ఒక నిమిషం ఆగండి. 361 00:16:50,390 --> 00:16:55,630 కథ ఈ సమయంలో, పరిమాణం ఒకటి, రెండు అని అనుకుందాం, 362 00:16:55,630 --> 00:17:00,370 మూడు, నాలుగు, కాబట్టి ఊహించు పరిమాణం, ఫ్రంట్ ఒకటి, నాలుగు ఉంది 363 00:17:00,370 --> 00:17:01,621 కాబట్టి 51 ముందు ఉంది. 364 00:17:01,621 --> 00:17:04,329 నేను ఇక్కడ మరొక సంఖ్య ఉంచాలి కావలసిన, కానీ, dammit, నేను ఖాళీ బయటకు రెడీ. 365 00:17:04,329 --> 00:17:06,710 కానీ నేను నిజంగా తెలియదు? 366 00:17:06,710 --> 00:17:11,192 నేను కొన్ని ఎక్కడ ఉంచారు కాలేదు 171 వంటి అదనపు విలువ? 367 00:17:11,192 --> 00:17:13,400 అవును, నేను అనుకొనుట కేవలం రకమైన కుడి, తిరిగి అక్కడ వెళ్ళి? 368 00:17:13,400 --> 00:17:18,161 ఆపై 50 క్రాస్, లేదా కేవలం 171 తో తిరిగి రాస్తుంది. 369 00:17:18,161 --> 00:17:20,410 మరియు మీరు ఎందుకు వొండరింగ్ ఉంటే మా సంఖ్యలు, కాబట్టి యాదృచ్ఛిక వచ్చింది 370 00:17:20,410 --> 00:17:24,150 వీటిలో సాధారణంగా కంప్యూటర్ తీసుకుంటారు CS50 తర్వాత హార్వర్డ్ వద్ద శాస్త్రం కోర్సులు. 371 00:17:24,150 --> 00:17:27,510 కానీ ఒక మంచి ఆప్టిమైజేషన్ ఉంది, ఇప్పుడు ఎందుకంటే నేను స్పేస్ వృధా కాదు. 372 00:17:27,510 --> 00:17:30,750 నేను ఇప్పటికీ గుర్తు పెట్టుకోవాలి ఎంత పెద్ద ఈ విషయం మొత్తం ఉంది. 373 00:17:30,750 --> 00:17:31,500 ఇది ఐదు మొత్తం ఉంది. 374 00:17:31,500 --> 00:17:33,375 నేను అనుకుంటున్న ఎందుకంటే 51 తిరిగి రాయటం మొదలు. 375 00:17:33,375 --> 00:17:36,260 కాబట్టి ఇప్పుడు నేను ఇప్పటికీ ఖాళీ am, కాబట్టి అదే సమస్యగా ముందు. 376 00:17:36,260 --> 00:17:39,140 కానీ మీరు ఎలా ఇప్పుడు చూడగలరు మీ కోడ్ లో, మీరు బహుశా 377 00:17:39,140 --> 00:17:41,910 కొంచెం వ్రాయడానికి కలిగి సంక్లిష్టత ఆ జరిగే చేయడానికి. 378 00:17:41,910 --> 00:17:44,510 నిజానికి, ఏమి ఆపరేటర్లు సి లో బహుశా అనుమతిస్తుంది 379 00:17:44,510 --> 00:17:48,110 మీరు అద్భుతంగా ఈ ప్రకటన చేయాలని? 380 00:17:48,110 --> 00:17:50,160 అవును మాడ్యులో ఆపరేటర్లు, శాతం సంకేతం. 381 00:17:50,160 --> 00:17:53,160 సో ఒక క్యూ గురించి చల్లని రకం ఏది, మేము డ్రాయింగ్ శ్రేణుల ఉంచండి అయినప్పటికీ 382 00:17:53,160 --> 00:17:56,520 ఈ వంటి సరళరేఖలు వలె, మీరు ఉంటే రకమైన తిప్పడం ఈ గురించి ఆలోచించడం 383 00:17:56,520 --> 00:18:00,341 చుట్టూ ఒక సర్కిల్ గా, అప్పుడు అకారణంగా రకమైన మానసిక పనిచేస్తుంది 384 00:18:00,341 --> 00:18:01,590 నేను మరింత సజావుగా కొంచెం ఆలోచించాలి. 385 00:18:01,590 --> 00:18:05,190 మీరు ఇప్పటికీ అమలు వుంటుంది కోడ్ లో మానసిక మోడల్. 386 00:18:05,190 --> 00:18:07,550 కాబట్టి ఆ హార్డు కాదు, చివరికి, అమలు 387 00:18:07,550 --> 00:18:12,430 కానీ మేము ఇప్పటికీ కాకుండా, పరిమాణం కోల్పోతారు మేము దీన్ని తప్ప సామర్థ్యం, ​​పరిమాణాన్ని. 388 00:18:12,430 --> 00:18:15,310 >> మేము శ్రేణి యొక్క వదిలించుకోవటం కలిగి, మేము ఒకే పాయింటర్ తో భర్తీ, 389 00:18:15,310 --> 00:18:20,010 ఆపై ఎక్కడో నా కోడ్ లో నేను పొందారు ఒక నిజంగా సృష్టించడానికి పని ఏమి కాల్ 390 00:18:20,010 --> 00:18:23,720 వ్యూహం అని సంఖ్యలు? 391 00:18:23,720 --> 00:18:26,190 Malloc, లేదా కొన్ని ఇటువంటి ఫంక్షన్, సరిగ్గా. 392 00:18:26,190 --> 00:18:30,481 స్టాక్స్ లేదా క్యూలు ఏ ప్రశ్నలు. 393 00:18:30,481 --> 00:18:30,980 అవును? 394 00:18:30,980 --> 00:18:33,657 395 00:18:33,657 --> 00:18:34,240 మంచి ప్రశ్న. 396 00:18:34,240 --> 00:18:35,830 మాడ్యులో ఏమి మీరు ఇక్కడ ఉపయోగించే. 397 00:18:35,830 --> 00:18:38,520 కనుక సాధారణంగా, ఉపయోగిస్తున్నప్పుడు mod, మీరు దీన్ని 398 00:18:38,520 --> 00:18:40,620 పరిమాణం తో మొత్తం డేటా నిర్మాణం. 399 00:18:40,620 --> 00:18:44,120 కాబట్టి ఏదో ఐదు లేదా సామర్థ్యం ఉంటే ఇష్టం ఇది వదిలితే, బహుశా కలిగి ఉంటుంది. 400 00:18:44,120 --> 00:18:47,100 కానీ కేవలం మాడ్యులో ఐదు చేయడం బహుశా తగినంత కాదు 401 00:18:47,100 --> 00:18:51,380 మేము తెలుసుకోవాలి ఎందుకంటే మేము ఇక్కడ లేదా ఇక్కడ లేదా ఇక్కడ చుట్టూ. 402 00:18:51,380 --> 00:18:54,160 సో మీరు బహుశా కూడా ఉన్నారు కలిగి అనుకుంటున్నారా అన్నారు 403 00:18:54,160 --> 00:18:57,220 విషయం యొక్క పరిమాణం, లేదా అలాగే ముందు వేరియబుల్. 404 00:18:57,220 --> 00:19:00,140 కనుక ఇది కేవలం ఈ చాలా వార్తలు సాధారణ అంకగణిత వ్యక్తీకరణ, 405 00:19:00,140 --> 00:19:02,000 కానీ మాడ్యులో కీలక అంశం అవుతుంది. 406 00:19:02,000 --> 00:19:03,330 >> కాబట్టి చిన్న సినిమా మీరు రెడీ ఉంటే. 407 00:19:03,330 --> 00:19:05,780 ఒక యానిమేషన్ కొన్ని మరొక విశ్వవిద్యాలయం వద్ద వారిని 408 00:19:05,780 --> 00:19:08,060 మేము చేసిన ఆ కూర్చు ఈ చర్చ స్వీకరించబడ్డాయి. 409 00:19:08,060 --> 00:19:12,630 ఇది జాక్ నేర్చుకోవటం ఉంటాయి క్యూలు మరియు గణాంకాలను గురించి వాస్తవాలు. 410 00:19:12,630 --> 00:19:19,010 411 00:19:19,010 --> 00:19:21,890 >> సినిమా: ఒకసారి ఒక సమయం మీద, జాక్ అనే వ్యక్తి ఉంది. 412 00:19:21,890 --> 00:19:25,330 ఇది చెయ్యడం వచ్చినప్పుడు, జాక్ ఒక నేర్పు కలిగి లేదు. 413 00:19:25,330 --> 00:19:28,220 కనుక జాక్ మాట్లాడటానికి వెళ్ళారు అత్యంత ప్రజాదరణ వ్యక్తి అతను తెలుసు. 414 00:19:28,220 --> 00:19:30,920 అతను లౌ వెళ్లి నేను ఏమి చేస్తారు, అడిగారు? 415 00:19:30,920 --> 00:19:33,400 లౌ తన స్నేహితుడు గమనించాను నిజంగా నిరాశ నిస్పృహలకి గురయ్యాడు. 416 00:19:33,400 --> 00:19:36,050 Well, అతను కేవలం ప్రారంభమైంది మీరు ధరించి చేస్తున్నాం ఎలా చూడండి. 417 00:19:36,050 --> 00:19:38,680 మీరు ఏ బట్టలు లేదు వేరొక రూపాన్ని? 418 00:19:38,680 --> 00:19:39,660 అవును, జాక్ చెప్పారు. 419 00:19:39,660 --> 00:19:40,840 నేను ఖచ్చితంగా ఏమి. 420 00:19:40,840 --> 00:19:43,320 నా ఇంటికి వచ్చి నేను మీరు వాటిని తెలియజేస్తాము. 421 00:19:43,320 --> 00:19:44,550 కాబట్టి వారు జాక్ యొక్క కాబడింది. 422 00:19:44,550 --> 00:19:47,520 మరియు జాక్ లూ బాక్స్ చూపించాడు అక్కడ అయిన అన్ని అతని చొక్కాలు ఉంచింది 423 00:19:47,520 --> 00:19:49,260 మరియు అతని ప్యాంటు, మరియు తన సాక్స్. 424 00:19:49,260 --> 00:19:52,290 లౌ నేను మీరు చూడండి, అన్నాడు ఒక పైల్ లో అన్ని మీ బట్టలు. 425 00:19:52,290 --> 00:19:54,870 ఎందుకు మీరు కొన్ని ధరించరు అందాకా ఒకసారి ఇతరులు? 426 00:19:54,870 --> 00:19:58,020 >> జాక్ చెప్పారు బాగా, నేను , బట్టలు మరియు సాక్స్లతో తొలగించడానికి 427 00:19:58,020 --> 00:20:00,780 నేను వాటిని కడగడం మరియు చాలు వాటిని దూరంగా బాక్స్ లో. 428 00:20:00,780 --> 00:20:03,210 తరువాతి వస్తుంది ఉదయం, మరియు అప్ నేను హాప్. 429 00:20:03,210 --> 00:20:06,380 నేను బాక్స్ వెళ్లి పొందడానికి టాప్ ఆఫ్ నా బట్టలు. 430 00:20:06,380 --> 00:20:09,070 లౌ త్వరగా గ్రహించాడు జాక్ తో సమస్య. 431 00:20:09,070 --> 00:20:12,080 అతను బట్టలు, CD యొక్క ఉంచింది మరియు స్టాక్ పుస్తకాలు. 432 00:20:12,080 --> 00:20:14,420 అతను చేరుకున్నప్పుడు ఏదో చదవడానికి లేదా ధరించడం, 433 00:20:14,420 --> 00:20:17,100 అతను టాప్ పుస్తకం లేదా లోదుస్తుల ఎంచుకోండి భావిస్తున్న. 434 00:20:17,100 --> 00:20:19,500 అప్పుడు అతను పూర్తి కాగానే, అతను కుడి తిరిగి ఉంచుతాడు. 435 00:20:19,500 --> 00:20:21,970 తిరిగి స్టాక్ పైన, ప్రయత్నించాడు. 436 00:20:21,970 --> 00:20:24,460 నేను పరిష్కారం తెలుసు, ఒక విజయవంతమైన బిగ్గరగా అన్నారు. 437 00:20:24,460 --> 00:20:27,090 మీరు తెలుసుకోవడానికి అవసరం ఒక క్యూ ఉపయోగించడం ప్రారంభించడానికి. 438 00:20:27,090 --> 00:20:29,870 లౌ జాక్ యొక్క బట్టలు పట్టింది మరియు గదిలో వాటిని ముగించారు. 439 00:20:29,870 --> 00:20:32,710 అతడు ఖాళీచేయబడ్డ ఉన్నప్పుడు బాక్స్, అతను కేవలం అది విసిరిన. 440 00:20:32,710 --> 00:20:36,500 >> అప్పుడు అతను జాక్ చివరిలో, ఇప్పుడు, అన్నారు రోజు, ఎడమవైపున మీ బట్టలు చాలు 441 00:20:36,500 --> 00:20:37,990 మీరు వాటిని దూరంగా ఉంచాలి ఉన్నప్పుడు. 442 00:20:37,990 --> 00:20:41,300 అప్పుడు రేపు ఉదయం ఉన్నప్పుడు మీరు మీ బట్టలు పొందుటకు, సూర్యరశ్మి చూడండి 443 00:20:41,300 --> 00:20:43,440 పంక్తి చివర నుండి కుడి, న. 444 00:20:43,440 --> 00:20:44,880 మీరు చూడలేదా? లౌ చెప్పారు. 445 00:20:44,880 --> 00:20:46,370 అది nice ఉంటుంది. 446 00:20:46,370 --> 00:20:49,770 మీరు ఒకసారి ప్రతిదీ ధరిస్తారు చేస్తాము ముందు మీరు రెండుసార్లు ఏదో ధరిస్తారు. 447 00:20:49,770 --> 00:20:52,670 మరియు క్యూలు ప్రతిదీ తన గదిలో మరియు షెల్ఫ్ లో, 448 00:20:52,670 --> 00:20:55,160 జాక్ అనుభూతి ప్రారంభమైంది తనను చాలా ఖచ్చితంగా. 449 00:20:55,160 --> 00:20:59,720 లౌ అన్ని ధన్యవాదాలు మరియు తన అద్భుతమైన క్యూ. 450 00:20:59,720 --> 00:21:01,220 SPEAKER 1: అన్ని కుడి, అది పూజ్యమైన ఉంది. 451 00:21:01,220 --> 00:21:05,920 452 00:21:05,920 --> 00:21:10,080 కాబట్టి నిజంగా ఏమి జరుగుతుందో చెయ్యబడింది ఇప్పుడు హుడ్ కింద? 453 00:21:10,080 --> 00:21:12,370 మేము గమనికలు కలిగి, మేము malloc కలిగి, 454 00:21:12,370 --> 00:21:15,680 మేము సృష్టించే సామర్థ్యం కలిగి మేమే కోసం మెమరీ భాగాలుగా 455 00:21:15,680 --> 00:21:16,344 సాహసోపేతంగా. 456 00:21:16,344 --> 00:21:18,510 కాబట్టి ఈ చిత్రాన్ని మనం ఇతర రోజు చూడటం. 457 00:21:18,510 --> 00:21:21,180 మేము నిజంగా తొలిచే అది, కానీ ఈ చిత్రం 458 00:21:21,180 --> 00:21:24,180 కింద ఉంది జరుగుతున్నాయి ఇప్పుడు వారాలు హుడ్. 459 00:21:24,180 --> 00:21:27,050 మరియు ఈ కేవలం, సూచిస్తుంది మేము డ్రా చేసిన ఒక దీర్ఘ చతురస్రాన్ని 460 00:21:27,050 --> 00:21:28,180 మీ కంప్యూటర్ యొక్క మెమరీ. 461 00:21:28,180 --> 00:21:31,850 మరియు ఉండవచ్చు మీ కంప్యూటర్, లేదా CS50 ID, మెమరీ లేదా RAM యొక్క ఒక గిగాబైట్ ఉంది 462 00:21:31,850 --> 00:21:33,050 లేదా రెండు గిగాబైట్ల లేదా నాలుగు. 463 00:21:33,050 --> 00:21:34,450 ఇది నిజంగా పట్టింపు లేదు. 464 00:21:34,450 --> 00:21:37,240 మీ ఆపరేటింగ్ సిస్టమ్ Windows లేదా Mac OS లేదా Linux, 465 00:21:37,240 --> 00:21:41,120 తప్పనిసరిగా మీ ప్రోగ్రామ్ అనుమతిస్తుంది ప్రాప్తి ఉంది అనుకొనే 466 00:21:41,120 --> 00:21:42,982 మొత్తానికి కు మీ కంప్యూటర్ యొక్క మెమరీ, 467 00:21:42,982 --> 00:21:45,440 కూడా మీరు అమలు చేస్తూ ఉండవచ్చు అయితే ఒకేసారి పలు కార్యక్రమాలు. 468 00:21:45,440 --> 00:21:46,990 కాబట్టి వాస్తవంలో, ఆ నిజంగా పని లేదు. 469 00:21:46,990 --> 00:21:49,448 కానీ అది ఒక భ్రమ రకంగా మీ అన్ని కార్యక్రమాల ఇచ్చిన. 470 00:21:49,448 --> 00:21:53,110 కాబట్టి మీరు ఈ RAM యొక్క రెండు వేదికలను కలిగి కంప్యూటర్ ఆలోచించి ఎలా ఉంది. 471 00:21:53,110 --> 00:21:57,110 >> ఇప్పుడు యాదృచ్ఛికం ఈ ఒకటి విషయాలు, మెమరీ ఈ భాగాలు ఒకటి, 472 00:21:57,110 --> 00:21:58,350 ఒక స్టాక్ అంటారు. 473 00:21:58,350 --> 00:22:01,680 నిజానికి ఏ సమయంలో ఇప్పటివరకు రచన కోడ్ లో 474 00:22:01,680 --> 00:22:05,900 మీరు అని ఒక ఉదాహరణకు ప్రధాన ఫంక్షన్. 475 00:22:05,900 --> 00:22:08,410 ఏ సమయంలో నేను గుర్తుచేసుకున్నారు డ్రా కంప్యూటర్ యొక్క మెమరీ, 476 00:22:08,410 --> 00:22:10,640 నేను ఎల్లప్పుడూ విధమైన డ్రా ఇక్కడ ఒక దీర్ఘచతురస్ర సగం 477 00:22:10,640 --> 00:22:12,520 మాట్లాడటం ఇబ్బంది లేదు పైన ఏమిటి గురించి. 478 00:22:12,520 --> 00:22:15,980 ప్రధాన అంటారు, నేను క్లెయిమ్ ఎందుకంటే మీరు మెమొరీ ఈ అంశం గురించి ఆలోచించారు పొందండి 479 00:22:15,980 --> 00:22:16,970 ఇక్కడ డౌన్ వెళుతుంది. 480 00:22:16,970 --> 00:22:20,650 ప్రధాన ఉంటే మరియు ఒక విధి అని swap వంటి, బాగా స్వాప్ ఇక్కడ వెళ్తాడు. 481 00:22:20,650 --> 00:22:23,720 మరియు అది ఆ హాజరవుతారు అది ఎక్కడ ముగించాడు లో. 482 00:22:23,720 --> 00:22:26,277 ఒక స్టాక్ అని ఏదో మీ కంప్యూటర్ యొక్క మెమరీ లోపల. 483 00:22:26,277 --> 00:22:28,360 ఇప్పుడు రోజు చివరిలో, ఈ కేవలం చిరునామాలను ఉంది. 484 00:22:28,360 --> 00:22:30,680 ఇది బైట్ సున్నా వంటిది బైట్ ఒకటి, బైట్ 2 బిలియన్. 485 00:22:30,680 --> 00:22:33,130 కానీ మీరు దాని గురించి అనుకుంటే ఈ దీర్ఘచతురస్రాకార వస్తువులా, 486 00:22:33,130 --> 00:22:35,130 అన్ని మేము ప్రతి చేస్తున్నా సమయంలో మేము ఒక ఫంక్షన్ కాల్ 487 00:22:35,130 --> 00:22:37,180 మెమరీ కొత్త ముక్క పొరలు. 488 00:22:37,180 --> 00:22:41,700 మేము ఒక ముక్క ఆ ఫంక్షన్ ఇవ్వడం చేస్తున్నారు దాని స్వంత మెమొరీ యొక్క పని. 489 00:22:41,700 --> 00:22:44,490 >> మరియు ఈ ముఖ్యమైన అని ఇప్పుడు గుర్తు. 490 00:22:44,490 --> 00:22:46,400 మేము కలిగి లేకపోతే ఎందుకంటే swap వంటి ఏదో 491 00:22:46,400 --> 00:22:51,610 A మరియు B మరియు వంటి మరియు రెండు స్థానిక వేరియబుల్స్ మేము ఒక మరియు రెండు నుండి ఆ విలువలను మార్చడం 492 00:22:51,610 --> 00:22:55,130 రెండు మరియు ఒక గుర్తుకు స్వాప్ వచ్చినప్పడు ఆ 493 00:22:55,130 --> 00:22:58,330 ఈ ముక్క అయితే వార్తలు కేవలం మెమరీ వెళ్లిపోయిన. 494 00:22:58,330 --> 00:23:00,080 వాస్తవంలో, ఇది ఇప్పటికీ అక్కడ forensically. 495 00:23:00,080 --> 00:23:01,940 మరియు ఏదో వాస్తవానికి ఇప్పటికీ ఉంది. 496 00:23:01,940 --> 00:23:05,410 కానీ సంభావితంగా, అది వార్తలు అయితే అది పూర్తిగా అయిపోంది. 497 00:23:05,410 --> 00:23:10,910 అందువలన ప్రధాన పని ఏ తెలీదు ఆ ఫంక్షన్ మార్పిడి జరిగింది 498 00:23:10,910 --> 00:23:14,890 నిజానికి ఆ జారీ తప్ప పాయింటర్ లేదా సూచనగా వాదనలు. 499 00:23:14,890 --> 00:23:17,790 ఇప్పుడు, ప్రాథమిక పరిష్కారం స్వాప్ తో ఆ సమస్యకు 500 00:23:17,790 --> 00:23:19,970 చిరునామా ద్వారా విషయాలు తరలించడం. 501 00:23:19,970 --> 00:23:23,250 కానీ అది చాలా, ఏమిటి, హాజరవుతారు ఆ భాగం పైన జరుగుతున్న 502 00:23:23,250 --> 00:23:26,330 దీర్ఘ చతురస్రం యొక్క అన్ని ఈ సమయంలో ఉంది ఇంకా మరింత మెమరీ ఇంకెవరూ లేరు. 503 00:23:26,330 --> 00:23:28,790 మరియు మీరు డైనమిక్ మెమరీని కేటాయించాల్సిన, 504 00:23:28,790 --> 00:23:32,020 ఇది GetString, లోపల లేదో ఇది మేము CS50 లో మీరు చేస్తున్న చేసిన 505 00:23:32,020 --> 00:23:34,710 లైబ్రరీ, లేదా మీరు అబ్బాయిలు ఉంటే malloc కాల్ మరియు అడగండి 506 00:23:34,710 --> 00:23:37,950 ఒక భాగం ఆపరేటింగ్ సిస్టమ్ జ్ఞాపకశక్తి, ఇది స్టాక్ నుండి రాదు. 507 00:23:37,950 --> 00:23:40,960 ఇది మరొక ప్రదేశం నుండి వస్తుంది మీ కంప్యూటర్ యొక్క మెమరీ లో 508 00:23:40,960 --> 00:23:42,220 కుప్ప అని. 509 00:23:42,220 --> 00:23:43,430 మరియు ఏ వివిధ కాదు. 510 00:23:43,430 --> 00:23:44,285 ఇది అదే రామ్. 511 00:23:44,285 --> 00:23:45,160 ఇది అదే మెమరీ ఉంది. 512 00:23:45,160 --> 00:23:49,080 అది అప్ వార్తలు ఆ RAM వార్తలు అక్కడ బదులుగా డౌన్ ఇక్కడ. 513 00:23:49,080 --> 00:23:50,750 >> కాబట్టి ఆ అర్థం ఏమిటి? 514 00:23:50,750 --> 00:23:53,650 బాగా, మీ కంప్యూటర్ కలిగి ఉంటే మెమరీ పరిమిత మొత్తం 515 00:23:53,650 --> 00:23:57,450 మరియు స్టాక్ కాబట్టి, అప్ పెరుగుతోంది మాట్లాడటం, మరియు కుప్ప ప్రకారం 516 00:23:57,450 --> 00:23:59,349 ఈ బాణం, డౌన్ పెరుగుతోంది. 517 00:23:59,349 --> 00:24:01,140 ఇతర మాటలలో, ప్రతి సమయం మీరు malloc కాల్, 518 00:24:01,140 --> 00:24:03,430 మీరు ఒక ముక్క ఇచ్చిన చేస్తున్నారు మెమరీ పైన నుండి, 519 00:24:03,430 --> 00:24:06,630 కొద్దిగా దిగువ అప్పుడు బహుశా కొద్దిగా తక్కువ, మీరు malloc కాల్ ప్రతిసారీ, 520 00:24:06,630 --> 00:24:10,100 కుప్ప, ఇది వాడుక యొక్క, రకమైన పెరుగుతోంది, 521 00:24:10,100 --> 00:24:11,950 ఏమి దగ్గరగా మరియు దగ్గరగా పెరుగుతున్న? 522 00:24:11,950 --> 00:24:13,382 స్టాక్. 523 00:24:13,382 --> 00:24:14,840 కాబట్టి ఈ ఒక మంచి ఆలోచన వంటి అనిపించడం లేదు? 524 00:24:14,840 --> 00:24:18,420 525 00:24:18,420 --> 00:24:22,140 అది నిజంగా స్పష్టంగా లేదు పేరు నేను అర్థం మీరు ఏమి మీరు మాత్రమే ఉంటే చేయవచ్చు 526 00:24:22,140 --> 00:24:23,910 మెమరీ ఒక పరిమిత మొత్తం కలిగి. 527 00:24:23,910 --> 00:24:25,200 కానీ ఈ ఖచ్చితంగా చెడ్డది. 528 00:24:25,200 --> 00:24:27,920 ఆ రెండు బాణములు ఉన్నాయి ఒక మరొక కోసం కోర్సు క్రాష్. 529 00:24:27,920 --> 00:24:31,930 >> మరియు ఆ చెడ్డ వ్యక్తి, చేసారో ఎవరు అవుతుంది ప్రోగ్రామింగ్ తో ముఖ్యంగా మంచి 530 00:24:31,930 --> 00:24:36,140 మరియు కంప్యూటర్లు హాక్ ప్రయత్నిస్తున్న, ఈ రియాలిటీ దోపిడీ. 531 00:24:36,140 --> 00:24:38,290 నిజానికి, యొక్క పరిశీలిద్దాం ఒక చిన్న స్నిప్పెట్. 532 00:24:38,290 --> 00:24:41,350 కాబట్టి ఈ మీరు చదువుకోవచ్చు ఒక ఉదాహరణ గురించి వికీపీడియాలో మరింత వివరంగా. 533 00:24:41,350 --> 00:24:43,100 మేము వద్ద మీరు అభిప్రాయపడుతున్నారు చేస్తాము వ్యాసం ఉంటే ఆసక్తికరమైన. 534 00:24:43,100 --> 00:24:45,650 కానీ దాడి సాధారణంగా ఉంది బఫర్ ఓవర్ఫ్లో అని అంటారు 535 00:24:45,650 --> 00:24:49,570 మానవులు ఉన్నంత ఉనికిలో ఉంది సవరించడానికి సామర్థ్యానికి కలిగి 536 00:24:49,570 --> 00:24:53,120 ముఖ్యంగా C. లో కంప్యూటర్ యొక్క మెమరీ, కాబట్టి ఈ చాలా ఏకపక్ష కార్యక్రమం, 537 00:24:53,120 --> 00:24:55,130 కానీ యొక్క దిగువ నుండి చదవడానికి వీలు. 538 00:24:55,130 --> 00:24:57,650 Argc చార్ స్టార్ argv లోకి ప్రధాన. 539 00:24:57,650 --> 00:24:59,830 కనుక ఇది పడుతుంది ఒక కార్యక్రమం ఆదేశ పంక్తి వాదనలు. 540 00:24:59,830 --> 00:25:03,620 మరియు అన్ని ప్రధాన స్పష్టంగా పిలుపు లేదు ఒక ఫంక్షన్, సరళత కోసం F కాల్. 541 00:25:03,620 --> 00:25:04,610 మరియు అది ఏ వెళుతుంది? 542 00:25:04,610 --> 00:25:05,490 ఒకటి argv. 543 00:25:05,490 --> 00:25:09,320 కనుక ఇది F లోకి వెళుతుంది సంసార పదం యూజర్ టైప్ ఉంది 544 00:25:09,320 --> 00:25:11,500 తర్వాత ప్రాంప్ట్ వద్ద కార్యక్రమం యొక్క పేరు అన్ని వద్ద. 545 00:25:11,500 --> 00:25:15,730 ఎంతగా సీజర్ లేదా విజెనెరే మాదిరిగా మీరు argv తో చేస్తున్న గుర్తు ఉండవచ్చు. 546 00:25:15,730 --> 00:25:16,680 >> సో F ఏమిటి? 547 00:25:16,680 --> 00:25:19,760 F ఒక స్ట్రింగ్ లో పడుతుంది దాని ఏకైక వాదన వంటి, 548 00:25:19,760 --> 00:25:22,100 AKA ఒక చార్ స్టార్, అదే విషయం ఒక స్ట్రింగ్ వంటి. 549 00:25:22,100 --> 00:25:24,920 మరియు కక్ష్య అని ఈ ఉదాహరణలో బార్. 550 00:25:24,920 --> 00:25:27,710 ఆపై చార్ సి 12, కేవలం లేమాన్ నియమాలు, 551 00:25:27,710 --> 00:25:31,750 మాకు చేయడం చార్ సి బ్రాకెట్ 12 ఏమిటి? 552 00:25:31,750 --> 00:25:33,440 అది ఏమి ఉంది? 553 00:25:33,440 --> 00:25:36,490 ప్రత్యేకంగా స్మృతితో పెడుతోంది 12 అక్షరాలు కోసం 12 బైట్లు. 554 00:25:36,490 --> 00:25:36,990 సరిగ్గా. 555 00:25:36,990 --> 00:25:40,000 ఆపై చివరి పంక్తి, కదిలించు మరియు కాపీని, మీరు బహుశా చూడని చేసిన. 556 00:25:40,000 --> 00:25:43,360 ఈ స్ట్రింగ్ నకలు దీని ప్రయోజనం జీవితంలో ఫంక్షన్ 557 00:25:43,360 --> 00:25:48,160 దాని రెండవ వాదన కాపీ ఉంది మొదటి వాదన లోకి, 558 00:25:48,160 --> 00:25:51,190 కానీ ఒక వరకు బైట్లు నిర్దిష్ట సంఖ్యలో. 559 00:25:51,190 --> 00:25:53,860 కాబట్టి మూడవ వాదన చెప్పారు మీరు ఎన్ని బైట్లు కాపీ ఉండాలి? 560 00:25:53,860 --> 00:25:56,720 బార్ యొక్క పొడవు, సంసార లో టైప్ యూజర్. 561 00:25:56,720 --> 00:25:59,320 మరియు విషయాలు ఉన్నాయి, ఆ స్ట్రింగ్ బార్ 562 00:25:59,320 --> 00:26:02,330 మెమరీ లోకి కాపీ C. వద్ద దిశగానే 563 00:26:02,330 --> 00:26:04,060 >> కాబట్టి ఈ రకమైన తెలివితక్కువదని ఉంది, మరియు అది ఉంది. 564 00:26:04,060 --> 00:26:06,300 ఇది ఒక కంట్రైవ్డ్ ఉదాహరణకు, కానీ ఇది ప్రాతినిధ్య వార్తలు 565 00:26:06,300 --> 00:26:10,100 దాడి వెక్టర్స్ యొక్క తరగతి, ఒక కార్యక్రమం దాడి యొక్క మార్గం. 566 00:26:10,100 --> 00:26:15,050 అన్ని జరిమానా మరియు యూజర్ ఉంటే మంచి 11 అక్షరాల యొక్క, ఒక పదం లో రకాలు 567 00:26:15,050 --> 00:26:18,040 తక్కువ, ప్లస్ బాక్ స్లాష్ సున్నా లేదా. 568 00:26:18,040 --> 00:26:22,830 దానికంటే లో యూజర్ రకాల ఎక్కువ ఉంటే 11 లేదా 12 లేదా 20 లేదా 50 అక్షరాలు? 569 00:26:22,830 --> 00:26:25,090 చేయబోవడం ఈ కార్యక్రమం ఏమిటి? 570 00:26:25,090 --> 00:26:29,360 సమర్థవంతంగా seg తప్పు. అది జరగబోతోంది గుడ్డిగా అప్ బార్ లో ప్రతిదీ కాపీ 571 00:26:29,360 --> 00:26:31,750 దాని పొడవు, అక్షరాలా బార్ లో ప్రతిదీ, 572 00:26:31,750 --> 00:26:36,307 చిరునామాగా C. కానీ సి దిశగానే మాత్రమే preemptively 12 బైట్లు గా ఇచ్చారు. 573 00:26:36,307 --> 00:26:37,640 అయితే వీటికి అదనపు తనిఖీ. 574 00:26:37,640 --> 00:26:38,700 పరిస్థితులు ఉంటే ఏ ఉంది. 575 00:26:38,700 --> 00:26:40,580 ఇక్కడ ఏ దోష ఉంది. 576 00:26:40,580 --> 00:26:43,270 >> కాబట్టి ఈ ప్రోగ్రామ్ ఏమిటి చేయబోవడం గుడ్డిగా ఉంది 577 00:26:43,270 --> 00:26:45,750 ఇతర ఒక విషయం కాపీ. 578 00:26:45,750 --> 00:26:47,880 కాబట్టి మేము ఈ డ్రా ఉంటే ఒక చిత్రాన్ని, ఇక్కడ 579 00:26:47,880 --> 00:26:49,860 మెమరీని కేవలం ఒక అంశం గురించి ఆలోచించారు. 580 00:26:49,860 --> 00:26:53,470 కాబట్టి మేము, దిగువన ప్రకటన స్థానిక వేరియబుల్ బార్ కలిగి. 581 00:26:53,470 --> 00:26:57,330 Store-- జరగబోతోంది ఆ పాయింటర్ కాబట్టి అని ఆ స్థానిక వాదన కాకుండా 582 00:26:57,330 --> 00:26:58,672 స్ట్రింగ్ బార్ నిల్వ అన్నారు. 583 00:26:58,672 --> 00:27:00,380 ఆపై కేవలం గమనించవచ్చు ఇది పైన ఒక స్టాక్ లో, 584 00:27:00,380 --> 00:27:02,505 ఎందుకంటే మీరు అడగండి ప్రతిసారీ స్టాక్ మెమరీ కోసం, 585 00:27:02,505 --> 00:27:04,310 ఇది కొద్దిగా వెళ్తాడు చిత్రాల పై, 586 00:27:04,310 --> 00:27:06,270 మేము అక్కడ 12 బైట్లు పొందారు నోటీసు. 587 00:27:06,270 --> 00:27:10,690 ఎగువ ఎడమ ఒక C బ్రాకెట్ సున్నా మరియు కుడి దిగువన ఒక C బ్రాకెట్ 11 ఉంది. 588 00:27:10,690 --> 00:27:12,870 ఆ ఎంత కంప్యూటర్లు వార్తలు దాన్ని వేయడానికి వెళ్తున్నారు. 589 00:27:12,870 --> 00:27:18,300 కాబట్టి కేవలం intuitively, బార్ మరింత కలిగి ఉంటే సహా మొత్తం 12 అక్షరాలు కంటే 590 00:27:18,300 --> 00:27:25,790 ఉన్న బాక్ స్లాష్ సున్నా, 12 లేదా సి బ్రాకెట్ 12 వెళ్ళడానికి వెళ్తున్నారు? 591 00:27:25,790 --> 00:27:28,440 లేదా బదులుగా ఇక్కడ 12 వ ఉంది పాత్ర లేదా 13 పాత్ర, 592 00:27:28,440 --> 00:27:30,900 అన్నారు వందవ పాత్ర చిత్రంలో వదులుకోవడానికి? 593 00:27:30,900 --> 00:27:33,400 అటుఇటుగా? 594 00:27:33,400 --> 00:27:36,300 >> కుడి, అయినప్పటికీ ఎందుకంటే స్టాక్ స్వయంగా పైకి పెరుగుతుంది 595 00:27:36,300 --> 00:27:39,590 మీరు stuff ఉంచవచ్చు ఒకసారి అది రూపకల్పన వంటి కారణాల కోసం, 596 00:27:39,590 --> 00:27:41,294 పై నుంచి కిందకు మెమరీ ఉంచుతుంది. 597 00:27:41,294 --> 00:27:44,460 మీరు కంటే ఎక్కువ 12 బైట్లు పొందారు చేస్తే, మీరు బార్ తిరిగి రాస్తుంది ఆరంభమవుతుంది చేస్తున్నారు. 598 00:27:44,460 --> 00:27:47,280 ఇప్పుడు ఒక బగ్ ఉంది, కానీ అది నిజంగా ఒక పెద్ద ఒప్పందం. 599 00:27:47,280 --> 00:27:51,130 ఉంది ఎందుకంటే కానీ అది ఒక పెద్ద ఒప్పందం ఉంది మెమరీ లో మరింత stuff. 600 00:27:51,130 --> 00:27:53,074 ఇక్కడ మేము ఎలా వాటిని వార్తలు స్పష్టతను, హలో చాలు. 601 00:27:53,074 --> 00:27:54,490 నేను ప్రాంప్ట్ వద్ద హలో లో టైప్ ఉంటే. 602 00:27:54,490 --> 00:27:59,330 H-E-L-L-O బాక్ స్లాష్ సున్నా, లోపల ముగుస్తుంది ఆ 12 బైట్లు, మరియు మేము సూపర్ సురక్షితంగా ఉన్నారు. 603 00:27:59,330 --> 00:28:00,330 అన్ని బాగా ఉంది. 604 00:28:00,330 --> 00:28:03,020 కానీ నేను ఏదో టైప్ చేస్తే ఇక, సమర్థవంతంగా అంతే 605 00:28:03,020 --> 00:28:05,860 బార్ అంతరిక్షంలోకి భీతి అన్నారు. 606 00:28:05,860 --> 00:28:08,405 కానీ అధ్వాన్నంగా ఇంకా, అది మారుతుంది ఈ సమయంలో, 607 00:28:08,405 --> 00:28:11,530 మేము గురించి మాట్లాడారు ఎప్పుడూ చేసిన అయినప్పటికీ ఇది స్టాక్ ఇతర విషయం కోసం ఉపయోగిస్తారు. 608 00:28:11,530 --> 00:28:13,560 ఇది కేవలం స్థానిక వేరియబుల్స్ కాదు. 609 00:28:13,560 --> 00:28:15,100 >> సి చాలా తక్కువ స్థాయి భాష. 610 00:28:15,100 --> 00:28:17,810 మరియు విధమైన రహస్యంగా కూడా స్టాక్ ఉపయోగించే 611 00:28:17,810 --> 00:28:21,260 ఉన్నప్పుడు గుర్తుంచుకోవడానికి ఒక ఫంక్షన్, ఏ అంటారు 612 00:28:21,260 --> 00:28:26,040 చిరునామా, మునుపటి ఫంక్షన్ ఉంది కాబట్టి అది తిరిగి ఆ ఫంక్షన్ వెళ్లగలదు. 613 00:28:26,040 --> 00:28:29,980 కాబట్టి ప్రధాన కాల్స్ మధ్య, మార్పిడి చేసినప్పుడు విషయాలు స్టాక్ లో ముమ్మరం 614 00:28:29,980 --> 00:28:34,380 కేవలం, స్థానిక వేరియబుల్స్ మార్పిడులు లేదు లేదా దాని వాదనలు, కూడా రహస్యంగా ముమ్మరం 615 00:28:34,380 --> 00:28:37,510 స్టాక్ లో సూచించబడిన ఇక్కడ ఎరుపు ముక్క, 616 00:28:37,510 --> 00:28:40,520 ప్రధాన యొక్క చిరునామా భౌతికంగా మీ కంప్యూటర్ యొక్క మెమరీ లో, 617 00:28:40,520 --> 00:28:44,180 కాబట్టి swap చేయబడుతుంది, కంప్యూటర్ నేను ప్రధాన తిరిగి వెళ్లాలి తెలుసు 618 00:28:44,180 --> 00:28:46,760 మరియు ప్రధాన విధి అమలు పూర్తి. 619 00:28:46,760 --> 00:28:51,960 కాబట్టి ఈ ఇప్పుడు ప్రమాదకరం ఎందుకంటే హలో కంటే బాగా ఎక్కువ వినియోగదారు రకాల 620 00:28:51,960 --> 00:28:57,030 యూజర్ యొక్క ఇన్పుట్ clobbers అలాంటి లేదా, ఆ ఎరుపు విభాగంలోని తిరిగి రాస్తుంది 621 00:28:57,030 --> 00:28:59,820 తార్కికంగా ఉంటే కంప్యూటర్ యొక్క కేవలం గుడ్డిగా ఊహించుకోవటం అన్నారు 622 00:28:59,820 --> 00:29:03,830 ఆ ఎరుపు ముక్క లో బైట్లు అని ఇది దేశంలోని ఏ చిరునామా, 623 00:29:03,830 --> 00:29:09,020 విరోధి ఏమి ఉంటే తగినంత స్మార్ట్ లేదా బైట్లు ఒక క్రమం ఉంచాలి తగినంత అదృష్ట 624 00:29:09,020 --> 00:29:13,450 అక్కడ ఒక చిరునామా కనిపించే, కానీ ఇది కోడ్ చిరునామా వార్తలు 625 00:29:13,450 --> 00:29:18,730 అతను లేదా ఆమె కంప్యూటర్ కోరుకుంటున్నారు బదులుగా ప్రధాన అమలు ఎలా? 626 00:29:18,730 --> 00:29:21,670 >> ఇతర మాటలలో, ఏం వినియోగదారు ప్రాంప్ట్ వద్ద టైప్ 627 00:29:21,670 --> 00:29:23,850 కేవలం ఏదో కాదు హలో హానికరం వంటి 628 00:29:23,850 --> 00:29:28,210 కాని ఇది సమాన ఆ కోడ్ నిజానికి అన్ని ఈ యూజర్ యొక్క ఫైళ్ళను తొలగించడానికి ఎలా? 629 00:29:28,210 --> 00:29:30,060 లేదా నాకు వారి పాస్వర్డ్ను? ఇమెయిల్ 630 00:29:30,060 --> 00:29:31,940 లేదా లాగింగ్ ప్రారంభించిన వారి కీస్ట్రోక్, కుడి? 631 00:29:31,940 --> 00:29:34,920 ఒక మార్గం ఉంది, నేడు నియమములు వీలు వారు హలో కేవలం టైప్ అని 632 00:29:34,920 --> 00:29:36,711 ప్రపంచ లేదా వారి పేరు, వారు తప్పనిసరిగా అనుకొనుట 633 00:29:36,711 --> 00:29:39,570 కోడ్, సున్నాలు లో పాస్ మరియు వాటిని ఆ కంప్యూటర్లో 634 00:29:39,570 --> 00:29:43,450 కోడ్ మరియు ఒక చిరునామా రెండు కోసం తప్పులు. 635 00:29:43,450 --> 00:29:48,950 అయినప్పటికీ కాబట్టి కొంతవరకు బొత్తిగా ఉంటే తగినంత పటిష్టమయిన కోడ్ యూజర్ రకాల 636 00:29:48,950 --> 00:29:52,330 మేము ఇక్కడ సాధారణీకరించడం చేస్తాము అని A. ఎ దాడి లేదా వ్యతిరేకుల ఉంది. 637 00:29:52,330 --> 00:29:53,140 కాబట్టి కేవలం చెడు విషయం. 638 00:29:53,140 --> 00:29:55,306 మనం శ్రద్ధ లేదు సంఖ్యలు లేదా సున్నాలు లేదా వాటిని 639 00:29:55,306 --> 00:29:59,470 నేడు, మీరు ముగుస్తుంది ఆ ఎరుపు విభాగంలోని తిరిగి రాయటం, 640 00:29:59,470 --> 00:30:01,580 బైట్లు క్రమం గమనించవచ్చు. 641 00:30:01,580 --> 00:30:05,020 O 835 C సున్నా ఎనిమిది సున్నా. 642 00:30:05,020 --> 00:30:08,960 ఇప్పుడు ఇక్కడ వికీపీడియా వ్యాసం వంటి మీరు ఇప్పుడు నిజానికి మొదలు ఉంటే, ప్రతిపాదించారు 643 00:30:08,960 --> 00:30:12,460 మీ కంప్యూటర్ యొక్క బైట్ల గుర్తించడం మెమరీ వికీపీడియా వ్యాసం ఏమిటి 644 00:30:12,460 --> 00:30:19,060 ప్రతిపాదిస్తూ, ఆ ఏమి చిరునామా ఉంటే టాప్ ఎడమ బైట్ యొక్క 80 సి 0 3508 ఉంది. 645 00:30:19,060 --> 00:30:22,200 >> ఇతర మాటలలో, చెడ్డ వ్యక్తి ఉంటే అతని లేదా ఆమె కోడ్ తగినంత స్మార్ట్ 646 00:30:22,200 --> 00:30:26,650 నిజానికి ఇక్కడ ఒక సంఖ్య ఉంచాలి కోడ్ యొక్క చిరునామా అనుగుణంగా 647 00:30:26,650 --> 00:30:29,180 అతను లేదా ఆమె లోపలికి కంప్యూటర్ లోకి మీరు 648 00:30:29,180 --> 00:30:31,050 కంప్యూటర్ మోసపూరిత చేయవచ్చు ఏదైనా చేయడం లోకి. 649 00:30:31,050 --> 00:30:34,140 , ఫైళ్లను తొలగించటం ఇమెయిల్ విషయాలు మీ ట్రాఫిక్ sniffing, 650 00:30:34,140 --> 00:30:36,710 అక్షరాలా ఏదైనా కావచ్చు కంప్యూటర్ చొప్పించారు. 651 00:30:36,710 --> 00:30:39,220 కాబట్టి ఒక బఫర్ ఓవర్ఫ్లో దాని కోర్ వద్ద దాడి 652 00:30:39,220 --> 00:30:43,530 కేవలం తెలివితక్కువదని, తెలివితక్కువదని ఉంది వ్యూహం యొక్క దీనికి ఆ 653 00:30:43,530 --> 00:30:45,840 దాని సరిహద్దులు తనిఖీ లేదు. 654 00:30:45,840 --> 00:30:48,850 మరియు ఈ సూపర్ ప్రమాదకరమైన ఏమిటి మరియు ఏకకాలంలో సూపర్ శక్తివంతమైన 655 00:30:48,850 --> 00:30:52,560 సి లో మేము నిజానికి కలిగి లేని ఉంది మెమరీ ఎక్కడైనా యాక్సెస్. 656 00:30:52,560 --> 00:30:55,320 ఇది మాకు ఇష్టం, ప్రోగ్రామర్లు, అసలు కోడ్ వ్రాయడానికి 657 00:30:55,320 --> 00:30:59,330 ఏ రంధ్రాన్ని సరి చేయు పొడవు తనిఖీ మేము అభిసంధానించడం చేస్తున్న శ్రేణుల. 658 00:30:59,330 --> 00:31:00,750 కాబట్టి స్పష్టతను, పరిష్కారము ఏమిటి? 659 00:31:00,750 --> 00:31:03,190 మేము ఈ తిరిగి వెళ్లండి ఉంటే కోడ్, నేను కాదు కేవలం 660 00:31:03,190 --> 00:31:08,000 బార్ యొక్క పొడవు మార్చడానికి, ఏమి వేరే నేను తనిఖీ చేయాలి? 661 00:31:08,000 --> 00:31:10,620 నేను ఏమి చేయడం చేయాలి పూర్తిగా ఈ దాడి నిరోధించడానికి? 662 00:31:10,620 --> 00:31:14,110 నేను గుడ్డిగా అంతరంలో లేదు మీరు అనేక బైట్లు కాపీ ఉండాలని 663 00:31:14,110 --> 00:31:16,140 బార్ పొడవు. 664 00:31:16,140 --> 00:31:18,910 నేను కాపీ, అంతరంలో అనేక బైట్లు బార్ లో ఉన్నాయి 665 00:31:18,910 --> 00:31:24,090 కేటాయించింది వరకు మెమొరీ లేదా గరిష్టంగా 12. 666 00:31:24,090 --> 00:31:27,450 కాబట్టి నేను పరిస్థితి ఉంటే రకమైన అవసరం ఆ బార్ యొక్క పొడవును తనిఖీ చేస్తుంది, 667 00:31:27,450 --> 00:31:32,800 కానీ అది 12, మేము కేవలం హార్డ్ కోడ్ అతిక్రమిస్తే గరిష్ట దూరం 12. 668 00:31:32,800 --> 00:31:35,910 లేకపోతే అని పిలవబడే బఫర్ ఓవర్ఫ్లో దాడి జరుగుతుంది. 669 00:31:35,910 --> 00:31:38,451 ఆ స్లయిడ్లను దిగువన, మీరు మరింత చదవడానికి ఆసక్తిగా ఉంటే 670 00:31:38,451 --> 00:31:41,200 వాస్తవ అసలైన కథనం మీరు పరిశీలించి చెయ్యాలనుకుంటే. 671 00:31:41,200 --> 00:31:44,550 >> కానీ ఇప్పుడు, ధరలు మధ్య అసమర్థతలను ఇక్కడ చెల్లించింది. 672 00:31:44,550 --> 00:31:46,680 కాబట్టి ఒక త్వరితంగా వద్ద తక్కువ స్థాయి లుక్ ఏమి 673 00:31:46,680 --> 00:31:49,709 సమస్యలు మేము ఇప్పుడు పెరగవచ్చు కంప్యూటర్ స్మృతికి ప్రాప్తిని కలిగి. 674 00:31:49,709 --> 00:31:51,750 కానీ మరొక సమస్య మేము ఇప్పటికే సోమవారం డెక్కన్ ఛార్జర్స్ 675 00:31:51,750 --> 00:31:53,800 కేవలం అసమర్థతపై ఉంది ఒక లింక్ జాబితా. 676 00:31:53,800 --> 00:31:56,019 మేము తిరిగి సరళ సమయంలో కూడా ఉన్నాయి. 677 00:31:56,019 --> 00:31:57,560 మేము ఇకపై అవిచ్ఛిన్నంగా శ్రేణి కలిగి. 678 00:31:57,560 --> 00:31:58,980 మేము రాండమ్ యాక్సెస్ లేదు. 679 00:31:58,980 --> 00:32:00,710 మేము చదరపు బ్రాకెట్ సంజ్ఞామానం ఉపయోగించలేరు. 680 00:32:00,710 --> 00:32:04,590 మేము వాచ్యంగా ఒక సమయంలో లూప్ ఉపయోగించడానికి కలిగి ఒక వంటి నేను ఒక క్షణం క్రితం రాశాడు. 681 00:32:04,590 --> 00:32:09,740 కానీ సోమవారం, మేము చెయ్యవచ్చు పేర్కొన్నారు సామర్థ్యం రాజ్యం తిరిగి భీతి 682 00:32:09,740 --> 00:32:13,040 ఏదో సాధించే సంవర్గమాన ఉండవచ్చు, లేదా ఉత్తమ ఇంకా, 683 00:32:13,040 --> 00:32:16,120 ఆ ఇంకా ఏదో స్థిరంగా సమయం అని పిలవబడే. 684 00:32:16,120 --> 00:32:19,840 కాబట్టి మేము ఈ నూతన ఉపయోగించి ఆ ఎలా చేయవచ్చు టూల్స్, ఈ చిరునామాలు, ఈ గమనికలు, 685 00:32:19,840 --> 00:32:22,210 మరియు మా సొంత విషయాలు థ్రెడ్డింగ్? 686 00:32:22,210 --> 00:32:23,960 Well, ఆ భావించండి ఇక్కడ, ఈ ఒక బంచ్ ఉంటాయి 687 00:32:23,960 --> 00:32:27,170 మేము ఒక నిల్వ అనుకుంటున్నారా సంఖ్యల సమర్ధవంతంగా డేటా నిర్మాణం మరియు శోధన. 688 00:32:27,170 --> 00:32:30,960 మేము ఖచ్చితంగా వారం రివైండ్ చేయవచ్చు రెండు, వ్యూహం లోకి ఈ త్రో 689 00:32:30,960 --> 00:32:33,150 మరియు బైనరీ శోధన ఉపయోగించి వాటిని అన్వేషణ. 690 00:32:33,150 --> 00:32:34,040 విభజించి జయించటానికి. 691 00:32:34,040 --> 00:32:37,720 నిజానికి మీరు రాశారు pset3 లో బైనరీ శోధన, 692 00:32:37,720 --> 00:32:40,100 ఇక్కడ మీరు కనుగొనండి కార్యక్రమం అమలు. 693 00:32:40,100 --> 00:32:40,890 కానీ మీరు ఏమి తెలుసు. 694 00:32:40,890 --> 00:32:45,060 మరింత రకం ఉంది ఇలా తెలివైన మార్గం. 695 00:32:45,060 --> 00:32:47,390 ఇది కొంచెం వార్తలు అధునాతన మరియు బహుశా 696 00:32:47,390 --> 00:32:50,830 మాకు ఎందుకు బైనరీ చూడండి అనుమతిస్తుంది శోధన చాలా వేగంగా ఉంది. 697 00:32:50,830 --> 00:32:52,980 మొదటి, యొక్క పరిచయం తెలియజేయండి ఒక చెట్టు యొక్క భావన. 698 00:32:52,980 --> 00:32:54,730 ఇది కూడా అయితే రియాలిటీ చెట్లు రకమైన 699 00:32:54,730 --> 00:32:57,730 కంప్యూటర్ ప్రపంచంలో, ఈ వంటి పెరుగుతాయి వారు రకమైన కిందకి పెరుగుతాయి శాస్త్రం 700 00:32:57,730 --> 00:33:00,830 మీరు ఉన్న ఒక కుటుంబం చెట్టు, వంటి మీ తాతలు లేదా గొప్ప తాతలు 701 00:33:00,830 --> 00:33:04,580 లేదా whatnot టాప్, మూలపురుషుడైన మరియు కుటుంబ Matriarch, కేవలం ఒక 702 00:33:04,580 --> 00:33:07,930 రూట్ నోడ్, క్రింద పిలవబడే దాని పిల్లలు ఇవి, 703 00:33:07,930 --> 00:33:11,442 ఇది క్రింద దాని పిల్లలు, లేదా దాని వారసులు సాధారణంగా. 704 00:33:11,442 --> 00:33:13,400 మరియు ఎవరైనా ఆఫ్ ఉరి కుటుంబం దిగువన 705 00:33:13,400 --> 00:33:16,070 చెట్టు, ఉండడంవల్ల కుటుంబం లో చిన్న, 706 00:33:16,070 --> 00:33:19,520 కూడా కేవలం సాధారణంగా ఉంటుంది చెట్టు ఆకులు అని. 707 00:33:19,520 --> 00:33:21,800 >> కాబట్టి ఈ కేవలం ఒక బంచ్ ఉంది పదాలు మరియు నిర్వచనములు 708 00:33:21,800 --> 00:33:25,790 ఏదో కంప్యూటర్ లో ఒక చెట్టు అని సైన్స్, ఒక కుటుంబం చెట్టు వంటి చాలా. 709 00:33:25,790 --> 00:33:28,770 కానీ ఫ్యాన్సియెర్స్ అవతారములు వార్తలు చెట్లు, వీటిలో ఒకటి 710 00:33:28,770 --> 00:33:30,780 ఒక బైనరీ శోధన చెట్టు అంటారు. 711 00:33:30,780 --> 00:33:34,380 మరియు మీరు బాధించటం రకం ఈ విషయం వేరుగా ఏమి. 712 00:33:34,380 --> 00:33:37,180 సరే, ఏ కోణంలో బైనరీ? 713 00:33:37,180 --> 00:33:41,455 ఎక్కడ బైనరీ ఇక్కడ నుండి వస్తుంది? 714 00:33:41,455 --> 00:33:41,955 క్షమించాలి? 715 00:33:41,955 --> 00:33:45,961 716 00:33:45,961 --> 00:33:47,210 ఇది చాలా ఒక గాని లేదా కాదు. 717 00:33:47,210 --> 00:33:52,000 ఇది నోడ్స్ యొక్క ప్రతి ఏ ఉంది ఆ మరింత రెండు కంటే ఎక్కువ పిల్లలు, మేము ఇక్కడ చూడండి. 718 00:33:52,000 --> 00:33:54,990 జనరల్, ఒక చెట్టు మరియు మీ తల్లిదండ్రులు మరియు తాతామామల 719 00:33:54,990 --> 00:33:57,640 అనేక పిల్లలు కలిగి లేదా grandkids వారు నిజంగానే మీరు, 720 00:33:57,640 --> 00:34:00,820 అందువలన ఉదాహరణకు అక్కడ మేము మూడు కలిగి ఆ కుడి చేతి నోడ్ ఆఫ్ పిల్లలు, 721 00:34:00,820 --> 00:34:05,480 కానీ ఒక బైనరీ చెట్టు ఒక నోడ్ ఉంది గరిష్టంగా సున్నా, ఒకటి, లేదా రెండు పిల్లలు. 722 00:34:05,480 --> 00:34:08,496 మరియు ఆ, ఒక nice ఆస్తి వార్తలు ఇది రెండు పొదగబడి ఉంటే ఎందుకంటే 723 00:34:08,496 --> 00:34:10,620 మనం విధంగా చూడాలని కొద్దిగా లాగ్ బేస్ పొందుటకు రెండు 724 00:34:10,620 --> 00:34:11,975 చర్య ఇక్కడ చివరకు న వెళుతున్నారు. 725 00:34:11,975 --> 00:34:13,350 కాబట్టి మేము సంవర్గమాన ఏదైనా కలిగి. 726 00:34:13,350 --> 00:34:14,558 కానీ ఒక క్షణం లో ఆ మరింత. 727 00:34:14,558 --> 00:34:19,810 శోధన చెట్టు సంఖ్యలు అని అర్థం ఏర్పాటు అలాంటి ఎడమ పిల్లల 728 00:34:19,810 --> 00:34:22,429 విలువ మూలం కంటే ఎక్కువ. 729 00:34:22,429 --> 00:34:26,010 మరియు దాని కుడి సంతానం మూలం కంటే పెద్దగా ఉంటాయి. 730 00:34:26,010 --> 00:34:29,290 ఇతర మాటలలో, మీరు ఏ తీసుకుంటే నోడ్స్, ఈ చిత్రంలో వృత్తాలు, 731 00:34:29,290 --> 00:34:31,840 మరియు దాని ఎడమ చూసి బాల మరియు దాని కుడి బాల, 732 00:34:31,840 --> 00:34:34,739 మొదటి, కంటే తక్కువ ఉండాలి రెండవ కంటే ఎక్కువ ఉండాలి. 733 00:34:34,739 --> 00:34:36,159 కాబట్టి తెలివి 55 తనిఖీ. 734 00:34:36,159 --> 00:34:37,780 ఇది పిల్లల వదిలి 33 ఉంది. 735 00:34:37,780 --> 00:34:38,620 ఇది కంటే తక్కువగా. 736 00:34:38,620 --> 00:34:40,929 55 దాని కుడి బాల 77 ఉంది. 737 00:34:40,929 --> 00:34:41,783 ఇది కంటే ఎక్కువ. 738 00:34:41,783 --> 00:34:43,199 మరియు ఒక పునరావృత నిర్వచనం ఉంది. 739 00:34:43,199 --> 00:34:46,480 మేము ఆ ప్రతి ఒకటి తనిఖీ కాలేదు నోడ్స్ మరియు పట్టుకోండి అదే నమూనా. 740 00:34:46,480 --> 00:34:49,389 >> సో ఒక లో nice ఏమిటి బైనరీ శోధన వృక్షం 741 00:34:49,389 --> 00:34:52,204 ఒక, మేము దానిని అమలు చేయవచ్చు ఒక struct, కేవలం దీన్ని ఇష్టపడుతున్నారు. 742 00:34:52,204 --> 00:34:54,620 మరియు మేము విసిరి చేస్తున్నారు అయినప్పటికీ మీ నిర్మాణాల్లో మా, 743 00:34:54,620 --> 00:34:56,560 వారు కొంత ఉన్నారు సహజమైన ఇప్పుడు ఆశాజనక. 744 00:34:56,560 --> 00:35:00,570 వాక్యనిర్మాణం, ఇప్పటికీ ఖచ్చితంగా మర్మమైన ఉంది కానీ ఈ ఒక నోడ్ యొక్క కంటెంట్లను 745 00:35:00,570 --> 00:35:02,786 సందర్భం మరియు మేము ఉంచడానికి పదం నోడ్ ఉపయోగించి, 746 00:35:02,786 --> 00:35:04,910 అది ఒక దీర్ఘ చతురస్రం ఉంది లేదో స్క్రీన్ లేదా ఒక వృత్తంలో, 747 00:35:04,910 --> 00:35:08,970 అది కేవలం కొన్ని సాధారణ కంటైనర్ ఒక వంటి ఒక చెట్టు యొక్క ఈ సందర్భంలో, 748 00:35:08,970 --> 00:35:11,780 మేము ఒక పూర్ణాంకం అవసరం చూసింది నోడ్స్ యొక్క ప్రతి లో 749 00:35:11,780 --> 00:35:15,460 ఆపై నేను రెండు పాయింటర్లు పాయింటింగ్ అవసరం ఎడమ బాల మరియు కుడి బాల, 750 00:35:15,460 --> 00:35:16,590 వరుసగా. 751 00:35:16,590 --> 00:35:20,730 సో ఎలా మేము వాటిని ఒక struct లో అమలు. 752 00:35:20,730 --> 00:35:22,315 మరియు ఎలా నేను కోడ్ అమలు ఉండవచ్చు? 753 00:35:22,315 --> 00:35:26,730 సరే, ఒక శీఘ్ర తీసుకుందాం ఈ చిన్న ఉదాహరణ చూడండి. 754 00:35:26,730 --> 00:35:29,820 ప్రమేయ కాదు, కానీ నేను కాపీ మరియు ఆ నిర్మాణం అతికించారు. 755 00:35:29,820 --> 00:35:33,510 మరియు ఒక బైనరీ కోసం నా ఫంక్షన్ శోధన చెట్టు, అన్వేషణ అంటారు 756 00:35:33,510 --> 00:35:36,980 దీంతో ఈ రెండు వాదనలు, పూర్ణాంకం N మరియు ఒక పాయింటర్ 757 00:35:36,980 --> 00:35:41,400 చెట్టు ఒక నోడ్, కాబట్టి ఒక పాయింటర్ లేదా ఒక చెట్టు యొక్క root ఒక పాయింటర్, 758 00:35:41,400 --> 00:35:43,482 ఎలా నేను N శోధించడం గురించి గో? 759 00:35:43,482 --> 00:35:45,440 బాగా, మొదటి, నేను ఉన్నాను ఎందుకంటే గమనికలు వ్యవహరించే, 760 00:35:45,440 --> 00:35:46,750 నేను ఒక పవిత్రత చెక్ చేయ బోతున్నాను. 761 00:35:46,750 --> 00:35:54,279 చెట్టు సమానం సమానం ఉంటే శూన్య n అయితే, ఈ చెట్టు లో లేదా ఈ చెట్టు లో? 762 00:35:54,279 --> 00:35:55,070 ఇది కుడి, కాదు? 763 00:35:55,070 --> 00:35:56,870 నేను శూన్య గత am ఉంటే, అక్కడ ఏమీ లేదు. 764 00:35:56,870 --> 00:35:59,230 నేను వాటిని అలాగే కేవలం గుడ్డిగా తప్పుడు తిరిగి అంటున్నారు. 765 00:35:59,230 --> 00:36:04,050 మీరు నాకు ఏమీ ఇవ్వాలని ఉంటే, నేను ఖచ్చితంగా కాదు ఎన్ని N. కనుగొనేందుకు వేరే సో వాట్ నేను వాటిని 766 00:36:04,050 --> 00:36:04,750 ఇప్పుడు తనిఖీ? 767 00:36:04,750 --> 00:36:12,830 నేను వేరే బాగా n ఉంటే చెప్పడానికి వెళుతున్నాను చెట్టు నోడ్ వద్ద సంసార కంటే తక్కువ 768 00:36:12,830 --> 00:36:16,300 నేను N విలువ అందజేశారు చేసిన. 769 00:36:16,300 --> 00:36:20,270 ఇతర మాటలలో, సంఖ్య నేను ఉన్నాను ఉంటే N, చూస్తుంది నోడ్ కంటే తక్కువగా ఉంటుంది 770 00:36:20,270 --> 00:36:21,340 నేను చూస్తున్నాను. 771 00:36:21,340 --> 00:36:23,190 మరియు నోడ్ నేను చూస్తున్నాను చెట్టు అని పిలుస్తారు వద్ద, 772 00:36:23,190 --> 00:36:26,370 మరియు మునుపటి ఉదాహరణ నుండి గుర్తు ఒక పాయింటర్ లో విలువ వద్ద పొందడానికి, 773 00:36:26,370 --> 00:36:28,310 నేను బాణం నోటేషన్ ను ఉపయోగిస్తాయి. 774 00:36:28,310 --> 00:36:35,960 N చెట్టు బాణం కంటే తక్కువ ఉంటే N, నేను సంభావితంగా ఎడమ వెళ్లాలనుకుంటే. 775 00:36:35,960 --> 00:36:38,590 నేను ఎలా ఎడమ శోధించడం వ్యక్తం అనుకుంటున్నారా? 776 00:36:38,590 --> 00:36:41,560 ఈ ఉంటే, స్పష్టమైన ఉండాలి ప్రశ్న లో చిత్రం, 777 00:36:41,560 --> 00:36:44,612 మరియు నేను ఆమోదించింది చేసిన ఎత్తైన ఆ డౌన్ గురిపెట్టి బాణం. 778 00:36:44,612 --> 00:36:45,570 ఆ నా చెట్టు పాయింటర్ ఉంది. 779 00:36:45,570 --> 00:36:48,060 నేను చెట్టు యొక్క రూట్ వద్ద గురిపెట్టి చేస్తున్నాను. 780 00:36:48,060 --> 00:36:52,100 మరియు నేను సే చూస్తున్నాను ఏకపక్ష సంఖ్యను 44. 781 00:36:52,100 --> 00:36:55,300 కంటే 44 తక్కువ లేదా స్పష్టంగా 55 కంటే ఎక్కువ? 782 00:36:55,300 --> 00:36:56,360 కనుక ఇది కంటే తక్కువగా. 783 00:36:56,360 --> 00:36:58,760 కాబట్టి ఈ పరిస్థితి ఉంటే వర్తిస్తుంది. 784 00:36:58,760 --> 00:37:03,981 అందువలన సంభావితంగా, నేను ఏమి అనుకుంటున్నారు నేను 44 చూస్తున్నాను ఉంటే తదుపరి అన్వేషణ? 785 00:37:03,981 --> 00:37:04,480 అవును? 786 00:37:04,480 --> 00:37:08,310 787 00:37:08,310 --> 00:37:11,100 >> సరిగ్గా, నేను కావలసిన ఎడమ బాల, అన్వేషణ 788 00:37:11,100 --> 00:37:12,789 లేదా ఈ చిత్రంలో ఎడమవైపు ఉప చెట్టు. 789 00:37:12,789 --> 00:37:14,830 నిజానికి, నాకు ద్వారా తెలియజేయండి డౌన్ ఇక్కడ చిత్రాన్ని 790 00:37:14,830 --> 00:37:17,770 కేవలం ఒక క్షణం, నుండి నేను ఈ గీతలు కాదు. 791 00:37:17,770 --> 00:37:21,150 నేను 55 వద్ద ఇక్కడ ప్రారంభించండి, మరియు ఉంటే నాకు తెలుసు ఆ విలువ 44 792 00:37:21,150 --> 00:37:23,180 ఉంది నేను చూస్తున్నాను ఎడమ, అది రకంగా 793 00:37:23,180 --> 00:37:26,010 లో ఫోన్ బుక్ చిరిగిపోవడానికి వంటి సగం లేదా సగం చెట్టు చిరిగిపోవడానికి. 794 00:37:26,010 --> 00:37:29,660 నేను ఇకపై పట్టించుకోనట్లు చెట్టు యొక్క ఈ మొత్తం సగం. 795 00:37:29,660 --> 00:37:33,270 మరియు ఇంకా, ఆసక్తికరంగా పరంగా నిర్మాణం, ఇక్కడ పైగా ఈ విషయం 796 00:37:33,270 --> 00:37:36,682 33 మొదలవుతుంది కూడా ఆ ఒక బైనరీ శోధన వృక్షం. 797 00:37:36,682 --> 00:37:39,890 నేను ఎందుకంటే ముందునుంచే ఈ పదం పునరావృత్తమయ్యే చెప్పారు నిజానికి ఈ డేటా నిర్మాణం అని 798 00:37:39,890 --> 00:37:41,707 నిర్వచనం ద్వారా పునరావృత ఉంది. 799 00:37:41,707 --> 00:37:44,540 మీరు ఈ ఒక చెట్టు కలిగి ఉండవచ్చు పెద్ద, కానీ దాని పిల్లలు ప్రతి ఒకటి 800 00:37:44,540 --> 00:37:46,870 చిన్న కొంచెం ఒక చెట్టు సూచిస్తుంది. 801 00:37:46,870 --> 00:37:50,910 దానికి యొక్క తాతను ఉండటం లేదా బామ్మగారు, ఇప్పుడు అది కేవలం తల్లి 802 00:37:50,910 --> 00:37:54,300 or-- నేను అమ్మ లేదు చెప్పడానికి కాదు లేదా తండ్రి ఆ అదృష్టము. 803 00:37:54,300 --> 00:37:59,000 అక్కడ బదులుగా ఇద్దరు పిల్లలు సోదరుడు మరియు తోబుట్టువులు మాదిరిగా అవుతుంది. 804 00:37:59,000 --> 00:38:01,120 కుటుంబం చెట్టు ఒక కొత్త తరం. 805 00:38:01,120 --> 00:38:02,900 కానీ నిర్మాణాత్మకంగా, ఒకే ఆలోచన. 806 00:38:02,900 --> 00:38:06,790 మరియు అది నేను ఒక ఫంక్షన్ కలిగి అవుతుంది ఇది నేను ఒక బైనరీ శోధన శోధించవచ్చు 807 00:38:06,790 --> 00:38:07,290 చెట్టు. 808 00:38:07,290 --> 00:38:08,680 ఇది శోధన అంటారు. 809 00:38:08,680 --> 00:38:17,870 నేను చెట్టు బాణం ఎడమ N కోసం అన్వేషణ N విలువ కంటే ఎక్కువ వేరే ఉంటే 810 00:38:17,870 --> 00:38:18,870 నేను ప్రస్తుతం అక్కడనే ఉన్నాను. 811 00:38:18,870 --> 00:38:20,800 ఒక క్షణం క్రితం కథ 55. 812 00:38:20,800 --> 00:38:23,780 నేను అనే చర్య శోధన నేను కేవలం చెయ్యవచ్చు 813 00:38:23,780 --> 00:38:29,660 N ఈ పాస్ మరియు పునరావృతంగా అన్వేషణ ఉప చెట్టు మరియు కేవలం తిరిగి 814 00:38:29,660 --> 00:38:30,620 సంసార సమాధానం. 815 00:38:30,620 --> 00:38:33,530 ఎల్స్ నేను ఇక్కడ కొన్ని తుది బేస్ కేసు పొందారు. 816 00:38:33,530 --> 00:38:35,310 >> చివరి కేస్ ఏమిటి? 817 00:38:35,310 --> 00:38:36,570 ట్రీ గాని NULL. 818 00:38:36,570 --> 00:38:39,980 నేను గాని చూస్తున్నాను విలువ కంటే ఇది కంటే తక్కువ లేదా ఎక్కువ 819 00:38:39,980 --> 00:38:42,610 లేదా దానికి సమానం. 820 00:38:42,610 --> 00:38:44,750 నేను సమాన చెప్పగల్గినవి సమాన, కానీ తార్కికంగా అంతే 821 00:38:44,750 --> 00:38:46,500 కేవలం ఇక్కడ else చెప్పడం సమానం. 822 00:38:46,500 --> 00:38:49,150 సో నిజమైన నేను ఏదో కనుగొనేందుకు ఎలా ఉంది. 823 00:38:49,150 --> 00:38:51,710 సో ఆశాజనక ఈ ఒక ఉంది మరింత బలవంతపు ఉదాహరణకు 824 00:38:51,710 --> 00:38:54,900 స్టుపిడ్ సిగ్మా ఫంక్షన్ కంటే మేము తిరిగి కొన్ని ఉపన్యాసాలు చేశాడు 825 00:38:54,900 --> 00:38:58,360 పేరు అది ఒక లూప్ ఉపయోగించడానికి కేవలం సులభం ఒకటి నుండి అన్ని సంఖ్యలు అప్ లెక్కించడానికి 826 00:38:58,360 --> 00:39:02,390 డేటా నిర్మాణం ఇక్కడ N. కు కూడా పునరావృతంగా అని 827 00:39:02,390 --> 00:39:07,050 మేము ఇప్పుడు నిర్వచించిన మరియు పునరావృతంగా డ్రా మమ్మల్ని వ్యక్తం సామర్థ్యం 828 00:39:07,050 --> 00:39:09,780 కోడ్ లో కూడా పునరావృత అని. 829 00:39:09,780 --> 00:39:12,580 కాబట్టి ఈ ఇక్కడ ఖచ్చితమైన కోడ్. 830 00:39:12,580 --> 00:39:14,400 >> కాబట్టి మేము ఏమి ఇతర సమస్యలు పరిష్కరించగల? 831 00:39:14,400 --> 00:39:18,160 దూరంగా నుండి సో శీఘ్ర అడుగు కేవలం ఒక క్షణం చెట్లు. 832 00:39:18,160 --> 00:39:20,130 ఇక్కడ ఉంది, జర్మన్ జెండా అంటున్నారు. 833 00:39:20,130 --> 00:39:22,020 మరియు స్పష్టంగా ఉంది ఒక ఈ జెండా నమూనా. 834 00:39:22,020 --> 00:39:23,811 మరియు ఎన్నో ఉన్నాయి ప్రపంచంలో జెండాలు ఆ 835 00:39:23,811 --> 00:39:27,560 పరంగా ఈ వంటి సాధారణ ఉంటాయి వారి రంగులు మరియు నమూనాలు. 836 00:39:27,560 --> 00:39:31,930 కానీ ఈ నిలువ ఉంటుంది ఊహించు .GIF, లేదా ఒక JPEG, లేదా బిట్మ్యాప్ లేదా ఒక పింగ్, 837 00:39:31,930 --> 00:39:34,240 ఏ గ్రాఫికల్ ఫైల్ ఫార్మాట్ ఇది మీకు, తెలిసిన 838 00:39:34,240 --> 00:39:36,460 మేము ఉన్నాము వీటిలో కొన్ని pset4 లో ఆడటం. 839 00:39:36,460 --> 00:39:41,550 ఈ నిల్వ విలువైనదే కనపడదు నలుపు పిక్సెల్, బ్లాక్ పిక్సెల్, బ్లాక్ పిక్సెల్, 840 00:39:41,550 --> 00:39:44,790 డాట్, డాట్, డాట్, ఒక మొత్తం బంచ్ మొదటి scanline నలుపు పిక్సెళ్ళు, 841 00:39:44,790 --> 00:39:47,430 లేదా వరుసగా, అప్పుడు ఒక మొత్తం బంచ్ అదే, అప్పుడు ఒక మొత్తం బంచ్ 842 00:39:47,430 --> 00:39:49,530 అప్పుడు అదే, మరియు Red పిక్సెళ్ళు యొక్క మొత్తం బంచ్, 843 00:39:49,530 --> 00:39:53,020 Red పిక్సెళ్ళు, ఎరుపు పిక్సెళ్ళు, అప్పుడు మొత్తం పసుపు పసుపు పిక్సెళ్ళు గుత్తిని, కుడి? 844 00:39:53,020 --> 00:39:55,050 >> ఇటువంటి అసమర్థతపై ఇక్కడ ఉంది. 845 00:39:55,050 --> 00:39:59,040 ఎలా అకారణంగా మీరు చేస్తాను జర్మన్ జెండా కుదించుము 846 00:39:59,040 --> 00:40:01,320 ఒక ఫైలు దానిని అమలు ఉంటే? 847 00:40:01,320 --> 00:40:04,940 సమాచారం ఇలా మేము కాదు క్రమంలో డిస్క్ నిల్వ ఇబ్బంది 848 00:40:04,940 --> 00:40:08,040 వంటి నుండి మా ఫైలు పరిమాణం తగ్గించడానికి ఒక కిలోబైట్, ఏదో ఒక మెగాబైట్ 849 00:40:08,040 --> 00:40:09,430 చిన్న? 850 00:40:09,430 --> 00:40:13,130 ఇందులో పునరుక్తి ఉంది ఇక్కడ స్పష్టంగా ఉండాలి? 851 00:40:13,130 --> 00:40:13,880 మీరు ఏమి చేయవచ్చు? 852 00:40:13,880 --> 00:40:14,380 అవును? 853 00:40:14,380 --> 00:40:21,380 854 00:40:21,380 --> 00:40:21,970 సరిగ్గా. 855 00:40:21,970 --> 00:40:24,550 ఎందుకు లేదు కాకుండా గుర్తు ప్రతి రంధ్రాన్ని సరి చేయు పిక్సెల్ యొక్క రంగు 856 00:40:24,550 --> 00:40:28,200 కేవలం మీరు pset4 లో చేస్తున్నా వంటి బిట్మ్యాప్ ఫైల్ ఫార్మాట్, 857 00:40:28,200 --> 00:40:32,060 ఎందుకు మీరు ప్రాతినిధ్యం లేదు ఉదాహరణకు పిక్సెళ్ళు ఎడమవైపున కాలమ్, 858 00:40:32,060 --> 00:40:35,370 నలుపు పిక్సెళ్ళు, కొంత కొంత ఎరుపు మరియు పసుపు యొక్క ఒక సమూహం, 859 00:40:35,370 --> 00:40:39,210 ఆపై కేవలం ఏదో ఎన్కోడ్ రిపీట్ యొక్క ఆలోచన ఈ 100 సార్లు 860 00:40:39,210 --> 00:40:41,020 లేదా ఈ 1,000 సార్లు పునరావృతం? 861 00:40:41,020 --> 00:40:43,430 ఎక్కడ 100 లేదా 1,000 కేవలం పూర్ణాంకం, కాబట్టి మీరు 862 00:40:43,430 --> 00:40:47,290 కేవలం ఒకే సంఖ్యలో దూరంగా పొందవచ్చు బదులుగా వందల లేదా వేల 863 00:40:47,290 --> 00:40:48,270 అదనపు పిక్సెళ్ళు. 864 00:40:48,270 --> 00:40:50,990 నిజానికి, ఆ మేము ఎలా వార్తలు జర్మన్ జెండా కుదించుము కాలేదు. 865 00:40:50,990 --> 00:40:51,490 మరియు 866 00:40:51,490 --> 00:40:53,470 ఫ్రెంచ్ జెండా గురించి ఇప్పుడు ఏమి? 867 00:40:53,470 --> 00:40:58,930 విధమైన మరియు కొద్దిగా మానసిక వ్యాయామం, ఇది జెండా 868 00:40:58,930 --> 00:41:01,040 డిస్క్లో ఎక్కువ సంపీడన? 869 00:41:01,040 --> 00:41:05,720 జర్మన్ జెండా లేదా ఫ్రెంచ్ జెండా, మేము ఆ పద్ధతిని ఉంటే? 870 00:41:05,720 --> 00:41:08,490 జర్మన్ జెండా ఉంది ఎందుకంటే మరింత సమాంతర పునరుక్తి. 871 00:41:08,490 --> 00:41:12,190 మరియు నమూనా ద్వారా, అనేక గ్రాఫికల్ ఫైల్ ఫార్మాట్లలో నిజానికి స్కాన్ పంక్తులు పని లేదు 872 00:41:12,190 --> 00:41:12,830 అడ్డంగా. 873 00:41:12,830 --> 00:41:14,674 వారు పని కాలేదు నిలువుగా, కేవలం మానవత్వం 874 00:41:14,674 --> 00:41:17,090 నిర్ణయించుకుంది సంవత్సరాల క్రితం మేము చేస్తాము సాధారణంగా విషయాలు వరుసగా అనుకుంటున్నారో 875 00:41:17,090 --> 00:41:18,880 కాలమ్ వరుసగా బదులుగా కాలమ్. 876 00:41:18,880 --> 00:41:20,820 కాబట్టి నిజంగా మీరు ఒకవేళ ఫైలు చూడండి 877 00:41:20,820 --> 00:41:24,670 ఒక జర్మన్ జెండా మరియు ఒక ఫ్రెంచ్ యొక్క పరిమాణం జెండా, చాలా కాలం స్పష్టత ఉంది 878 00:41:24,670 --> 00:41:27,530 అదే, అదే వెడల్పు మరియు ఎత్తు, ఈ ఒక 879 00:41:27,530 --> 00:41:31,580 ఇక్కడ పెద్ద అవతరిస్తుంది మీరు ఎందుకంటే మీరే మూడు సార్లు పునరావృతం ఉంటుంది. 880 00:41:31,580 --> 00:41:35,570 మీరు నీలం, పునః పేర్కొనాలి మీరే, తెలుపు, ఎరుపు మిమ్మల్ని మళ్ళీ 881 00:41:35,570 --> 00:41:36,740 మీ పునరావృతం. 882 00:41:36,740 --> 00:41:39,000 మీరు అన్ని వెళ్ళి కాదు కుడి మార్గం. 883 00:41:39,000 --> 00:41:41,200 మరియు జనాంతికంగా, చేయడానికి కుదింపు క్లియర్ 884 00:41:41,200 --> 00:41:43,910 ఇవి ఉంటే, ప్రతిచోటా ఉంది ఒక ఆర్జించింది వీడియో నుండి నాలుగు చట్రాలు మీరు 885 00:41:43,910 --> 00:41:45,890 ఒక సినిమా గుర్తుచేసుకున్నారు ఉండవచ్చు లేదా వీడియో సాధారణంగా ఉంది 886 00:41:45,890 --> 00:41:47,286 సెకనుకు 29 లేదా 30 ఫ్రేములు వంటి. 887 00:41:47,286 --> 00:41:50,410 ఇది కొద్దిగా ఫ్లిప్ బుక్ వంటిది పేరు మీరు కేవలం చిత్రం, చిత్రం, చిత్రం, చిత్రం చూడండి, 888 00:41:50,410 --> 00:41:54,410 చిత్రం కేవలం సూపర్ ఫాస్ట్ కాబట్టి ఇది కనిపిస్తోంది తెరపై నటులు తరలిస్తున్నారు. 889 00:41:54,410 --> 00:41:57,130 ఇక్కడ ఒక బంబుల్ బీ లో వార్తలు పువ్వుల ఒక బంచ్ పైన. 890 00:41:57,130 --> 00:41:59,790 మరియు అది రకమైన కావచ్చు అయితే మొదటి చూపులో చూడటానికి హార్డ్, 891 00:41:59,790 --> 00:42:04,020 కదిలే మాత్రమే విషయం ఈ చిత్రం బీ ఉంది. 892 00:42:04,020 --> 00:42:06,880 >> ఏం నిల్వ గురించి మూగ వీడియో కంప్రెస్డ్? 893 00:42:06,880 --> 00:42:11,420 ఇది వీడియో నిల్వ వేస్ట్ రకంగా నాలుగు దాదాపు ఒకేలా చిత్రాలు ఆ 894 00:42:11,420 --> 00:42:13,670 మాత్రమే వరకు బీ కౌంటీ వంటి విభిన్నమైన. 895 00:42:13,670 --> 00:42:16,280 మీరు తీసివేసినట్లు అతి ఆ సమాచారాన్ని 896 00:42:16,280 --> 00:42:20,190 మరియు మాత్రమే గుర్తు, ఉదాహరణకు, మొదటి ఫ్రేమ్ మరియు చివరి చట్రం, 897 00:42:20,190 --> 00:42:22,180 మీరు చేసిన ఉంటే కీ ఫ్రేములు ఎప్పుడూ పదం విన్న 898 00:42:22,180 --> 00:42:24,337 మరియు కేవలం నిల్వ తేనెటీగ ఉన్న మధ్య. 899 00:42:24,337 --> 00:42:26,170 మరియు మీరు కలిగి లేదు , గులాబీ అన్ని నిల్వ 900 00:42:26,170 --> 00:42:28,330 నీలం, మరియు మరియు ఆకుపచ్చ విలువలు అలాగే. 901 00:42:28,330 --> 00:42:31,200 కాబట్టి ఈ మాత్రమే అని చెప్పబడినది కుదింపు ప్రతిచోటా ఉంది. 902 00:42:31,200 --> 00:42:34,900 ఇది మేము తరచుగా ఉపయోగించే ఒక టెక్నిక్ వార్తలు ఈ రోజుల్లో మంజూరు కోసం లేదా పడుతుంది. 903 00:42:34,900 --> 00:42:38,750 >> కానీ ఎలా మీరు టెక్స్ట్ కుదించుము చెయ్యాలి? 904 00:42:38,750 --> 00:42:40,450 ఎలా మీరు టెక్స్ట్ కుదించేందుకు గురించి గో? 905 00:42:40,450 --> 00:42:45,410 Well, అక్షరాలు ప్రతి లో ASCII ఒక బైట్, లేదా ఎనిమిది బిట్స్ ఉంది. 906 00:42:45,410 --> 00:42:47,360 మరియు ఆ రకమైన మూగ, రైట్? 907 00:42:47,360 --> 00:42:51,160 మీరు బహుశా ఒక రకమైన ఎందుకంటే మరియు E మరియు నేను మరియు O మరియు U చాలా 908 00:42:51,160 --> 00:42:55,270 మరింత తరచుగా W లేదా Q లేదా Z వంటి కంటే, భాష ఆధారంగా దీనిలో 909 00:42:55,270 --> 00:42:56,610 మీరు ఖచ్చితంగా రాస్తున్నాం. 910 00:42:56,610 --> 00:42:59,600 కాబట్టి మనం ఉపయోగిస్తున్న ప్రతి అక్షరానికి ఎనిమిది బిట్స్ 911 00:42:59,600 --> 00:43:02,040 కనీసం సహా ప్రముఖ అక్షరాలు, కుడి? 912 00:43:02,040 --> 00:43:05,300 ఎందుకు తక్కువ బిట్స్ ఉపయోగించడానికి లేదు సూపర్ ప్రముఖ అక్షరాలు, 913 00:43:05,300 --> 00:43:07,760 E వంటి విషయాలు మీరు ఊహించడం మొదటి వీల్ ఆఫ్ ఫార్చూన్ లో, 914 00:43:07,760 --> 00:43:10,450 మరియు మరింత బిట్స్ ఉపయోగించడానికి తక్కువ ప్రజాదరణ అక్షరాలు? 915 00:43:10,450 --> 00:43:10,950 ఎందుకు? 916 00:43:10,950 --> 00:43:13,130 మేము కేవలం చూడాలని ఎందుకంటే తక్కువ తరచుగా వాటిని ఉపయోగించండి. 917 00:43:13,130 --> 00:43:15,838 >> సరే, అక్కడ ఆ అవుతుంది దీన్ని తయారు ప్రయత్నాలు. 918 00:43:15,838 --> 00:43:18,630 మరియు మీరు గ్రేడ్ నుండి గుర్తు ఉంటే పాఠశాల లేదా ఉన్నత పాఠశాల, మోర్స్ కోడ్. 919 00:43:18,630 --> 00:43:20,400 మోర్స్ కోడ్ చుక్కలు కలిగి మరియు వడివడిగా ఉండాలనే 920 00:43:20,400 --> 00:43:24,270 ఒక తీగ వంటి పాటు ప్రసరణ శబ్దాలు లేదా విధమైన సంకేతాలు. 921 00:43:24,270 --> 00:43:25,930 కానీ మోర్స్ కోడ్ సూపర్ శుభ్రంగా ఉంది. 922 00:43:25,930 --> 00:43:29,010 ఇది ఒక బైనరీ వ్యవస్థ రకంగా మీరు చుక్కలు లేదా వడివడిగా కలిగి. 923 00:43:29,010 --> 00:43:30,977 కానీ మీరు, ఉదాహరణకు, రెండు చుక్కలు చూడండి ఉంటే. 924 00:43:30,977 --> 00:43:33,810 లేదా మీరు ఆపరేటర్లు తిరిగి అనుకుంటే ఎవరు, బీప్, బీప్, బీప్ వంటి వెళ్తాడు 925 00:43:33,810 --> 00:43:36,760 బీప్, కొద్దిగా ట్రిగ్గర్ నొక్కిన ఒక సిగ్నల్ ప్రసారం, 926 00:43:36,760 --> 00:43:40,360 మీరు ఉంటే, గ్రహీత, రెండు అందుకుంటుంది చుక్కలు, ఏ సందేశం మీరు అందుకున్న? 927 00:43:40,360 --> 00:43:43,490 పూర్తిగా ఏకపక్షంగా. 928 00:43:43,490 --> 00:43:44,450 >> నేను? 929 00:43:44,450 --> 00:43:45,060 నేను? 930 00:43:45,060 --> 00:43:47,500 లేదా ఏ గురించి లేదా నేను? 931 00:43:47,500 --> 00:43:49,570 బహుశా అది కేవలం రెండు E యొక్క సరైన? 932 00:43:49,570 --> 00:43:52,480 కాబట్టి ఈ సమస్య ఉంది మోర్స్ తో decodability యొక్క 933 00:43:52,480 --> 00:43:54,890 కోడ్, అనగా తప్ప మీరు సందేశాన్ని పంపడం వ్యక్తి 934 00:43:54,890 --> 00:43:59,510 నిజానికి కాబట్టి మీరు క్రమం చేయవచ్చు అంతరాయాల చూడండి లేదా అక్షరాల మధ్య ఖాళీలు వినడానికి, 935 00:43:59,510 --> 00:44:02,990 అది కేవలం తగినంత కాదు సున్నాలు మరియు వాటిని ఒక ప్రవాహం పంపండి, 936 00:44:02,990 --> 00:44:05,610 లేదా చుక్కలు మరియు డాష్లు సందిగ్ధత ఉంది ఎందుకంటే. 937 00:44:05,610 --> 00:44:08,640 E ను ఒక డాట్, కాబట్టి మీరు ఉంటే రెండు చుక్కలు చూడండి లేదా రెండు చుక్కలు వినడానికి, 938 00:44:08,640 --> 00:44:11,254 దీనికి రెండు E యొక్క వార్తలు లేదా ఉండవచ్చు అది ఒక I. వార్తలు 939 00:44:11,254 --> 00:44:13,670 కాబట్టి మేము ఒక అని ఒక వ్యవస్థ అవసరం కంటే ఎక్కువ తెలివైన చిన్న. 940 00:44:13,670 --> 00:44:16,851 ఒక మనిషి అనే హఫ్ఫ్మన్ సంవత్సరాల క్రితం సరిగ్గా ఈ ముందుకు వచ్చారు. 941 00:44:16,851 --> 00:44:18,600 కాబట్టి మేము కేవలం చూడాలని ఒక్కసారి తీసుకోవాలని 942 00:44:18,600 --> 00:44:20,114 ఎలా ఈ చెట్లు కు సంబంధించి ఉంటాయి. 943 00:44:20,114 --> 00:44:22,530 ఈ కొన్ని అని అనుకుందాం మీరు పంపాలని తెలివితక్కువదని సందేశాన్ని 944 00:44:22,530 --> 00:44:26,342 కేవలం A, B కూడి, C యొక్క డి లు మరియు E యొక్క, కానీ పునరుక్తి చాలా ఇక్కడ ఉంది. 945 00:44:26,342 --> 00:44:27,550 ఆంగ్ల అని అర్థం కాదు. 946 00:44:27,550 --> 00:44:28,341 ఇది ఎన్క్రిప్ట్ చేయబడలేదు. 947 00:44:28,341 --> 00:44:30,540 ఇది కేవలం ఒక పెద్ద సందేశం పునరుక్తం మా తో. 948 00:44:30,540 --> 00:44:34,010 మీరు నిజంగా కౌంట్ మీ అవుట్ చేస్తే అన్ని A యొక్క, B యొక్క, C యొక్క, డి లు, మరియు E యొక్క, ఇక్కడ 949 00:44:34,010 --> 00:44:34,890 ఫ్రీక్వెన్సీ. 950 00:44:34,890 --> 00:44:37,800 అక్షరాల 20% A యొక్క, అక్షరాల 45% 951 00:44:37,800 --> 00:44:39,660 E యొక్క, మరియు మూడు ఇతర పౌనఃపున్యాలు. 952 00:44:39,660 --> 00:44:41,960 మేము మాన్యువల్గా అక్కడ అప్ లెక్కిస్తారు మరియు కేవలం గణిత చేశాడు. 953 00:44:41,960 --> 00:44:44,579 >> కాబట్టి ఆ అవుతుంది హఫ్ఫ్మన్, కొంతకాలం క్రితం, 954 00:44:44,579 --> 00:44:46,620 మీకు తెలిసిన, గ్రహించారు ఏమి, నేను భవనం ప్రారంభం ఉంటే 955 00:44:46,620 --> 00:44:51,172 ఒక చెట్టు, లేదా చెట్ల అడవి, మీరు రెడీ ఉంటే, క్రింది విధంగా, నేను క్రింది చేయవచ్చు. 956 00:44:51,172 --> 00:44:53,880 నేను ప్రతి ఒక నోడ్ ఇవ్వాలని వెళుతున్న నేను పట్టించుకోనట్లు ఆ అక్షరాల 957 00:44:53,880 --> 00:44:55,530 మరియు నేను నిల్వ వెళుతున్న ఆ నోడ్ లోపల 958 00:44:55,530 --> 00:44:58,610 ఒక ఫ్లోటింగ్ పాయింట్ వంటి పౌనఃపున్యాల విలువ, లేదా మీరు, చాలా, ఒక N దీనిని వాడవచ్చు 959 00:44:58,610 --> 00:45:00,210 కానీ మేము కేవలం ఇక్కడ ఒక ఫ్లోట్ ఉపయోగిస్తాము. 960 00:45:00,210 --> 00:45:03,100 మరియు అల్గోరిథం అతను మీరు ప్రతిపాదించాయి 961 00:45:03,100 --> 00:45:07,210 ఒకే నోడ్ యొక్క ఈ అటవీ తీసుకుని చెట్లు, కాబట్టి చిన్న సూపర్ చెట్లు, 962 00:45:07,210 --> 00:45:11,920 మరియు మీరు వాటిని కలిపే మొదలు కొత్త సమూహాలు, కొత్త తల్లిదండ్రులు, మీరు రెడీ ఉంటే. 963 00:45:11,920 --> 00:45:16,150 మరియు మీరు ఎంచుకోవడం ద్వారా దీన్ని ఒక సమయంలో రెండు చిన్న పౌనఃపున్యాల. 964 00:45:16,150 --> 00:45:18,110 కాబట్టి నేను 10% మరియు 10% పట్టింది. 965 00:45:18,110 --> 00:45:19,090 నేను ఒక కొత్త నోడ్ సృష్టించడానికి. 966 00:45:19,090 --> 00:45:20,910 మరియు నేను కొత్త నోడ్ 20% కాల్. 967 00:45:20,910 --> 00:45:22,750 >> ఏ రెండు నోడ్స్ నేను తదుపరి మిళితం? 968 00:45:22,750 --> 00:45:23,810 ఇది ఒక చిన్న అస్పష్ట ఉంది. 969 00:45:23,810 --> 00:45:26,643 కాబట్టి కొన్ని సందర్భాలలో మూలలో ఉంది పరిగణలోకి, కానీ అందంగా విషయాలు ఉంచడానికి, 970 00:45:26,643 --> 00:45:29,300 నేను 20% ఎంచుకోండి వెళుతున్న - నేను ఇప్పుడు పిల్లలు పట్టించుకోకుండా. 971 00:45:29,300 --> 00:45:33,640 నేను 20% ఎంచుకోండి వెళుతున్న మరియు 15% మరియు రెండు కొత్త అంచులు డ్రా. 972 00:45:33,640 --> 00:45:35,624 ఇప్పుడు ఇది రెండు నోడ్స్ నేను తార్కికంగా మిళితం లేదు? 973 00:45:35,624 --> 00:45:38,540 అన్ని పిల్లలు, అన్ని విస్మరించు మునుమనవళ్లను, కేవలం మూలాలు చూడండి 974 00:45:38,540 --> 00:45:39,070 ఇప్పుడు. 975 00:45:39,070 --> 00:45:42,220 ఏ రెండు నోడ్స్ నేను కలిసి టై చెయ్యాలి? 976 00:45:42,220 --> 00:45:44,530 పాయింట్ రెండు, 0.35. 977 00:45:44,530 --> 00:45:45,890 కాబట్టి నాకు రెండు కొత్త అంచులు డ్రా తెలియజేయండి. 978 00:45:45,890 --> 00:45:47,570 ఆపై నేను కేవలం ఒక ఎడమ పొందారు. 979 00:45:47,570 --> 00:45:48,650 కాబట్టి ఇక్కడ ఒక చెట్టు. 980 00:45:48,650 --> 00:45:51,160 మరియు అది ఉద్దేశపూర్వకంగా డ్రా అయిన రకమైన అందంగా చూడండి, 981 00:45:51,160 --> 00:45:55,870 కానీ అంచులు కలిగి గమనించవచ్చు కూడా సున్నా మరియు ఒకటి లేబుల్ చేయబడ్డాయి. 982 00:45:55,870 --> 00:45:59,510 కాబట్టి ఎడమ అంచులు అన్ని సున్నా ఏకపక్ష, కానీ నిలకడగా. 983 00:45:59,510 --> 00:46:01,170 అన్ని కుడి అంచుల కావలి. 984 00:46:01,170 --> 00:46:05,070 >> కాబట్టి హాఫ్మన్, ప్రతిపాదించాయి ఏమి మీరు ఒక B ప్రాతినిధ్యం అనుకుంటే, 985 00:46:05,070 --> 00:46:10,080 సంఖ్య 66 ప్రాతినిధ్యం కాకుండా ఎనిమిది మొత్తం బిట్స్ ఇది ఒక ASCII, 986 00:46:10,080 --> 00:46:13,360 మీరు ఏమి, కేవలం స్టోర్ తెలుసు నమూనా సున్నా సున్నా, సున్నా, 987 00:46:13,360 --> 00:46:17,030 సున్నా మార్గం, ఎందుకంటే నా చెట్టు నుండి, మిస్టర్ హఫ్ఫ్మన్ చెట్టు, 988 00:46:17,030 --> 00:46:18,600 మూలం నుంచి ఆకు. 989 00:46:18,600 --> 00:46:20,970 మీరు ఒక నిల్వ చేయాలనుకుంటే E, దీనికి విరుద్ధంగా, లేదు 990 00:46:20,970 --> 00:46:26,290 ఒక E. ప్రాతినిధ్యం ఎనిమిది బిట్స్ పంపడానికి బదులుగా, బిట్స్ ఏ నమూనా పంపాలనుకుంటున్నారా? 991 00:46:26,290 --> 00:46:26,890 వన్. 992 00:46:26,890 --> 00:46:30,410 మరియు ఈ గురించి nice ఏది ఇ అత్యంత ప్రాచుర్యం అక్షరం, 993 00:46:30,410 --> 00:46:32,340 మీరు ఉపయోగిస్తున్నట్లయితే ఇది చిన్నదైన కోడ్. 994 00:46:32,340 --> 00:46:34,090 తదుపరి అత్యంత ప్రాచుర్యం లేఖ కనిపిస్తోంది 995 00:46:34,090 --> 00:46:37,380 A. ఉంది కాబట్టి ఎన్ని బిట్స్ అతను ఆ కోసం ఉపయోగించి ప్రపోజ్ చేయలేదు? 996 00:46:37,380 --> 00:46:38,270 జీరో, ఒకటి. 997 00:46:38,270 --> 00:46:41,060 >> మరియు అది అమలు ఎందుకంటే ఈ చెట్టు గా, ఇప్పుడు కోసం 998 00:46:41,060 --> 00:46:43,350 నాకు ఉంది నియమములు వీలు మోర్స్ వంటి ఏ సందిగ్ధత 999 00:46:43,350 --> 00:46:46,090 కోడ్ యొక్క అన్ని ఎందుకంటే మీరు పట్టించుకోనట్లు అక్షరాలు 1000 00:46:46,090 --> 00:46:48,780 ఈ అంచులు ముగింపు వద్ద ఉన్నాయి. 1001 00:46:48,780 --> 00:46:50,580 కాబట్టి కేవలం ఒకటి ఒక చెట్టు యొక్క అప్లికేషన్. 1002 00:46:50,580 --> 00:46:52,538 ఈ is-- మరియు నేను దుర్చాల్సిన చేస్తాము ఈ నా చేతి ఎలా మీరు 1003 00:46:52,538 --> 00:46:55,570 ఒక సి నిర్మాణం ఈ అమలు ఉండవచ్చు. 1004 00:46:55,570 --> 00:46:58,260 మేము కేవలం మిళితం అవసరం ఒక గుర్తు, చార్ వంటి 1005 00:46:58,260 --> 00:46:59,910 మరియు పౌనఃపున్య ఎడమ మరియు కుడి. 1006 00:46:59,910 --> 00:47:02,510 కానీ యొక్క రెండు చూద్దాం చివరి ఉదాహరణలు మీరు చేస్తాము 1007 00:47:02,510 --> 00:47:06,070 తర్వాత చాలా బాగా సమస్య క్విజ్ సున్నా ఐదు సెట్. 1008 00:47:06,070 --> 00:47:09,210 >> కాబట్టి డేటా నిర్మాణం ఉంది ఒక హాష్ పట్టిక అని పిలుస్తారు. 1009 00:47:09,210 --> 00:47:12,247 మరియు ఒక హాష్ పట్టిక రకమైన ఉంది ఇది బకెట్లు కలిగి ఉంటుంది చల్లబరుస్తుంది. 1010 00:47:12,247 --> 00:47:14,830 మరియు నాలుగు బకెట్లు ఉంది అనుకుందాం ఇక్కడ, కేవలం నాలుగు ఖాళీ ప్రదేశాలు. 1011 00:47:14,830 --> 00:47:20,830 ఇక్కడ ఉంటుంది పేకాటలో, మరియు క్లబ్, చేతిపార, క్లబ్, వజ్రాలు, క్లబ్, 1012 00:47:20,830 --> 00:47:25,960 వజ్రాలు, క్లబ్, వజ్రాలు, clubs-- కాబట్టి ఈ యాదృచ్ఛిక ఉంది. 1013 00:47:25,960 --> 00:47:30,330 హార్ట్స్, hearts-- నేను ఉన్నాను ఇక్కడ ఇన్పుట్లను అన్ని bucketizing. 1014 00:47:30,330 --> 00:47:32,430 మరియు ఒక హాష్ పట్టిక అవసరాలకు మీ ఇన్పుట్ చూడండి, 1015 00:47:32,430 --> 00:47:34,850 ఆపై ఒక నిర్దిష్ట అది చాలు మీరు చూసే ఆధారంగా ఉంచండి. 1016 00:47:34,850 --> 00:47:35,600 ఇది ఒక అల్గోరిథం యొక్క. 1017 00:47:35,600 --> 00:47:37,980 నేను ఒక సూపర్ వాడుకుంటున్నారని సాధారణ దృశ్యమాన అల్గోరిథం. 1018 00:47:37,980 --> 00:47:40,030 ఇది కష్టతరమైన భాగం చిత్రాలు ఉన్నాయి ఏమి గుర్తు. 1019 00:47:40,030 --> 00:47:41,590 ఆపై మొత్తం నాలుగు విషయాలు ఉంది. 1020 00:47:41,590 --> 00:47:45,440 >> ఇప్పుడు స్టాక్లు పెరుగుతున్న ఇక్కడ ఒక సమాలోచన డిజైన్ విషయం. 1021 00:47:45,440 --> 00:47:46,540 కానీ నేను వేరే ఏమి ఉండవచ్చు? 1022 00:47:46,540 --> 00:47:49,080 కాబట్టి నిజంగా ఇక్కడ మేము ఒక పాత పాఠశాల పరీక్ష పుస్తకాల సమూహం. 1023 00:47:49,080 --> 00:47:51,240 ఒక సమూహం అని అనుకుందాం విద్యార్థులు పేర్లు ఇక్కడ ఉన్నాయి. 1024 00:47:51,240 --> 00:47:52,570 ఇక్కడ ఒక పెద్ద హాష్ పట్టిక ఉంది. 1025 00:47:52,570 --> 00:47:54,867 బదులుగా నాలుగు బకెట్లు, నేను 26 చెప్పండి లెట్. 1026 00:47:54,867 --> 00:47:57,950 మరియు మేము 26 ఋణం వెళ్లాలనుకుంటే లేదు అవుట్సైడ్ [నుండి విషయాలు? Annenberg?], కాబట్టి 1027 00:47:57,950 --> 00:48:00,289 ఇక్కడ ప్రాతినిధ్యం ఐదు వార్తలు ఒక Z. ద్వారా మరియు నేను ఉంటే 1028 00:48:00,289 --> 00:48:03,580 దీని పేరు ఒక మొదలవుతుంది ఒక విద్యార్థి చూడండి నేను అక్కడ అతని లేదా ఆమె క్విజ్ ఉంచారు వెళుతున్న. 1029 00:48:03,580 --> 00:48:08,850 ఎవరైనా సి మొదలవుతుంది ఉంటే, అక్కడ పైగా, ఫంక్షన్ నిజానికి, అలా కోరుకోలేదు. 1030 00:48:08,850 --> 00:48:10,060 B ఇక్కడ పైగా వెళుతుంది. 1031 00:48:10,060 --> 00:48:13,390 నేను పొందాను A మరియు B మరియు C. మరియు ఇప్పుడు ఇక్కడ మరొక విద్యార్ధి యొక్క. 1032 00:48:13,390 --> 00:48:16,212 కానీ ఈ హాష్ పట్టిక ఉంటే వ్యూహం తో అమలు, 1033 00:48:16,212 --> 00:48:17,920 నేను రకమైన చిత్తు చేశాడు చేస్తున్నాను ఈ సమయంలో, కుడి? 1034 00:48:17,920 --> 00:48:19,510 నేను రకమైన ఈ ఎక్కడో ఉంచాలి. 1035 00:48:19,510 --> 00:48:24,380 >> కాబట్టి నేను ఈ పరిష్కరించేందుకు ఒక మార్గం అన్ని ఉంది కుడి, ఒక C బిజీగా ఉంది, B బిజీగా ఉంది, బిజీగా ఉంది. 1036 00:48:24,380 --> 00:48:28,880 నేను వద్ద కనుక D. అతడిని వెళుతున్న మొదటి, నేను యాదృచ్ఛిక తక్షణ యాక్సెస్ 1037 00:48:28,880 --> 00:48:31,064 విద్యార్థులకు బకెట్లు ప్రతి. 1038 00:48:31,064 --> 00:48:33,230 కానీ ఇప్పుడు అది రకమైన సంక్రమణ యొక్క ఏదో సరళ లోకి, 1039 00:48:33,230 --> 00:48:36,750 నేను ఒకరి కోసం అన్వేషణ అనుకుంటే ఎందుకంటే దీని పేరు ఒక మొదలవుతుంది, నేను ఇక్కడ తనిఖీ. 1040 00:48:36,750 --> 00:48:38,854 కానీ ఈ ఒక కాదు ఉంటే నేను చూస్తున్నాను విద్యార్థి, 1041 00:48:38,854 --> 00:48:41,520 నేను రకమైన తనిఖీ ప్రారంభించడానికి కలిగి బక్కెట్లు, నేను ఏమి ఎందుకంటే 1042 00:48:41,520 --> 00:48:44,530 యొక్క సరళంగా విధమైన ఉంది డేటా నిర్మాణం అన్వేషిస్తాయి. 1043 00:48:44,530 --> 00:48:47,710 కేవలం చూడండి చెప్పడం ఒక పెద్ద మార్గం మొదటి అందుబాటులో ప్రారంభ కోసం, 1044 00:48:47,710 --> 00:48:51,850 మరియు, మాట్లాడటానికి, ఒక ప్లాన్ బి వలె ఉంచాలి లేదా ఈ సందర్భంలో ప్రణాళిక D, విలువ 1045 00:48:51,850 --> 00:48:53,340 బదులుగా ఆ ప్రదేశంలో జరగలేదు. 1046 00:48:53,340 --> 00:48:56,470 ఈ మీరు చేసిన ఉంటే కేవలం ఉంది 26 స్థానాలు మరియు అన్ని విద్యార్థులు వచ్చింది 1047 00:48:56,470 --> 00:49:00,600 పేరు Q లేదా Z, లేదా ఏదో వంటి ఆ, కనీసం మీరు స్థలం ఉపయోగించి చేస్తున్నారు. 1048 00:49:00,600 --> 00:49:03,140 >> కానీ మేము ఇప్పటికే మరింత చూసిన ఇక్కడ తెలివైన పరిష్కారాలను, కుడి? 1049 00:49:03,140 --> 00:49:04,870 మీరు బదులుగా ఏం చేస్తారు మీరు ఢీకొన్న కలిగి ఉంటే? 1050 00:49:04,870 --> 00:49:06,670 రెండు ప్రజలు ఉంటే A పేరు, ఏమైంది 1051 00:49:06,670 --> 00:49:09,160 ఒక తెలివిగా లేదా ఎక్కువ ఉండేవి కేవలం కంటే స్పష్టమైన పరిష్కారం 1052 00:49:09,160 --> 00:49:12,840 D భావించబడేది పేరు ఒక పెట్టటం? 1053 00:49:12,840 --> 00:49:14,810 నేను కేవలం వెళ్లరు అవుట్సైడ్ [? Annenberg?], 1054 00:49:14,810 --> 00:49:19,960 malloc, మరొక నోడ్ వంటి, అది చాలు ఇక్కడ, మరియు ఇక్కడ ఒక విద్యార్థి ఉంచారు. 1055 00:49:19,960 --> 00:49:22,120 నేను తప్పనిసరిగా కలిగి తద్వారా వ్యూహం యొక్క కొన్ని రకం, 1056 00:49:22,120 --> 00:49:25,590 లేదా మేము ఉన్నాము వంటి బహుశా మరింత అందంగా ఒక లింక్ జాబితా చూడటానికి మొదలు. 1057 00:49:25,590 --> 00:49:29,520 >> కాబట్టి ఒక హాష్ పట్టిక నిర్మాణం కేవలం ఈ వంటి కనిపించాలి 1058 00:49:29,520 --> 00:49:33,900 కానీ మరింత తెలివిగా, మీరు ఏదో అని ప్రత్యేక కూర్పికం, అనగా ఒక హాష్ పట్టిక 1059 00:49:33,900 --> 00:49:38,340 చాలా సరళంగా వ్యూహం యొక్క ప్రతి, ఉంది దీని అంశాలు ఒక సంఖ్య కాదు, 1060 00:49:38,340 --> 00:49:40,470 ఒక లింక్ జాబితా కూడా ఉంది. 1061 00:49:40,470 --> 00:49:45,080 మీరు సూపర్ ఫాస్ట్ యాక్సెస్ పొందడానికి తద్వారా ఎక్కడ మీ విలువ హాష్ నిర్ణయించింది. 1062 00:49:45,080 --> 00:49:48,059 మచ్ కార్డులు ఉదాహరణకు లాగే, నేను సూపర్ శీఘ్ర నిర్ణయాలు తీసుకున్నాడు. 1063 00:49:48,059 --> 00:49:49,600 హార్ట్స్ వజ్రాలు ఇక్కడ వెళ్ళిపోతుంది, ఇక్కడ వెళ్తాడు. 1064 00:49:49,600 --> 00:49:52,180 ఇక్కడ అదే, ఇక్కడ వెళ్తాడు, D B ఇక్కడ వెళ్తాడు, ఇక్కడ వెళ్తాడు. 1065 00:49:52,180 --> 00:49:55,740 కాబట్టి సూపర్ ఫాస్ట్ లుక్-అప్స్, మరియు ఉంటే మీరు ఒక సందర్భంలో లోకి అమలు జరిగే 1066 00:49:55,740 --> 00:49:59,429 ఇక్కడ మీరు పొందారు ప్రమాదాలలో, రెండు అదే పేరుతో ప్రజలు, బాగా అప్పుడు 1067 00:49:59,429 --> 00:50:00,970 మీరు వాటిని కలిసి లింకింగ్ మొదలు. 1068 00:50:00,970 --> 00:50:03,900 మరియు ఉండవచ్చు మీరు వాటిని క్రమబద్ధీకరించబడింది ఉంచడానికి అక్షర, బహుశా మీరు లేదు. 1069 00:50:03,900 --> 00:50:05,900 కానీ కనీసం ఇప్పుడు మేము చైతన్యానికి కలిగి. 1070 00:50:05,900 --> 00:50:10,250 కాబట్టి ఒక వైపు మేము సూపర్ ఫాస్ట్ కలిగి స్థిరంగా సమయం మరియు లీనియర్ సమయం రకమైన 1071 00:50:10,250 --> 00:50:14,110 ఈ అనుసంధాన జాబితాలు ఉంటే చేరి కొద్దిగా పొడవుగా పొందడానికి ప్రారంభించండి. 1072 00:50:14,110 --> 00:50:16,880 >> సో ఒక వెర్రి యొక్క ఈ రకమైన, క్రితం అసాధారణ ప్రవర్తన కలిగిన జోక్ సంవత్సరాల. 1073 00:50:16,880 --> 00:50:19,590 CS50 హాక్-a- థోన్ వద్ద, విద్యార్థులు తనిఖీ చేసినప్పుడు, 1074 00:50:19,590 --> 00:50:22,040 కొన్ని TF లేదా CA ప్రతి సంవత్సరం అది భావించిన ఇవ్వడానికి ఫన్నీ వార్తలు 1075 00:50:22,040 --> 00:50:27,772 ఈ వంటి ఒక గుర్తు ఉన్న అది కేవలం మీ పేరు ఒక A మొదలవుతుంది ఉంటే అర్థం, 1076 00:50:27,772 --> 00:50:28,870 ఈ విధంగా వెళ్ళండి. 1077 00:50:28,870 --> 00:50:31,110 మీ పేరు మొదలవుతుంది ఉంటే ఒక B, దీన్ని సరే వెళ్ళి, 1078 00:50:31,110 --> 00:50:33,290 అది బహుశా తరువాత సెమిస్టర్ లో ఫన్నీ వార్తలు. 1079 00:50:33,290 --> 00:50:36,420 కానీ మరొక ఉంది చాలా, ఈ చేయడం యొక్క మార్గం. 1080 00:50:36,420 --> 00:50:37,410 ఆ తిరిగి రండి. 1081 00:50:37,410 --> 00:50:38,600 >> కాబట్టి ఈ నిర్మాణం. 1082 00:50:38,600 --> 00:50:40,420 ఈ మా చివరి ఉంది నేడు నిర్మాణం, 1083 00:50:40,420 --> 00:50:42,400 ఒక trie అని ఏదో ఉంది. 1084 00:50:42,400 --> 00:50:47,140 కొన్ని కారణాల వలన చిన్న ఇది T-R-ఐ-E, తిరిగి, కానీ అది trie అని. 1085 00:50:47,140 --> 00:50:51,389 కాబట్టి ఒక trie మరొక ఆసక్తికరమైన ఉంది ఈ ఆలోచనలు చాలా మిశ్రమానికి. 1086 00:50:51,389 --> 00:50:52,930 ఇది మేము ముందు చూసిన ఇది ఒక చెట్టు, వార్తలు. 1087 00:50:52,930 --> 00:50:54,180 అది ఒక బైనరీ శోధన చెట్టు కాదు. 1088 00:50:54,180 --> 00:50:58,410 ఇది పిల్లలు ఏ సంఖ్యలో ఒక చెట్టు కానీ ఒక trie లో పిల్లలు ప్రతి 1089 00:50:58,410 --> 00:51:00,090 ఒక శ్రేణి. 1090 00:51:00,090 --> 00:51:04,790 పరిమాణం యొక్క ఒక అమరిక, 26 లేదా ఉండవచ్చు 27 సే మీరు మిశ్రమ పేర్లు మద్దతు అనుకుంటే 1091 00:51:04,790 --> 00:51:06,790 లేక ప్రజల పేర్లు సంగ్రహంగా రాయడానికి. 1092 00:51:06,790 --> 00:51:08,280 >> కాబట్టి ఈ ఒక డేటా నిర్మాణం. 1093 00:51:08,280 --> 00:51:10,290 మరియు మీరు ఎగువ నుండి చూస్తే దిగువ, ఇష్టం ఉంటే 1094 00:51:10,290 --> 00:51:13,710 , అక్కడ టాప్ నోడ్, M చూడండి అక్కడ ఎడమవైపున విషయం గురిపెట్టి, 1095 00:51:13,710 --> 00:51:17,665 ఇది అప్పుడు A, X, W, E, L, L. ఈ ఉంది కేవలం ఒక డేటా నిర్మాణం ఏకపక్ష 1096 00:51:17,665 --> 00:51:19,120 ప్రజల పేర్లు నిల్వ ఉంది. 1097 00:51:19,120 --> 00:51:25,720 మరియు మాక్స్వెల్ కేవలం క్రింది నిల్వ చేయబడితే శ్రేణి అమరిక శ్రేణి యొక్క ఒక మార్గం. 1098 00:51:25,720 --> 00:51:30,050 ఒక trie గురించి కానీ అద్భుతమైన ఏమిటి ఆ లింక్ జాబితా అయితే మరియు కూడా 1099 00:51:30,050 --> 00:51:34,520 వ్యూహం మనం సంపాదించిన చేసిన ఉత్తమ ఉంది సరళ సమయం లేదా సంవర్గమాన సమయం చూస్తున్న 1100 00:51:34,520 --> 00:51:35,600 ఎవరినో. 1101 00:51:35,600 --> 00:51:40,530 ఒక trie ఈ డేటాను నిర్మాణం, ఉంటే నా డేటా నిర్మాణం అది లో ఒక పేరు ఉంది 1102 00:51:40,530 --> 00:51:43,720 మరియు నేను మాక్స్వెల్ చూస్తున్నాను, నేను రెడీ అందంగా త్వరగా అతనిని కనుగొనేందుకు వెళుతున్న. 1103 00:51:43,720 --> 00:51:47,910 నేను కేవలం M-A-X-W-E-L-L చూడండి. ఉంటే ఈ డేటా నిర్మాణం, దీనికి విరుద్ధంగా, 1104 00:51:47,910 --> 00:51:51,830 ఒక ఉంది ఉంటే N, ఒక మిలియన్ ఉంటే ఈ డేటాను నిర్మాణంలో మిలియన్ పేర్లు, 1105 00:51:51,830 --> 00:51:57,100 మాక్స్వెల్ ఇప్పటికీ అవతరిస్తుంది గుర్తించగల కేవలం M-A-X-W-E-L-L తర్వాత 1106 00:51:57,100 --> 00:51:58,090 దశలను. 1107 00:51:58,090 --> 00:52:01,276 మరియు డేవిడ్ D-A-V-ఐ-D దశలను. 1108 00:52:01,276 --> 00:52:03,400 ఇతర మాటలలో, నిర్మించడం ద్వారా ఒక డేటా నిర్మాణం 1109 00:52:03,400 --> 00:52:07,240 వచ్చింది ఈ శ్రేణుల యొక్క అన్ని, ఇవన్నీ తమను రాండమ్ యాక్సెస్ మద్దతు 1110 00:52:07,240 --> 00:52:11,090 నేను ప్రజల చూసేటప్పుడు ప్రారంభించవచ్చు ఆ సమయం మొత్తాన్ని ఉపయోగించి పేరు 1111 00:52:11,090 --> 00:52:14,340 సంఖ్య నిష్పత్తిలో డేటా నిర్మాణంలో విషయాలు, 1112 00:52:14,340 --> 00:52:16,330 వంటి మిలియన్ ఇప్పటికే పేర్లు. 1113 00:52:16,330 --> 00:52:20,135 దానిని కనుగొనేందుకు నాకు సమయం మొత్తం M-A-X-W-E-L-L ఈ డేటాను నిర్మాణంలో ఉంది 1114 00:52:20,135 --> 00:52:22,260 దామాషా లేదు డేటా నిర్మాణం యొక్క పరిమాణం, 1115 00:52:22,260 --> 00:52:25,930 కానీ పేరు పొడవుకి. 1116 00:52:25,930 --> 00:52:28,440 మరియు వాస్తవికంగా పేర్లు మేము అప్ చూస్తున్నారా 1117 00:52:28,440 --> 00:52:29,970 పొడవైన ఎప్పుడూ వెర్రి వెళ్తున్నారు. 1118 00:52:29,970 --> 00:52:32,600 బహుశా ఎవరైనా ఒక 10 పాత్ర ఉంది 20 పాత్ర పేరు పేరు. 1119 00:52:32,600 --> 00:52:33,900 ఇది కుడి, ఖచ్చితంగా పరిమిత వార్తలు? 1120 00:52:33,900 --> 00:52:37,110 భూమిపై మానవ ఉంది ఎవరు సాధ్యమైనంత పొడవైన పేరు ఉంది, 1121 00:52:37,110 --> 00:52:39,920 కానీ ఆ పేరు ఒక స్థిరాంకం విలువ పొడవు, కుడి? 1122 00:52:39,920 --> 00:52:41,980 ఇది ఏ కోణంలో ఉంటుంది లేదు. 1123 00:52:41,980 --> 00:52:45,090 కాబట్టి ఈ విధంగా, మేము చేసిన డేటా నిర్మాణం సాధించింది 1124 00:52:45,090 --> 00:52:47,800 స్థిరమైన సమయంలో లుక్ అప్ ఉంది. 1125 00:52:47,800 --> 00:52:50,670 ఇది దశలను సంఖ్య పడుతుంది చేస్తుంది ఇన్పుట్ పొడవు మీద ఆధారపడి, 1126 00:52:50,670 --> 00:52:54,250 పేరుతో కానీ సంఖ్య డేటా నిర్మాణం. 1127 00:52:54,250 --> 00:52:58,700 మేము పేర్లు సంఖ్య రెట్టింపు చేస్తే ఒక బిలియన్ బిలియన్ రెండు నుండి మరుసటి సంవత్సరం, 1128 00:52:58,700 --> 00:53:03,720 ఫైండింగ్ మాక్స్వెల్ తీసుకోవాలని అన్నారు ఏడు అడుగులు యొక్క ఖచ్చితమైన అదే నెంబర్ 1129 00:53:03,720 --> 00:53:04,650 అతనికి కనుగొనేందుకు. 1130 00:53:04,650 --> 00:53:08,810 కాబట్టి మనం సాధించిన కనిపిస్తుంది సమయం నడుస్తున్న మన పవిత్ర గ్రెయిల్. 1131 00:53:08,810 --> 00:53:10,860 >> సో శీఘ్ర ప్రకటనల యొక్క జంట. 1132 00:53:10,860 --> 00:53:11,850 క్విజ్ సున్నా వస్తోంది. 1133 00:53:11,850 --> 00:53:14,600 కోర్సు యొక్క వెబ్ సైట్ ఆ మరింత తదుపరి రెండు రోజుల్లో పైగా. 1134 00:53:14,600 --> 00:53:17,120 సోమవారం యొక్క ఇది ఒక సెలవు ఉపన్యాసం ఇక్కడ హార్వర్డ్ వద్ద సోమవారం. 1135 00:53:17,120 --> 00:53:18,850 ఇది న్యూ హవెన్ లో కాదు కాబట్టి మేము తరగతి వేస్తున్నాము 1136 00:53:18,850 --> 00:53:20,310 సోమవారం ఉపన్యాసం న్యూ హవెన్. 1137 00:53:20,310 --> 00:53:22,550 అంతా చిత్రీకరించారు చేయబడుతుంది మరియు, ఎప్పటిలాగే ప్రత్యక్ష ప్రసారం 1138 00:53:22,550 --> 00:53:24,900 కానీ నేడు అంతం తెలియజేయండి 30 రెండవ క్లిప్ తో 1139 00:53:24,900 --> 00:53:26,910 పిలవబడే "డీప్ ఆలోచనలు" Daven Farnham ద్వారా ఇది 1140 00:53:26,910 --> 00:53:30,850 శనివారం ద్వారా గత ఏడాది ప్రేరణతో నైట్ లైవ్ యొక్క "డీప్ ఆలోచనలు" 1141 00:53:30,850 --> 00:53:35,700 జాక్ హ్యాండీ, ద్వారా ఆ ఇప్పుడు సమంజసం ఉండాలి. 1142 00:53:35,700 --> 00:53:38,810 >> FILM: ఇప్పుడు, "డీప్ Daven Farnham ద్వారా ఆలోచనలు ". 1143 00:53:38,810 --> 00:53:42,100 1144 00:53:42,100 --> 00:53:42,870 హాష్ పట్టిక. 1145 00:53:42,870 --> 00:53:45,940 1146 00:53:45,940 --> 00:53:47,660 >> SPEAKER 1: అన్ని కుడి, ఇప్పుడు కోసం అది వార్తలు. 1147 00:53:47,660 --> 00:53:48,805 వచ్చే వారం మీరు చూస్తారు. 1148 00:53:48,805 --> 00:53:55,380 1149 00:53:55,380 --> 00:53:56,680 >> డౌ: ఇది చర్య లో చూడటానికి. 1150 00:53:56,680 --> 00:53:58,304 కాబట్టి యొక్క ఇప్పుడు ఆ వద్ద ఒక లుక్ తీసుకుందాం. 1151 00:53:58,304 --> 00:53:59,890 ఇక్కడ, మేము ఒక క్రమబద్ధీకరించనిది శ్రేణి కలిగి. 1152 00:53:59,890 --> 00:54:04,860 >> IAN: డౌ, మీరు ముందుకు మరియు పునఃప్రారంభించుము వెళ్ళే కేవలం ఒక రెండవ కోసం ఈ దయచేసి. 1153 00:54:04,860 --> 00:54:08,562 అన్ని కుడి, కెమెరాలు, కాబట్టి రోలింగ్ ఉంటాయి చర్య మీరు డౌ సిద్ధంగా ఉన్నాము చేసినప్పుడు, సరి? 1154 00:54:08,562 --> 00:54:11,020 డౌ: అన్ని కుడి, కాబట్టి మేము ఇక్కడ కలిగి ఒక క్రమబద్ధీకరించనిది శ్రేణి. 1155 00:54:11,020 --> 00:54:13,960 నేను అన్ని మూలకాల రంగు చేసిన అది నిజానికి, ఉంది సూచిస్తున్నాయి ఎరుపు, 1156 00:54:13,960 --> 00:54:14,460 క్రమబద్ధీకరించనిది. 1157 00:54:14,460 --> 00:54:17,960 కాబట్టి మొదటి విషయం మేము లేదని గుర్తు మేము శ్రేణి యొక్క ఎడమ అర్ధ క్రమం ఉంది. 1158 00:54:17,960 --> 00:54:20,630 అప్పుడు మేము కుడి క్రమం అర్రే సగం. 1159 00:54:20,630 --> 00:54:22,830 యా-డా య-డా య-డా మేము వాటిని కలిసి విలీనం. 1160 00:54:22,830 --> 00:54:24,520 మరియు మేము ఒక పూర్తిగా క్రమబద్ధీకరించబడతాయి శ్రేణి కలిగి. 1161 00:54:24,520 --> 00:54:25,360 కాబట్టి ఆ పని విధమైన విలీనం ఎలా. 1162 00:54:25,360 --> 00:54:27,109 >> IAN: అయ్యో, అయ్యో, అయ్యో, కట్, కట్, కట్, కట్. 1163 00:54:27,109 --> 00:54:30,130 డౌ, మీరు కేవలం య-da కాదు, య-డా య-డా విలీనంతో విధమైన ద్వారా మీ మార్గం. 1164 00:54:30,130 --> 00:54:31,970 >> డౌ: నేను ఇప్పుడే చేశాం. 1165 00:54:31,970 --> 00:54:32,832 పర్లేదు. 1166 00:54:32,832 --> 00:54:33,540 మేము అన్నిటికి ఉన్నాము. 1167 00:54:33,540 --> 00:54:34,760 యొక్క కేవలం తీస్తూ లెట్. 1168 00:54:34,760 --> 00:54:35,380 సో ఏమైనప్పటికీ, 1169 00:54:35,380 --> 00:54:37,800 >> IAN: మీరు వివరించేందుకు ఇది పూర్తిగా కంటే. 1170 00:54:37,800 --> 00:54:39,999 కేవలం చాలదు. 1171 00:54:39,999 --> 00:54:41,790 డౌ: ఇయాన్, మేము లేదు ఒక తిరిగి వెళ్లాలి. 1172 00:54:41,790 --> 00:54:42,350 పర్లేదు. 1173 00:54:42,350 --> 00:54:45,690 సో ఏమైనప్పటికీ, మేము merge-- కొనసాగించాలని ఉంటే ఇయాన్, మేము చిత్రీకరణ మధ్యలో ఉన్నాము. 1174 00:54:45,690 --> 00:54:46,612 >> IAN: నేను తెలుసు. 1175 00:54:46,612 --> 00:54:49,320 మరియు మేము కేవలం య-da కాదు, య-డా మొత్తం ప్రక్రియ ద్వారా య-డా. 1176 00:54:49,320 --> 00:54:52,200 మీరు ఎలా వివరించేందుకు రెండు వైపులా కలిసి విలీనం చేసుకోగా. 1177 00:54:52,200 --> 00:54:53,570 >> డౌ: కానీ మేము ఇప్పటికే చేసిన వివరించారు రెండు sides-- 1178 00:54:53,570 --> 00:54:55,321 >> IAN: మీరు కేవలం చూపిన చేసిన వాటిని కలిసిపోయినా శ్రేణి. 1179 00:54:55,321 --> 00:54:56,486 డౌ: వారు ప్రక్రియ తెలుసు. 1180 00:54:56,486 --> 00:54:57,172 వారు జరిమానా ఉన్నారు. 1181 00:54:57,172 --> 00:54:58,380 మేము అది పైగా పది సార్లు మారారు. 1182 00:54:58,380 --> 00:55:00,330 >> IAN: మీరు కేవలం కుడి అది పైగా దాటవేయబడింది. 1183 00:55:00,330 --> 00:55:03,360 మేము ఒక తిరిగి చూడాలని, మీరు అది పైగా మీరు యా-డా య-da కాదు. 1184 00:55:03,360 --> 00:55:05,480 తిరిగి ఒక అన్ని కుడి. 1185 00:55:05,480 --> 00:55:07,833 >> డౌ: నేను తిరిగి వెళ్ళడానికి కలిగి స్లయిడ్లను ద్వారా? 1186 00:55:07,833 --> 00:55:08,332 దేవుడా. 1187 00:55:08,332 --> 00:55:11,008 1188 00:55:11,008 --> 00:55:13,004 ఇది ఆరవ సారి, ఇయాన్ వంటిది. 1189 00:55:13,004 --> 00:55:13,940 పర్లేదు. 1190 00:55:13,940 --> 00:55:15,200 >> IAN: అన్ని కుడి. 1191 00:55:15,200 --> 00:55:16,590 మీరు సిద్ధంగా ఉన్నారా? 1192 00:55:16,590 --> 00:55:17,400 గ్రేట్. 1193 00:55:17,400 --> 00:55:18,950 యాక్షన్.