1 વક્તા: બધા હક છે, તેથી આ છે CS50 આ અઠવાડિયે પાંચ અંત છે. અને તે છેલ્લા સમય યાદ અમે શરૂ પારખુ માહિતી પર જોઈ ઉકેલવા માટે શરૂ માળખાં દાખલ કરવા માટે શરૂ સમસ્યાઓ, નવી સમસ્યાઓ છે, પરંતુ આ માટે કી threading ના સૉર્ટ હતું કે અમે નોડ માંથી નોડ કરવા માટે શરૂ કરી હતી. તેથી અલબત્ત આ છે એક એકલા કડી થયેલ યાદી. ત્યાં એકલા, કડી હું માત્ર એક છે અર્થ તે ગાંઠો દરેક વચ્ચે થ્રેડ. તમે પારખુ કરી શકો છો બહાર વળે સમયમાં બમણું કડી થયેલ યાદીઓ જેવી વસ્તુઓ તમે એક તીર છે જેમાં બંને દિશામાં જઈને જે ચોક્કસ કાર્યક્ષમતા સાથે મદદ કરી શકે છે. પરંતુ આ સમસ્યા હલ? આ શું સમસ્યા ઉકેલવા? અમે સોમવાર પર શા માટે કાળજી હતી? શા માટે, સિદ્ધાંત માં, અમે સોમવાર પર કાળજી હતી? તે શું કરે છે? પ્રેક્ષક: અમે ગતિશીલ તે માપ બદલો કરી શકો છો. 1 વક્તા: ઠીક છે, અમે કરી શકો છો જેથી ગતિશીલ માપ બદલો. વેલ તમે બંને થાય છે. તેથી જો તમે ગતિશીલ આ માપ બદલો કરી શકો છો માહિતી માળખું, ઝાકઝમાળ, જ્યારે રિકોલ, તમે જાણતા હોય છે પ્રાયોરી કેટલી જગ્યા તમે કરવા માંગો છો અને તમે થોડી વધુ જરૂર હોય તો જગ્યા, તમે નસીબ બહાર પ્રકારની છો. તમે એક સંપૂર્ણ નવો એરે બનાવી છે. તમે બધા ખસેડવા માટે તમારા અન્ય એક માંથી માહિતી આખરે જૂના એરે મુક્ત તમે કરી શકો છો, અને પછી આગળ વધો છો તો. જે માત્ર ખૂબ જ ખર્ચાળ લાગે છે અને ખૂબ જ બિનકાર્યક્ષમ છે, અને ખરેખર તે હોઈ શકે છે. પરંતુ આ બધા સારા નથી. અમે ભાવ ચૂકવવા, એક શું હતું વધુ સ્પષ્ટ ભાવ અમે એક કડી થયેલ યાદી ઉપયોગ કરીને ચૂકવણી? પ્રેક્ષક: અમે ઉપયોગ કરે છે દરેક એક માટે ડબલ જગ્યા. 1 વક્તા: અરે વાહ, જેથી અમે જરૂર ઓછામાં ઓછા બે વાર જ જગ્યા છે. હકીકતમાં, હું સમજાયું આ ચિત્ર માતાનો પણ થોડો ભ્રામક, કારણ કે આધુનિક ઘણો CS50 IDE પર એન્જીનિયરિંગ, નિર્દેશક અથવા સરનામું હકીકત ચાર બાઇટ્સ નથી. તે ઘણી વાર આ છે દિવસ આઠ બાઇટ્સ, જે નીચે એનો અર્થ એ થાય કે મોટા ભાગના વાસ્તવમાં ત્યાં લંબચોરસ બે વખત તરીકે પ્રકારની છે હું દોરવામાં કર્યું છે શું મોટા, જે તમે ત્રણ વખત ઉપયોગ કરી રહ્યાં છો એનો અર્થ એ થાય અમે તો હોય શકે તેટલી જગ્યા. હવે એ જ સમયે, અમે છો હજુ બાઇટ્સ વાત, અધિકાર? અમે જરૂરી વાત કરી રહ્યા છીએ મેગાબાઇટ્સ અથવા ગીગાબાઇટ્સ, આ માહિતી જ્યાં સુધી માળખાં મોટા મળે છે. અને તેથી આજે આપણે ધ્યાનમાં શરૂ અમે માહિતી અન્વેષણ શકે છે કેવી રીતે વધુ અસરકારક રીતે જો હકીકત એ છે કે ડેટા મોટી નહીં. પરંતુ canonicalize કરવાનો પ્રયાસ કરીએ પ્રથમ કામગીરી તમે આ પર કરી શકો છો કે માહિતી માળખાં પ્રકારના. એક કડી થયેલ જેવી તેથી કંઈક યાદી સામાન્ય રીતે આધાર આપે છે કામગીરી કાઢી ગમે છે, દાખલ કરો, અને શોધો. અને હું કે શું અર્થ છે? કે જે હમણાં જ તે સામાન્ય રીતે અર્થ એ થાય લોકો કડી થયેલ યાદી વાપરી રહ્યા હોય, તેઓ અથવા અન્ય કોઈ વ્યક્તિ અમલમાં છે કાઢી નાંખો, સામેલ જેવા કાર્યો, અને શોધ, તમે કરી શકો છો જેથી ખરેખર કંઈક કરવું આ માહિતી માળખું ઉપયોગી છે. તેથી આપણે એક ઝડપી નજર અમે અમલ કરી શકે છે કેવી રીતે એક કડી થયેલ યાદી માટે અમુક કોડ તરીકે અનુસરે છે. તેથી આ માત્ર અમુક સી કોડ છે, પણ એક સંપૂર્ણ કાર્યક્રમ હું ખરેખર ઝડપથી અપ ચાબૂક મારી છે. તે વિતરણ ઓનલાઇન નથી કોડ છે, તે વાસ્તવમાં ચાલી નહીં કારણ કે. પરંતુ હું માત્ર છે નોટિસ એક ટિપ્પણી હતું કે સાથે, કોઈ ટપકું ટપકું, કંઈક છે ત્યાં, ત્યાં કંઈક ડોટ ડોટ ડોટ. અને આપણે માત્ર જોવા દો રસદાર ભાગો શું છે. તો રેખા ત્રણ, હવે આ યાદ છે કે અમે છેલ્લા નોડ જાહેર દરખાસ્ત સમય, તે લંબચોરસ વસ્તુઓ એક છે. તે અમે n એ કહી શકશો કે પૂર્ણાંક છે પરંતુ અમે કંઈપણ કૉલ કરી શકે છે, અને પછી એક સ્ટ્રક્ટ નોડ સ્ટાર આગામી કહેવાય છે. અને માત્ર કે બીજા સ્પષ્ટ થઈ રેખા, રેખા છ પર, કે શું છે? તે અમારા માટે શું કરવાનું છે? તે ચોક્કસપણે વધુ લાગે છે, કારણ અમારા સામાન્ય ચલો કરતાં ભેદી. પ્રેક્ષક: તે એક પર ખસેડો બનાવે છે. 1 વક્તા: તે એક પર ખસેડો બનાવે છે. અને, વધુ ચોક્કસ કરી શકાય કરવા તે સરનામું સંગ્રહ કરશે થઈ ગયું છે કે નોડ અર્થનિર્ધારણ તે માટે આગામી, અધિકાર? તેથી તે ચાલી રહ્યું છે જરૂરી કંઈપણ ખસેડો. તે માત્ર રહ્યું છે છે, કે જે નીચેની સ્ટોર સરનામું હોઈ ચાલે કેટલાક અન્ય નોડ, અમે સ્ટ્રક્ટ જણાવ્યું હતું કે કર્યું અને તે શા માટે છે નોડ તારો, તારો denoting એક નિર્દેશક અથવા સરનામું. ઠીક છે, તેથી હવે તમે અમે ધારે છે કે જો અમને ઉપલબ્ધ આ n એ, અને ચાલો કોઈના છે કે ધારે પૂર્ણાંકો એક સમગ્ર ટોળું દાખલ એક કડી થયેલ યાદી માં. અને તે સાથે લિંક યાદી છે અમુક બિંદુએ દ્વારા નિર્દેશ છે કે ચલ કહેવાય યાદી એક પરિમાણ તરીકે અહીં પસાર કર્યો હતો, હું કેવી રીતે રેખા વિશે જવા નથી 14 શોધ અમલીકરણ? અન્ય શબ્દોમાં, હું અમલીકરણ છું તો જેની હેતુ જીવનમાં કાર્ય પછી પૂર્ણાંક અને લેવા માટે છે એક કડી થયેલ યાદી શરૂઆત છે, કે યાદીની લિંક કરવા માટે એક નિર્દેશક છે. પ્રથમ જેમ, હું ડેવિડ જે વિચારો અમારા સ્વયંસેવક સોમવારે હતી તેમણે ઇશારો કરવામાં આવ્યો હતો સમગ્ર કડી થયેલ યાદી, અમે પસાર કરી રહ્યાં છે, તેમ છતાં, કે છે ડેવિડ અહીં અમારા દલીલ તરીકે. કેવી રીતે અમે આ યાદીમાં સરકાઉ વિશે જાઓ છો? વેલ, તે તારણ છે કે, તેમ છતાં પોઇન્ટર અમને હવે પ્રમાણમાં નવા છે અમે પ્રમાણમાં આ કરી શકો છો તેમના મોઢા પર. હું આગળ જવા માટે જઇ રહ્યો છું અને કામચલાઉ ચલ જાહેર કે સંમેલન દ્વારા માત્ર રહ્યું છે માટે, ptr નિર્દેશક તરીકે ઓળખાય છે, અથવા પરંતુ તમે ઇચ્છો કંઈપણ કહી શકે છે. અને હું પ્રારંભ કરવા જઈ રહ્યો છું તે યાદી શરૂઆત. તેથી જો તમે આ પ્રકારની વિચાર કરી શકો છો મને શિક્ષક તરીકે બીજા દિવસે, પ્રકારની કોઈને પોઇન્ટ સ્વયંસેવકો અમારા મનુષ્યો વચ્ચે. તેથી હું છે કે કામચલાઉ ચલ છું માત્ર એક જ વસ્તુ તરફ સંકેત અમારા સાંયોગિક નામ આપવામાં આવ્યું છે કે સ્વયંસેવક ડેવિડ પણ બહાર તરફ પોઇન્ટ કરવામાં આવી હતી. હવે નિર્દેશક છે, જ્યારે નલ નથી, કારણ કે રિકોલ નલ કેટલાક ખાસ સંત્રી કિંમત છે આ યાદીમાં ઓવરને demarcates હું નિર્દેશ કરતી રહ્યો નથી તેથી જ્યારે અમારા છેલ્લા સ્વયંસેવક જેવી જમીન હતી, ચાલો આગળ જવા દો અને નીચે પ્રમાણે કરો. નિર્દેશક અને હવે જો હું પ્રકારની માંગો છો અમે વિદ્યાર્થી સાથે શું કર્યું માળખું નિર્દેશક ટપકું આગામી તો બરાબર નિર્દેશક ટપકું N, બરાબર બદલે તો ચલ n એ, બરાબર માં પસાર કરવામાં આવી છે કે દલીલ, પછી હું આગળ જાઓ કરવા માંગો છો અને સાચું આવો કહે છે. હું અંદર સંખ્યા n મળી છે મારા યાદીની લિંક એક નોડ. પરંતુ કોઈ લાંબા સમય સુધી આ સંદર્ભમાં કામ કરે છે, નિર્દેશક, ptr છે, કારણ કે ખરેખર એક નિર્દેશક, એક સરનામું, અમે ખરેખર અદ્ભૂત કરી શકો છો વાક્યરચના છેલ્લે એક ટુકડો ઉપયોગ બનાવે છે કે જે પ્રકારની સાહજિક અર્થમાં અને ખરેખર ના જાઓ, જેનો અર્થ છે અહીં એક તીર ઉપયોગ ત્યાં પૂર્ણાંક છે કે સરનામું. તેથી તે ખૂબ જ સમાન છે કોઈ ઓપરેટર ભાવના, પરંતુ નિર્દેશક નિર્દેશક નથી, કારણ કે અને કોઈ વાસ્તવિક સ્ટ્રક્ટ પોતે, અમે માત્ર તીર ઉપયોગ કરે છે. તેથી જો વર્તમાન નોડ કે હું કામચલાઉ ચલ, નિર્દેશ કરતી છું એન, હું શું કરવા માંગો છો નથી? ઠીક છે, મારા માનવ સ્વયંસેવકો સાથે અમે બીજા દિવસે અહીં હતું કે, મારી પ્રથમ માનવ એક હું ન હોય તો માંગો છો, અને કદાચ બીજી માનવ નથી હું માંગો છો તે એક છે, અને ત્રીજા, હું ખસેડવાની શારીરિક રાખવા જરૂર છે. જેમ હું કેવી રીતે યાદી મારફતે પગલું છે? અમે એક એરે હતી, ત્યારે તમે માત્ર હું વત્તા વત્તા જેવી હતી. પરંતુ આ કિસ્સામાં, તે પૂરતા આગળ, નિર્દેશક, નહીં, નિર્દેશક નથી. બીજા શબ્દોમાં કહીએ તો, આગામી ક્ષેત્ર ડાબી હાથ બધા જેવા છે સોમવારે અમારા માનવ સ્વયંસેવકો કેટલાક અન્ય નોડ પર નિર્દેશ ઉપયોગ કરી રહ્યા હતા. તે તેમના આગામી પડોશીઓ હતા. હું આ યાદી મારફતે પગલું કરવા માંગો છો તેથી જો, હું માત્ર હવે હું શું વત્તા વત્તા કરી શકો છો હું બદલે કહે છે હું નિર્દેશક, રહ્યું છે આગામી ક્ષેત્ર ગમે સમાન, આગામી ક્ષેત્ર, આગામી ક્ષેત્ર છે તે છોડી હાથ નીચેની બધી અમે સ્ટેજ પોઇન્ટ પર હતું કે કેટલીક અનુગામી કિંમતો છે. અને હું મારફતે વિચાર જો તે સમગ્ર પુનરાવૃત્તિ, અને છેલ્લે, હું નથી કર્યા નલ હિટ મળી N હજુ સુધી, હું હમણાં જ ખોટા આવો. તેથી ફરી, અમે અહીં કરી રહ્યા છીએ કે જે બધા, એક ક્ષણ પહેલા ચિત્ર મુજબ આ તરફ સંકેત દ્વારા શરૂ થાય છે કદાચ યાદી શરૂઆત. અને પછી હું ચકાસવા માટે, કિંમત છે હું નવ બરાબર શોધી રહ્યો છું? તેથી, જો હું સાચું આવો અને હું કરી રહ્યો છું. જો નહિં, તો હું મારા હાથ અપડેટ ઉર્ફ નિર્દેશક, નિર્દેશ આગામી તીર પાંચ આંકડાના US સ્થાન, અને પછી આગામી તીર પાંચ આંકડાના US સ્થાન, અને આગળ. હું માત્ર આ એરે મારફતે વૉકિંગ છું. તેથી ફરી, જે ધ્યાન આપતા? જેમ આ માટે એક ઘટક કયો છે? વેલ, અમે રજૂઆત કરી હતી યાદ સ્ટેક ની કલ્પના, જે તે છે, કારણ કે એક અમૂર્ત ડેટા ત્યાં લખો નથી એક સી વસ્તુ છે, તે એક CS50 વસ્તુ નથી, તે એક અમૂર્ત વિચાર, આ વિચાર છે એક બીજા ઉપર વસ્તુઓ સ્ટેકીંગ કે અમલ કરી શકાય છે અલગ અલગ રીતે જુમખું. અને અમે સૂચિત એક માર્ગ સાથે હતી ઝાકઝમાળ, અથવા એક કડી થયેલ યાદી છે. અને તે છે, કે જે પ્રમાણભૂત બહાર વળે સ્ટેક ઓછામાં ઓછા બે ઓપરેશન આધાર આપે છે. અને Buzz શબ્દો, દબાણ છે સ્ટેક પર કંઈક દબાણ, આ એક નવા ટ્રે જેવા ડાઇનિંગ હોલ, અથવા પોપ, જે સર્વોચ્ચ દૂર કરવા એનો અર્થ એ થાય ડાઇનિંગ સ્ટેક માંથી ટ્રે હોલ, અને પછી કદાચ કેટલાક અન્ય કામગીરી તેમજ. તેથી અમે કેવી રીતે માળખું વ્યાખ્યાયિત કરી શકે છે હવે અમે સ્ટેક કૉલ કરી રહ્યાં છો છે? વેલ, અમે જરૂરી બધા છે હું કહી સી અમારા નિકાલ પર વાક્યરચના, મને એક પ્રકારની વ્યાખ્યા આપી એક સ્ટેક અંદર એક સ્ટ્રક્ટ, હું, એક એરે છે કહેવું જાઉં છું સંપૂર્ણ ક્રમાંકો સમૂહ અને પછી માપ. તેથી અન્ય શબ્દોમાં, હું માંગો છો, તો કોડ આ અમલ કરવા માટે, મને જાઓ અને માત્ર પ્રકારની દો આ શું કહે છે દોરે છે. આ કહેતા છે કે જેથી, મને આપી ઝાકઝમાળ મળ્યું છે કે માળખું, અને હું, ક્ષમતા શું છે તે ખબર નથી તે હું કર્યું કે દેખીતી રીતે કેટલાક સતત છે અન્યત્ર વ્યાખ્યાયિત, અને તે દંડ છે. પરંતુ, તે માત્ર એક ધારી બે, ત્રણ, ચાર, પાંચ. તેથી ક્ષમતા 5 છે. ની અંદર આ તત્વ મારા માળખું નંબરો કહેવામાં આવશે. અને પછી હું એક જરૂર અન્ય ચલ દેખીતી રીતે શરૂઆતમાં હું જાઉં છું કહેવાય કદ શૂન્ય આરંભ છે નિયત છે. કંઇ હોય તો સ્ટેક, કદ, શૂન્ય છે અને તે સંખ્યામાં કચરો કિંમતો છે. હું હજુ સુધી ત્યાં શું કોઈ વિચાર છે. હું દબાણ કરવા માંગો છો તેથી જો સ્ટેક પર કંઈક હું કાર્ય દબાણ કૉલ ધારી, અને હું નંબર 50, જેમ કે 50 દબાણ કહે છે જ્યાં તમે પ્રસ્તાવ થશે હું આ એરે માં તે ડ્રો? પાંચ અલગ અલગ શક્ય જવાબો છે. જ્યાં તમે નંબર 50 દબાણ કરવા માંગો છો? અહીં ધ્યેય તો, ફરી, કોલ કાર્ય દબાણ, એક દલીલ પાસ 50, હું તે જ્યાં મૂકી શકું? પાંચ possible-- 20% તક ના યોગ્ય રીતે અનુમાન લગાવવા. હા? પ્રેક્ષક: ફાર અધિકાર. 1 વક્તા: ફાર અધિકાર. 25% તક હવે છે ના યોગ્ય રીતે અનુમાન લગાવવા. તેથી તે ખરેખર દંડ હશે. સંમેલન દ્વારા, હું એક એરે સાથે કહેવું પડશે, અમે સામાન્ય રીતે, ડાબી પર શરૂ કરશે પરંતુ અમે ચોક્કસપણે કરી શકે જમણે શરૂ કરો. તેથી અહીં સ્પોઇલર હું હશે કદાચ તે ડાબી બાજુ પર ડ્રો જતાં, માત્ર એક સામાન્ય એરે જ્યાં ગમે હું ડાબેથી જમણે થઇ શરૂ કરો. પરંતુ તમે વિમાનની મુસાફરી કરી શકે તો અંકગણિત, દંડ. તે માત્ર પરંપરાગત નથી. ઠીક છે, હું એક કરવાની જરૂર છે છતાં વધુ બદલો. હવે હું કંઈક દબાણ કર્યું કે સ્ટેક પર, આગામી શું છે? બધા હક છે, હું કદ વધારો છે. તેથી મને આગળ અને માત્ર જવા દો શૂન્ય હતું જે આ અપડેટ કરો. અને તેના બદલે હવે, હું જાઉં છું કિંમત એક મૂકો. અને હવે હું અન્ય દબાણ ધારવું સ્ટેક પર નંબર 51 જેવા હોય છે. વેલ, હું એક વધુ બનાવવા માટે હોય છે કદ બે પર છે જે ફેરફાર. અને પછી હું એક વધુ દબાણ ધારવું 61 જેમ સ્ટેક પર નંબર, હવે હું કદ અપડેટ કરવાની જરૂર છે એક વધુ સમય, અને માપ તરીકે કિંમત 3 મળે છે. અને હવે હું પોપ કહી ધારવું. હમણાં સંમેલન દ્વારા, પૉપ, એક દલીલ નથી. સ્ટેક સાથે, સમગ્ર ટ્રે રૂપક બિંદુ તમે મુનસફી નથી કે છે કે ટ્રે મળી જવા, બધા તમે શું કરી શકો ના સર્વોચ્ચ એક પૉપ છે સ્ટેક, માત્ર કારણ કે. આ માહિતી કે માળખું શું કરે છે. જો કે તર્ક દ્વારા તેથી હું પૉપ, શું બંધ આવે કહે છે? તેથી 61. તેથી ખરેખર કોમ્પ્યુટર શું છે મેમરી કરવા જઇ? શું મારી કોડ કરવું છે? તમે શું પ્રસ્તાવ થશે અમે સ્ક્રીન પર બદલવા? શું બદલવા જોઇએ? માફ કરશો? તેથી અમે 61 છુટકારો મળે છે. તેથી હું ચોક્કસપણે કરી શકો છો. અને હું 61 છુટકારો મળી શકે છે. અને પછી અન્ય શું ફેરફાર થાય કરવાની જરૂર છે? માપ કદાચ બે પાછા જવા માટે છે. અને તેથી તે દંડ છે. પરંતુ એક મિનિટ, કદ રાહ એક ક્ષણ પહેલા ત્રણ હતો. માત્ર એક ઝડપી સેનીટી ચેક કરવા દો. અમે કેવી રીતે અમે જાણતા હતા કે 61 છુટકારો મેળવવા માગે છે? અમે ધાણી કરી રહ્યાં છો કારણ કે. અને તેથી હું આ બીજી મિલકત કદ ધરાવે છે. હું છું, એક મિનિટ રાહ જુઓ અઠવાડિયામાં બે પાછા વિચારવાનો અમે વિશે વાત કરવાનું શરૂ કર્યું ત્યારે આ સ્થાન શૂન્ય હતી, જ્યાં એરે, આ સ્થાન એક હતું, આ સ્થાન હતું બે, આ સ્થાન ત્રણ, ચાર છે, તે જેવી લાગે છે માપ વચ્ચે સંબંધ અને હું માંગો છો તે તત્વ દૂર કરવા એરે ફક્ત શું હોય તેવું લાગે છે? માપ ઓછા છે. અને તેથી તે કેવી રીતે મનુષ્યો છે અમે 61 પ્રથમ આવે ખબર. કેવી રીતે કમ્પ્યૂટર ખબર રહ્યું છે? જ્યારે તમારા કોડ છે, જ્યાં તમે કદાચ કદ ઓછા એક કરવા માંગો છો, તેથી ત્રણ ઓછા એક બે, અને તે છે અમે 61 છુટકારો મેળવવા માંગો છો છે. અને પછી અમે ખરેખર અપડેટ કરી શકો છો તે માપ જેથી માપ હવે માત્ર બે ત્રણ થી જાય છે. અને માત્ર વિદ્યાડબંરવાળું હોઇ શકે છે, હું જાઉં છું અધિકાર, હું કરી રહ્યો છું કે પ્રસ્તાવ માટે? તમે તર્ક સૂચિત યોગ્ય રીતે હું 61 છુટકારો મળી જોઈએ. પરંતુ નથી હું પ્રકારની સૉર્ટ 61 છુટકારો મેળવેલ? હું અસરકારક ભૂલી ગયા છો તે ખરેખર છે. તમે વાંચી કર્યું છે, તો પાછા pset4 લાગે વિદેશી વિશે લેખ, પીડીએફ અમે હતી કે તમે ગાય્ઝ વાંચી, અથવા તમે pset4 માટે આ સપ્તાહ વાંચી હશે. આ ખરેખર સંગત યાદ છે કે કમ્પ્યુટર વિદેશી સમગ્ર વિચાર. શું કમ્પ્યુટર સામાન્ય રીતે કરે છે કંઈક છે જ્યાં તે માત્ર forgets પરંતુ તે જાઓ અને પસંદ નથી તે બહાર અથવા ઓવરરાઈડ ખંજવાળી પ્રયાસ zeros અને મુદ્દાઓ સાથે તે બિટ્સ અથવા અમુક અન્ય રેન્ડમ પેટર્ન તમે જ્યાં સુધી જાતે જેથી ઇરાદાપૂર્વક નથી. તેથી તમારા અંતર્જ્ઞાન હતી અધિકાર, ચાલો 61 છુટકારો મેળવવા દો. પરંતુ વાસ્તવમાં, અમે સંતાપ નથી. અમે હમણાં જ ભૂલી ગયા છે કે જરૂર તે અમારા કદ બદલીને છે. હવે આ સ્ટેક સાથે સમસ્યા છે. હું વસ્તુઓ દબાણ રાખવા હોય તો સ્ટેક પર શું છે દેખીતી રીતે આમ થવાનું થોડી ક્ષણો સમય છે? અમે જગ્યા બહાર ચલાવવા માટે જઈ રહ્યાં છો. અને અમે શું કરવું? અમે પ્રકારની ખરાબ છો. આ અમલીકરણ દો નથી ઉપયોગ કારણ કે અમને એરે માપ બદલો આ વાક્યરચના છે, જો અઠવાડિયામાં બે પાછા લાગે છે, તમે જાહેર કર્યું છે એક વખત એક એરે માપ, અમે હજુ સુધી જ્યાં પદ્ધતિ જોઇ ન હોય તમે એરે માપ બદલી શકો છો. અને ખરેખર સી કે લક્ષણ નથી. જો તમે કહી મને પાંચ આપી Nths, તેમને કૉલ નંબરો, તમે તેને વિચાર જઈ રહ્યાં છો બધા છે. તેથી અમે સોમવાર તરીકે હવે શું છે, ઉકેલ વ્યક્ત કરવાની ક્ષમતા છતાં, અમે હમણાં જ ઝટકો જરૂર અમારા સ્ટેક ની વ્યાખ્યા કેટલાક હાર્ડ કોડેડ એરે નથી, પરંતુ માત્ર એક સરનામું સ્ટોર. હવે આ કેમ છે? હવે અમે માત્ર સાથે આરામદાયક હોય છે હકીકત એ છે કે મારા કાર્યક્રમ ચાલે છે ત્યારે, હું કદાચ જાઉં છું માનવ પૂછી, કેટલા નંબરો તમે સંગ્રહ કરવા માંગો છો? તેથી ઇનપુટ ક્યાંક આવે છે. પરંતુ મને લાગે છે કે એક વખતમાં નંબર, પછી હું માત્ર કરી શકો છો આપવા માટે કામ શું ઉપયોગ મને મેમરી એક ભાગ? હું malloc ઉપયોગ કરી શકો છો. અને હું કોઈપણ નંબર કહી શકો છો બાઇટ્સ હું પાછા આ Nths માટે કરવા માંગો છો. અને હું બધા નંબરો સ્ટોર કરવા માટે હોય છે આ સ્ટ્રક્ટ ની અંદર અહીં ચલ શું હોવું જોઈએ? શું ખરેખર જાય આ દ્રશ્ય નંબરો? અરે વાહ, આ પ્રથમ એક નિર્દેશક મેમરી કે ચંકને બાઇટ, અથવા વધુ ખાસ કરીને, સરનામું તે બાઇટ્સ પ્રથમ. તે એક છે, તો વાંધો નથી બાઇટ કે એક અબજ બાઇટ્સ, હું માત્ર પ્રથમ વિશે કાળજી કરવાની જરૂર છે. કારણ કે શું malloc ગેરંટી અને મારા ઓપરેટિંગ સિસ્ટમ ગેરન્ટી, છે કે મેમરી હું Chunk વિચાર, તે સંલગ્ન હશે. ગાબડા હોય ચાલી રહ્યું છે. હું 50 માટે પૂછ્યું છે, તેથી જો બાઇટ્સ અથવા 1,000 બાઇટ્સ, તેઓ બધા પ્રયત્ન જઈ રહ્યાં છો પાછળ પાછળ પાછળ છે. અને તેથી લાંબા સમય સુધી હું કેવી રીતે કેવી રીતે મોટા યાદ ખૂબ હું જાણવાની જરૂર છે, બધા માટે પૂછવામાં પ્રથમ જેમ કે સરનામું છે. તેથી હવે અમે કોડ ક્ષમતા હોય છે. જોકે, તે અમને લાગી રહ્યું છે વધુ સમય, આ અપ લખવા માટે અમે હવે કે મેમરી ફરી ફાળવવા શકે માત્ર ત્યાં એક ભિન્ન સરનામું સ્ટોર અમે પણ એક મોટી અથવા માંગો છો, તો મેમરી એક નાની Chunk. તેથી અહીં વેપાર નોંધાયો નહીં. હવે અમે dynamism મળે છે. અમે હજુ પણ હોય છે contiguousness હું દાવો છું. Malloc અમને આપે છે, કારણ મેમરી એક સંલગ્ન ભાગ. પરંતુ આ એક પીડા હોઈ ચાલે છે અમારા માટે ગરદન, પ્રોગ્રામર, વાસ્તવમાં કોડ માટે. તે માત્ર વધુ કામ છે. અમે હું શું સમાન કોડ જરૂર માત્ર એક ક્ષણ પહેલા બહાર એકાએક સપાટો. ખૂબ જ doable છે, પરંતુ તે જટિલતા ઉમેરે છે. અને તેથી ડેવલપર સમય, પ્રોગ્રામર સમય હજુ સુધી અન્ય સ્ત્રોત છે અમે પસાર કરવા માટે જરૂર પડી શકે છે કે કેટલાક સમય નવી સુવિધાઓ મેળવવા માટે. અને પછી અલબત્ત એક કતાર છે. અમે આ જાય નહીં ખૂબ વિગતવાર છે. પરંતુ તે ભાવના જ છે. હું એક કતાર અમલ શકે છે, અને તેના અનુરૂપ કામગીરી એન્ક્યૂ અથવા dequeue ઉમેરવા અથવા દૂર કરવા જેવી, તે કહેતા માત્ર એક પારખુ માર્ગ છે એન્ક્યૂ અથવા dequeue તરીકે અનુસરે છે. હું માત્ર મારી એક સ્ટ્રક્ટ આપી શકે છે કે ફરી એક નંબર એરે છે, કે ફરી એક માપ છે, પરંતુ હવે હું શા માટે જરૂર નથી એક કતાર આગળના ટ્રેક રાખવા માટે? મને ખબર જરૂર ન હતી મારા સ્ટેક ફ્રન્ટ. વેલ, જો હું ફરીથી માટે queue-- માત્ર હાર્ડ ચાલો પાંચ જેવા હોવા તરીકે તે કોડ અહીં સંભવિત માં પૂર્ણાંકો. તેથી આ શૂન્ય, એક, બે, ત્રણ, ચાર છે. આ એટલા માટે થઈ રહ્યું છે ફરીથી કહેવાય નંબરો. અને આ માપ કહેવામાં આવશે. તે શા માટે પૂરતી નહી હોય તે માત્ર માપ છે? ઠીક છે, ચાલો પર તે જ નંબરો દબાણ દો. તેથી હું કતારબદ્ધ, અથવા દબાણ pushed--. હવે હું પછી 50 એન્ક્યૂ, અને પડશે 51, અને પછી 61 અને ડોટ ડોટ ડોટ. તેથી તે એન્ક્યૂ છે. હું પછી 61, પછી 50, 51 કતારબદ્ધ. અને તે સમાન લાગે છે આમ અત્યાર સુધી સ્ટેક માટે, સિવાય હું એક ફેરફાર કરવા માટે જરૂર નથી. હું આ કદ અપડેટ કરવાની જરૂર છે, તેથી હું જાઓ હવે ત્રણ બે એક શૂન્ય છે. હું કેવી રીતે dequeue નથી? શું dequeue સાથે થાય છે? કોણ પ્રથમ આ યાદી બંધ આવવું જોઈએ તે એપલ સ્ટોર પર લીટી છે તો શું? તેથી 50. તેથી તે પ્રકારની trickier આ સમય છે. છેલ્લા સમય જ્યારે તે સુપર હતી સરળ ફક્ત માપ ઓછા એક કરવા માટે હું અસરકારક મારા એરે ઓવરને મેળવવા નંબરો છે, જ્યાં તે 61 દૂર કરે છે. પરંતુ હું 61 દૂર કરવા માંગો છો નથી. હું 50 લેવા માગતા 5:00 ખાતે આવી હતી આ માટે લાઇન નવા આઇફોન અથવા whatnot. અને તેથી હું 50 છુટકારો મેળવવા માટે માત્ર અધિકાર છે, આ કરી શકતા નથી? હું 50 બહાર પાર કરી શકે છે. પરંતુ અમે માત્ર અમે જણાવ્યું હતું કે તેથી ગુદા હોય નથી તરીકે બહાર ખંજવાળી અથવા માહિતી છુપાવવા માટે. જ્યાં તે છે અમે હમણાં જ ભૂલી શકો છો. પરંતુ હું હવે મારી માપ બદલી હોય તો બે, આ પૂરતી માહિતી છે મારા કતારમાં પર ચાલે છે તે જાણવા માટે કેવી રીતે? ખરેખર નહિ. મારા કદ, બે ગમે છે પરંતુ કતાર જ્યાં શરૂ નથી, ખાસ કરીને હું હજુ પણ હોય છે, તો મેમરી તે જ નંબરો. 50, 51, 61. તેથી હું યાદ કરવાની જરૂર છે હવે સામે છે. અને તેથી હું સૂચિત તરીકે ત્યાં, અમે ફક્ત કહે છે પડશે જેની પ્રારંભિક Nth સામે, કિંમત શું કરવામાં આવી છે જોઇએ? ઝીરો, આ યાદી માત્ર શરૂઆત. પરંતુ હવે વધુમાં decrementing માટે કદ, અમે ફક્ત ફ્રન્ટ વધારો. હવે અહીં અન્ય સમસ્યા છે. તેથી હું ચાલુ રાખવામાં એકવાર. આ સંખ્યા છે ધારો જેવા 121, 124, અને પછી, dammit, હું જગ્યા બહાર છું. પરંતુ હું નથી, એક મિનિટ રાહ જુઓ. વાર્તામાં આ બિંદુએ તેથી, કદ એક, બે ધારો કે, ત્રણ, ચાર, જેથી કે જે ધારવું કદ, ફ્રન્ટ છે, ચાર જેથી 51 આ બોલ પર છે. હું અહીં બીજા નંબર મૂકી કરવા માંગો છો, પરંતુ, dammit, હું જગ્યા બહાર છું. પરંતુ હું અધિકાર, ખરેખર નથી? હું કેટલાક જ્યાં મૂકી શકે 171 જેવા વધારાના કિંમત? અરે વાહ, હું કરી શકે છે માત્ર પ્રકારની અધિકાર પાછા ત્યાં જાઓ? અને પછી 50 બહાર પાર, અથવા માત્ર 171 સાથે ફરીથી લખી. અને તમે શા માટે આશ્ચર્ય પામી રહ્યાં છો, તો અમારા નંબરો, જેથી રેન્ડમ મળી આ સામાન્ય રીતે કોમ્પ્યુટર લેવામાં આવે છે CS50 પછી હાર્વર્ડ ખાતે વિજ્ઞાન અભ્યાસક્રમો. પરંતુ તે એક સારી ઓપ્ટિમાઇઝેશન હતી, હવે, કારણ કે હું જગ્યા બગાડ છું. હું હજુ પણ યાદ છે કેવી રીતે મોટા આ વસ્તુ કુલ છે. તે પાંચ કુલ છે. હું નથી માંગતા કારણ કે 51 ફરીથી લખી શરૂ કરો. તેથી હવે હું હજુ પણ જગ્યાની બહાર છું, તેથી જ સમસ્યા તરીકે તે પહેલાં. પરંતુ તમે કેવી રીતે હવે જોઈ શકો છો તમારો કોડ માં, તમે કદાચ થોડી વધુ લખવા માટે હોય છે જટિલતા કે બનાવવા માટે થાય છે. અને હકીકતમાં, શું ઓપરેટર સી કદાચ દે તમે જાદુઇ આ circularity છે? અરે વાહ આ મોડ્યૂલો ઓપરેટર, ટકા સાઇન. તેથી કતાર પ્રકારની વિશે ઠંડી છે શું અમે ચિત્રકામ એરે રાખવા છતાં પણ આ જેવા સીધી રેખા તરીકે, તમે તો પ્રકારની curving તરીકે આ વિશે વિચારો આસપાસ વર્તુળ, તો પછી માત્ર તર્ક તે પ્રકારની માનસિક કામ કરે છે હું વધુ સ્વચ્છ થોડી લાગે છે. જો તમે હજુ પણ અમલ કરવા માટે હોય છે કોડ કે માનસિક મોડેલ. તેથી તે હાર્ડ, આખરે, અમલ કરવા માટે પરંતુ અમે હજુ પણ તેના બદલે, આ ચોક્કસ માપ ગુમાવી અમે આ કરવા સિવાય ક્ષમતા, આકાર બદલવા માટે. અમે એરે છૂટકારો મેળવવા હોય છે, અમે એક નિર્દેશક સાથે બદલો, અને પછી ક્યાંક મારા કોડ માં હું મળી છે ખરેખર બનાવવા માટે કામ શું કહી એરે કહેવાય નંબરો? Malloc છે, અથવા અમુક સમાન કાર્ય, બરાબર. રન ટાઇમ સ્ટેકનું અથવા ક્યુને પર કોઈપણ પ્રશ્નો. અરે વાહ? સારા પ્રશ્ન. શું મોડ્યૂલો તમે અહીં ઉપયોગ કરશે. તેથી સામાન્ય રીતે, વાપરી રહ્યા હોય ત્યારે ફેરફારની, તો તમે તેને શું કરશે આ માપ સાથે સમગ્ર માહિતી માળખું. તેથી કંઈક પાંચ કે ક્ષમતા, જો તે સતત છે, કદાચ સામેલ છે. પરંતુ માત્ર મોડ્યૂલો પાંચ કરવાનું કદાચ પૂરતી નહી હોય તે અમે જાણવાની જરૂર છે કારણ કે અમે શું અહીં અથવા અહીં અથવા અહીં આસપાસ લપેટી. તેથી તમે કદાચ પણ છો સમાવેશ કરવા માંગો છો જઈ આ વસ્તુ માપ, અથવા તેમજ આ બોલ ચલ. તેથી તે માત્ર આ પ્રમાણમાં છે સરળ અંકગણિત અભિવ્યક્તિ, પરંતુ મોડ્યૂલો કી ઘટક હશે. તેથી ટૂંકા ફિલ્મ જો તમે કરશે. એનિમેશન કે કેટલાક અન્ય યુનિવર્સિટી ખાતે જાણતા અમે કર્યું કે સાથે મૂકવામાં આ ચર્ચા માટે ટેવાયેલા. તે જેક શીખવાની સમાવેશ થાય છે ક્યુને અને આંકડા વિશે હકીકતો. ફિલ્મ: એક સમય પર એકવાર, જેક નામના વ્યક્તિ આવી હતી. તે મિત્રો બનાવવા માટે આવ્યા ત્યારે, જેક એક હથોટી ન હતી. તેથી જેક સાથે વાત કરવા ગયા સૌથી વધુ લોકપ્રિય વ્યક્તિ તે જાણતા હતા. તેમણે લૌ ગયા અને હું શું કરી શકું, કહ્યું? લૌ તેમના મિત્ર જોયું કે ખરેખર ઉદાસ હતી. વેલ, તે માત્ર શરૂ કર્યું તમે પોશાક રહ્યાં છો કેવી રીતે જુઓ. જો તમે કોઇ કપડાં નથી એક અલગ દેખાવ સાથે? હા, જેક જણાવ્યું હતું. મને ખાતરી છે કે નથી. મારા ઘરમાં આવે છે અને હું તમે તેમને બતાવવા પડશે. તેથી તેઓ જેક માટે આ બોલ પર ગયા હતા. અને જેક લૌ બોક્સ દર્શાવે છે જ્યાં તેમણે, બધા તેમના શર્ટ રાખવામાં અને તેના પેન્ટ, અને તેમના મોજાં. લૌ હું તમારી પાસે જોવા જણાવ્યું હતું કે, એક ખૂંટો માં તમારા તમામ કપડાં. શા માટે તમે કેટલાક વસ્ત્રો નથી ક્ષણભર એક વખત અન્ય? જેક જણાવ્યું હતું કે, ઠીક છે, જ્યારે હું કપડાં અને SOCKS દૂર હું તેમને કપડાં ધોવા અને મૂકી તેમને દૂર બોક્સમાં. પછી આગામી આવે છે સવારે, અને હું હોપ. હું બોક્સ પર જાઓ અને વિચાર ટોચ બોલ મારા કપડાં. લૌ ઝડપથી ભાન જેક સાથે સમસ્યા. તેમણે કપડાં, સીડી માતાનો રાખવામાં અને સ્ટેક માં પુસ્તકો. તે માટે પહોંચ્યા ત્યારે કંઇક વાંચવા અથવા પહેરવા, તેમણે ટોચ પુસ્તક અથવા અન્ડરવેર પસંદ કરો છો. પછી તેણે કરવામાં આવી હતી જ્યારે, તેમણે અધિકાર પાછા તે મૂકવામાં આવશે. તે પાછા સ્ટેક ટોચ પર, જાઓ કરશે. હું ઉકેલ ખબર છે, વિજયી મોટા જણાવ્યું હતું. તમે જાણવા જરૂર છે એક કતાર ઉપયોગ શરૂ. લૌ માતાનો જેક કપડાં લઈને આ કબાટ માં તેમને ફરવા ગયા. અને તે ખાલી હતું ત્યારે બોક્સ, તે માત્ર તેને નોંધાયો. પછી તેણે જેક ઓવરને અંતે, હવે જણાવ્યું હતું કે, દિવસ, ડાબી પર તમારા કપડાં મૂકવા તમે તેમને દૂર મૂકી છે. પછી કાલે સવારે જ્યારે તમે તમારા કપડાં મેળવવા માટે, સનશાઇન જોવા લીટી ઓવરને ના અધિકાર પર. તમે જોઈ નથી? લૌ હતું. તે આવું સરસ હશે. તમે એક વાર બધું વસ્ત્રો પડશે પહેલાં તમે બે વાર કંઈક પહેરે છે. અને ક્યુને બધું સાથે તેમના કબાટ અને શેલ્ફ, જેક લાગે શરૂ પોતે તદ્દન ખાતરી કરો. લૌ બધા આભાર અને તેમના અદ્ભુત કતાર. 1 વક્તા: બધા હક છે, તે માનનીય છે. તેથી ખરેખર ચાલુ કરવામાં આવી છે તે હવે હૂડ નીચે? અમે પોઇન્ટર છે કે, અમે malloc છે, અમે બનાવવા માટે ક્ષમતા હોય છે કે જાતને માટે મેમરી હિસ્સામાં ગતિશીલ. તેથી આ એક ચિત્ર અમે છે જસ્ટ બીજા દિવસે જોવામાં. અમે ખરેખર રહેવું ન હતી તે પર, પરંતુ આ ચિત્ર નીચે છે ચાલુ કરવામાં આવી હવે અઠવાડિયા માટે હૂડ. અને તેથી આ જ રજૂ અમે દોરવામાં કર્યું છે કે લંબચોરસ, તમારા કમ્પ્યુટરની મેમરી. અને કદાચ તમારા કમ્પ્યુટર, અથવા CS50 ને, મેમરી અથવા રેમ એક gigabyte છે અથવા બે ગીગાબાઇટ્સ અથવા ચાર. તે ખરેખર તો કોઈ વાંધો નથી. તમારી ઓપરેટિંગ સિસ્ટમ વિન્ડોઝ અથવા મેક ઓએસ અથવા Linux, અનિવાર્યપણે તમારા કાર્યક્રમ માટે પરવાનગી આપે છે તે વપરાશ છે કે જે વિચારો સમગ્ર માટે તમારા કમ્પ્યુટરની મેમરી પણ તમે ચાલી હોઈ શકે, છતાં એક જ સમયે બહુવિધ કાર્યક્રમો. તેથી વાસ્તવમાં, તે ખરેખર કામ કરતું નથી. પરંતુ તે એક ભ્રમ પ્રકારની છે તમારા કાર્યક્રમો તમામ આપવામાં આવે છે. તેથી જો તમે આ RAM ની બે શોના હતી કમ્પ્યુટર તેને લાગે શકે છે કેવી રીતે છે. હવે સાંયોગિક, આ એક વસ્તુઓ, મેમરી આ સેગમેન્ટ એક, સ્ટેક કહેવાય છે. અને ખરેખર કોઈપણ સમયે આમ અત્યાર સુધી લેખન કોડ તમે કહે છે કે એક ઉદાહરણ મુખ્ય માટે કાર્ય. કોઈપણ સમયે હું કર્યું જણાવ્યું હતું કે દોરવામાં કમ્પ્યુટરની મેમરી હું હંમેશા સૉર્ટ ડ્રો અહીં એક લંબચોરસ અડધા અને વાત નથી સંતાપ નથી ઉપર શું છે તે વિશે. મુખ્ય કહેવામાં આવે છે, ત્યારે હું દાવો કારણ કે તમે મેમરી આ sliver મળી છે કે જે કે અહીં નીચે જાય છે. મુખ્ય હોય તો અને કાર્ય કહેવાય સ્વેપ, સારી રીતે સ્વેપ અહીં જાય છે. અને તે છે, બહાર વળે જ્યાં તે અંત છે. સ્ટેક કહેવાય કંઈક પર તમારા કમ્પ્યુટરની મેમરી ની અંદર. હવે દિવસ ઓવરને અંતે, આ માત્ર સંબોધે છે. તે બાઇટ શૂન્ય જેવી છે બાઇટ એક બાઇટ 2 અબજ. પરંતુ તમે તે વિશે વિચારો તો આ લંબચોરસ પદાર્થ તરીકે, બધા અમે દરેક કરી રહ્યા છીએ સમય અમે એક કાર્ય છે કૉલ મેમરી એક નવી સ્લાઇસ layering. અમે એક સ્લાઇસ કે કાર્ય કરી રહ્યા છો આપ્યા તેની પોતાની મેમરી સાથે કામ કરવા માટે. અને આ મહત્વપૂર્ણ છે કે હવે યાદ અપાવે છે. અમે હોય તો કારણ સ્વેપ કંઈક A અને B અને જેમ અને બે સ્થાનિક ચલો અમે એક અને બે થી તે મૂલ્યો બદલી બે અને એક યાદ સ્વેપ વળતર ત્યારે, તે આ સ્લાઇસ છતાં તરીકે છે માત્ર મેમરી ગયો છે. વાસ્તવમાં, તે હજુ પણ છે ત્યાં forensically. અને કંઈક ખરેખર ત્યાં હજુ પણ છે. પરંતુ કલ્પનાત્મક રીતે, તે છે છતાં તે સંપૂર્ણપણે ગઇ છે. અને તેથી મુખ્ય કામ કોઇ પણ ખબર નથી કે, સ્વેપ કાર્ય માં કરવામાં આવ્યું હતું તે ખરેખર તે પસાર છે, જ્યાં સુધી નિર્દેશક દ્વારા અથવા સંદર્ભ દ્વારા દલીલો. હવે, મૂળભૂત ઉકેલ સ્વેપ સાથે સમસ્યા સરનામું દ્વારા વસ્તુઓ પસાર થાય છે. પરંતુ તે પણ શું છે, બહાર વળે કે ભાગ ઉપર ચાલુ કરવામાં આવી લંબચોરસ આ બધા સમય છે હજુ સુધી વધુ મેમરી ત્યાં છે. અને જ્યારે તમે ગતિશીલ મેમરીને ફાળવવા, તે GetString, અંદર શું છે, જે અમે CS50 માં તમારા માટે કરી રહ્યો છું પુસ્તકાલય, અથવા તમે ગાય્સ તો malloc કૉલ અને પૂછો એક ભાગ માટે ઓપરેટિંગ સિસ્ટમ મેમરી તે સ્ટેક આવે નથી. બીજા સ્થળ પરથી આવે છે તમારા કમ્પ્યુટરની મેમરી કે ઢગલો કહેવાય છે. અને તે કોઈ પણ અલગ નથી. તે જ રામની. તે જ મેમરી છે. તે છે કે જે હમણાં જ રામની ત્યાં બદલે નીચે અહીં. અને તેથી કે શું અર્થ છે? વેલ, તમારા કમ્પ્યુટર હોય તો મેમરી એક મર્યાદિત રકમ અને સ્ટેક, જેથી વધતી જાય છે બોલે છે, અને ઢગલો, અનુસાર આ તીર નીચે વધી રહી છે. અન્ય શબ્દોમાં, દરેક સમય તમે malloc કૉલ, તમે એક સ્લાઇસ આપવામાં આવી રહ્યાં છો મેમરી ઉપરથી, થોડી, પછી નીચા પછી કદાચ થોડી નીચલા, તમે malloc કૉલ દર વખતે, ઢગલો, તે વપરાશ છે, પ્રકારની વધી રહી છે, શું નજીક વધતી? આ સ્ટેક. તેથી આ એક સારો વિચાર જેવી લાગે છે નથી? તે ખરેખર સ્પષ્ટ નથી જ્યાં હું તેનો અર્થ, તમે બીજું શું કરી શકો તો જ કરી શકો છો મેમરી એક મર્યાદિત રકમ હોય છે. પરંતુ આ ચોક્કસ ખરાબ છે. તે બે તીર પર હોય છે એક બીજા માટે કોર્સ ક્રેશ. અને તે ખરાબ વ્યક્તિ, લોકો જે બહાર વળે પ્રોગ્રામિંગ સાથે ખાસ કરીને સારી છે અને કમ્પ્યુટર્સ માં હેક કરવાનો પ્રયાસ કરી, આ વાસ્તવિકતા શોષણ કરી શકો છો. હકીકતમાં, ચાલો એક ઓછી સ્નીપેટ. તેથી આ તમે વાંચી શકે છે એક ઉદાહરણ છે વિશે વિકિપીડિયા પર વધુ વિગતવાર. અમે અંતે તમે નિર્દેશ પડશે લેખ તો વિચિત્ર. પરંતુ એક હુમલો સામાન્ય છે બફર ઓવરફ્લો તરીકે ઓળખાય છે મનુષ્યો તરીકે લાંબા સમય સુધી અસ્તિત્વમાં છે ચાલાકી કરવાની ક્ષમતા હતી છે ખાસ કરીને સી કમ્પ્યુટરની મેમરી તેથી આ એક ખૂબ જ મનસ્વી કાર્યક્રમ છે, પરંતુ નીચે થી ઉપર તે વાંચી દો. Argc ચાર રચે સ્ટાર argv માં મુખ્ય. તેથી તે લે છે કે કાર્યક્રમ છે આદેશ વાક્ય દલીલો. અને બધા મુખ્ય દેખીતી રીતે કોલ કરે છે એક કાર્ય સરળતા માટે એફ કૉલ કરો. અને તે શું પસાર? એક argv. તેથી તે એફ માં પસાર કરે છે ગમે શબ્દ વપરાશકર્તા ટાઇપ છે પછી પ્રોમ્પ્ટ પર કાર્યક્રમ નામ બધા. તેથી ખૂબ સીઝર અથવા Vigenere, જેમ જે તમે argv સાથે કરી યાદ શકે છે. તેથી એફ શું છે? એફ શબ્દમાળા લે તેની એકમાત્ર દલીલ તરીકે, ઉર્ફ ઘરનાં પરચૂરણ કામો સ્ટાર, જ વસ્તુ, શબ્દમાળા તરીકે. અને તે આપખુદ કહેવાય છે આ ઉદાહરણમાં બાર. અને પછી ઘરનાં પરચૂરણ કામો સી 12, માત્ર સામાન્ય માણસ દ્રષ્ટિએ, અમને માટે કરી ઘરનાં પરચૂરણ કામો સી કૌંસ 12 શું છે? તે શું છે? ખાસ કરીને, મેમરી ફાળવણી 12 અક્ષરો 12 બાઇટ્સ. ચોક્કસ. અને પછી, છેલ્લી લીટી જગાડવો અને નકલ, તો તમે કદાચ જોઇ ન કર્યા. આ એક સ્ટ્રિંગ નકલ છે જેની હેતુ જીવનમાં કાર્ય તેના બીજા દલીલ નકલ કરો તેના પ્રથમ દલીલ માં, પરંતુ માત્ર એક સુધી બાઇટ્સ ચોક્કસ સંખ્યા. તેથી ત્રીજા દલીલ કહે છે તમે કેટલા બાઇટ્સ નકલ કરીશું? બાર લંબાઈ, ગમે ટાઇપ વપરાશકર્તા. અને સમાવિષ્ટો છે, કે જેઓ શબ્દમાળા બાર મેમરી નકલ સી પર નિર્દેશ તેથી આ પ્રકારની મૂર્ખ લાગે છે, અને તે છે. તે contrived ઉદાહરણ છે, પરંતુ તે પ્રતિનિધિના હુમલો વેક્ટર્સ એક વર્ગ, એક કાર્યક્રમ હુમલો એક માર્ગ. બધા દંડ અને વપરાશકર્તા તો સારી છે 11 અક્ષરો છે કે એક શબ્દ પ્રકારના ઓછા વત્તા બેકસ્લેશ શૂન્ય અથવા. તેના કરતાં માં વપરાશકર્તા પ્રકારો વધુ તો 11 અથવા 12 અથવા 20 અથવા 50 અક્ષરો? કરવા જઇ આ કાર્યક્રમ શું છે? સંભવિત ખામી seg. તે ચાલી રહ્યું છે અકારણ ઉપર બાર બધું નકલ કરવા છે, જે તેના લંબાઈ, શાબ્દિક બાર બધું, સરનામું માં સી પરંતુ સી પર નિર્દેશ માત્ર preemptively 12 બાઇટ્સ તરીકે આપવામાં આવે છે. પરંતુ કોઇ વધારાની ચેક છે. શરતો તો કોઈ છે. અહીં કોઈ ભૂલ ચકાસણી છે. અને તેથી આ કાર્યક્રમ શું છે કરવા જઇ માત્ર અકારણ છે અન્ય એક વસ્તુ નકલ કરો. અને તેથી અમે આ ડ્રો તો એક ચિત્ર તરીકે, અહીં છે મેમરી જગ્યા માત્ર એક sliver. તેથી અમે તળિયે નોટિસ સ્થાનિક ચલ બાર છે. Store-- રહ્યું છે કે કે નિર્દેશક તેથી છે કે સ્થાનિક દલીલ બદલે શબ્દમાળા બાર સંગ્રહવા માટે જઈ રહી છે. અને પછી માત્ર નોટિસ તે ઉપર એક સ્ટેક માં, કારણ કે તમે પૂછો દર વખતે સ્ટેક પર મેમરી માટે, તે થોડો જાય pictorially તે ઉપર, આપણે ત્યાં 12 બાઇટ્સ મળી છે કે નોટિસ. ટોચની ડાબી એક સી કૌંસ શૂન્ય છે અને તળિયે જમણી એક સી કૌંસ 11 છે. કે જે હમણાં જ કેવી રીતે કમ્પ્યુટર્સ છે તે બહાર મૂકે જવાનું. તેથી માત્ર તર્ક, બાર વધુ હોય તો સહિત કુલ 12 અક્ષરો કરતાં આ છે જ્યાં બેકસ્લેશ શૂન્ય, 12 અથવા સી કૌંસ 12 જવા માટે ચાલે? અથવા બદલે જ્યાં 12 છે અક્ષર અથવા 13 મી પાત્ર, જઈને સો પાત્ર ચિત્રમાં અંત? ઉપર અથવા નીચે? અધિકાર, કારણ કે તેમ છતાં સ્ટેક પોતે, ઉપરનું વધે તમે સામગ્રી મૂકી છે એક વાર તે ડિઝાઇન કારણો માટે, ટોચ પરથી નીચે મેમરી મૂકે છે. તમે 12 કરતાં વધુ બાઇટ્સ મળી છે તેથી જો, તમે બાર પર ફરીથી લખી શરૂ કરવા જઈ રહ્યાં છો. હવે તે એક ભૂલ છે, પરંતુ તે છે ખરેખર એક મોટી સોદો. કારણ કે ત્યાં પરંતુ તે એક મોટો સોદો છે, મેમરી પર જવા વધુ સામગ્રી. તેથી અહીં અમે કેવી રીતે કદાચ છે સ્પષ્ટ કરવા, હેલો મૂકો. હું પ્રોમ્પ્ટ પર હેલો માં લખ્યો છે. એચ ઇ એલ એલ ઓ બેકસ્લેશ શૂન્ય, અંદર અંત થાય છે તે 12 બાઇટ્સ, અને અમે સુપર સુરક્ષિત છો. બધું બરાબર છે. પરંતુ હું કંઈક લખો તો લાંબા સમય સુધી, તે સંભવિત છે બાર જગ્યા માં સળવળવું જઈ રહી છે. પરંતુ ખરાબ હજુ સુધી, તે કરે છે આ બધા સમય બહાર, અમે વિશે વાત કરી ક્યારેય કર્યું છે, તેમ છતાં તે સ્ટેક અન્ય સામગ્રી માટે વપરાય છે. તે માત્ર સ્થાનિક ચલો નથી. સી ખૂબ નીચા સ્તર ભાષા છે. અને તે પ્રકારના ગુપ્ત પણ સ્ટેક વાપરે જ્યારે યાદ કરવા માટે એક કાર્ય શું કહે છે સરનામું છે, જે અગાઉના કાર્ય છે તેથી તે તે કાર્ય કરવા માટે કૂદી શકે છે. તેથી મુખ્ય કોલ્સ વચ્ચે સ્વેપ જ્યારે વસ્તુઓ સ્ટેક પર દબાણ છે માત્ર સ્થાનિક ચલો અદલબદલ નથી અથવા તેના દલીલો, પણ ગુપ્ત દબાણ સ્ટેક પર રજૂ અહીં લાલ સ્લાઇસ દ્વારા, મુખ્ય સરનામું શારીરિક છે તમારા કમ્પ્યુટરની મેમરી છે, કે જેથી સ્વેપ કરવામાં આવે છે ત્યારે, કમ્પ્યુટર હું મુખ્ય પાછા જવાની જરૂર જાણે છે અને મુખ્ય કાર્ય ચલાવવા સમાપ્ત કરો. તેથી આ હવે ખતરનાક છે, કારણ કે જો હેલો કરતાં વધુ સારી રીતે વધુ માં વપરાશકર્તા પ્રકારો, વપરાશકર્તાની ઇનપુટ clobbers જેમ કે અથવા, કે લાલ વિભાગ પર ફરીથી લખે છે તાર્કિક તો કમ્પ્યુટરની માત્ર અકારણ ધારણ જાઉં કે લાલ સ્લાઇસ બાઇટ્સ છે કે તે પાછા જોઈએ જે સરનામું, શત્રુ શું છે, તો પૂરતી સ્માર્ટ અથવા બાઇટ્સ ક્રમ મૂકવા માટે પૂરતી નસીબદાર ત્યાં એક સરનામું જેવી લાગે છે કે, પરંતુ તે કોડ સરનામું તે અથવા તેણી કમ્પ્યુટર માંગે છે કે તેના બદલે મુખ્ય ચલાવવા માટે? બીજા શબ્દોમાં કહીએ તો, શું જો વપરાશકર્તા પ્રોમ્પ્ટ પર લખીને છે માત્ર કંઈક નથી હેલો, નિરુપદ્રવી જેવા પરંતુ તે સમકક્ષ છે કે કોડ કે જે ખરેખર છે આ બધા વપરાશકર્તા ફાઈલો કાઢી નાખવા માટે? અથવા મને તેમના પાસવર્ડ ઇમેઇલ? અથવા લોગીંગ શરૂ તેમના કીસ્ટ્રોક, અધિકાર? એક માર્ગ છે, આજે નિયત દો તેઓ હેલો માત્ર લખો શકે છે વિશ્વ અથવા તેમના નામ, તેઓ અનિવાર્યપણે શકે કોડ છે, zeros પાસ અને રાશિઓ, કે કમ્પ્યુટર કોડ અને સરનામું બંને માટે ભૂલો. જોકે તેથી અંશે અમૂર્ત, તો પૂરતી વિરોધી કોડ વપરાશકર્તા પ્રકારો અમે અહીં સામાન્ય પડશે કે એ એક હુમલો અથવા પ્રતિસ્પર્ધકો છે. તેથી માત્ર ખરાબ સામગ્રી. અમે વિશે કાળજી નથી નંબરો અથવા zeros અથવા મુદ્દાઓ આજે, તમે આવા અંત કે કે લાલ વિભાગ પર ફરીથી લખી, બાઇટ્સ કે ક્રમ નોટિસ. ઓ 835 સી શૂન્ય આઠ શૂન્ય. અને હવે અહીં વિકિપીડિયા લેખ તરીકે તમે હવે ખરેખર શરૂ કરો, તો પ્રસ્તાવ મૂક્યો છે તમારા કમ્પ્યુટર માં બાઇટ્સ લેબલિંગ મેમરી વિકિપીડિયાનો લેખ શું છે પ્રસ્તાવ છે, કે શું સરનામું તો કે ટોચ ડાબી બાઇટ 80 સી 0 3508 છે. બીજા શબ્દોમાં કહીએ તો, ખરાબ વ્યક્તિ છે તો તેના અથવા તેણીના કોડ સાથે પૂરતી સ્માર્ટ ખરેખર અહીં એક નંબર મૂકી કે કોડ સરનામા માટે અનુલક્ષે તે અથવા તેણી ઇન્જેક્ટ કમ્પ્યુટર માં, તમે કમ્પ્યુટર ટ્રીક કરી શકો છો કંઇ કરવાનું માં. ફાઈલો દૂર કરી રહ્યા છીએ ઇમેઇલ વસ્તુઓ તમારા ટ્રાફિક સુંઘવાનું, શાબ્દિક કંઈપણ હોઈ શકે છે કમ્પ્યુટર માં ઇન્જેક્ટ. અને તેથી એક બફર ઓવરફ્લો તેના કોર પર હુમલો માત્ર એક મૂર્ખ મૂર્ખ છે એક એરે ફરીથી લખવાનું કે તેની સરહદોની ચકાસાયેલ નથી. અને આ સુપર ખતરનાક શું છે અને સાથે સાથે સુપર શક્તિશાળી સી અમે ખરેખર હોય છે મેમરી ગમે ત્યાં ઍક્સેસ કરો. તે અમને અપ છે, પ્રોગ્રામરો, જે મૂળ કોડ લખવા કોઇ રફૂ લંબાઈ ચકાસવા અમે હેરફેર કરી રહ્યાં છો કે એરે. તેથી સ્પષ્ટ કરવા, સુધારો શું છે? અમે આ માટે પાછા રોલ કોડ છે, હું નથી કરીશું બાર લંબાઈ બદલવા માટે, શું બીજું હું તપાસ થવી જોઈએ? બીજું શું હું આમ જોઇએ સંપૂર્ણપણે આ હુમલા અટકાવવા? હું માત્ર અકારણ કહેવા માગો છો નથી જો તમે તરીકે ઘણા બાઇટ્સ નકલ કરીશું કે તરીકે બાર લંબાઈ છે. હું નકલ કહેવા માગો છો ઘણા બાઇટ્સ બાર છે ફાળવેલ સુધી મેમરી, અથવા વધુમાં 12. તેથી હું શરત તો અમુક પ્રકારની જરૂર કે બાર લંબાઈ તપાસ કરે છે, પરંતુ તે 12, અમે હમણાં જ હાર્ડ કોડ કરતા વધી ગયો છે તો મહત્તમ શક્ય અંતર તરીકે 12. નહિંતર કહેવાતા બફર ઓવરફ્લો હુમલો થઇ શકે છે. તે સ્લાઇડ્સ તળિયે, તમે વધુ વાંચવા માટે વિચિત્ર છો, તો વાસ્તવિક મૂળ લેખ છે તમે એક નજર કરવા માંગો છો. પરંતુ હવે, ભાવમાં વચ્ચે બિનકાર્યક્ષમતાને અહીં હતી ચૂકવવામાં આવે છે. તેથી કે જે ઝડપી હતી નીચા સ્તર શું જોવા સમસ્યાઓ કે અમે હવે પણ સર્જાઈ શકે છે કમ્પ્યુટરની મેમરી વપરાશ હોય છે. પરંતુ અન્ય સમસ્યા અમે પહેલેથી જ સોમવારે stumbled માત્ર બિનકાર્યક્ષમતા હતો એક કડી થયેલ યાદી છે. અમે પાછા રેખીય સમય છે. અમે લાંબા સમય સુધી સંલગ્ન એરે હોય છે. અમે રેન્ડમ એક્સેસ નથી. અમે ચોરસ કૌંસ નોટેશનમાં ઉપયોગ કરી શકતા નથી. અમે શાબ્દિક જ્યારે લૂપ ઉપયોગ કરે છે એક જેમ હું એક ક્ષણ પહેલા લખ્યું હતું. પરંતુ સોમવારે, અમે કરી શકો છો દાવો કર્યો હતો કે કાર્યક્ષમતા ના ક્ષેત્ર માં પાછા સળવળવું કંઈક કે જે હાંસલ લઘુગુણકીય કદાચ, અથવા શ્રેષ્ઠ હજુ સુધી, કે કદાચ કંઈક સતત સમય જેથી-કહેવાય છે. તેથી અમે દ્વારા આ નવા ઉપયોગ કેવી રીતે કરી શકો છો સાધનો, આ સરનામાં, આ પોઇંટરો, અને અમારી પોતાની વસ્તુઓ threading? ઠીક છે, કે ધારવું અહીં, આ એક ટોળું છે અમે એક સંગ્રહ કરવા માંગો છો કે જે નંબરો અસરકારક રીતે માહિતી બંધારણ અને શોધો. અમે સંપૂર્ણપણે સપ્તાહ રીવાઇન્ડ કરી શકો છો બે, એક એરે માં આ ફેંકવું અને બાઈનરી શોધ ઉપયોગ કરીને તેમને શોધો. વિભાજીત અને જીતી. અને હકીકતમાં તમે લખ્યું PSET3 દ્વિસંગી શોધ, જ્યાં તમે શોધો કાર્યક્રમ અમલમાં મૂકી. પરંતુ તમે શું ખબર. વધુ પ્રકારની છે આમ હોંશિયાર રસ્તો. તે થોડું વધુ છે આધુનિક અને તે કદાચ શા માટે આપણા પર બાઈનરી જોવા માટે પરવાનગી આપે શોધ તેથી ખૂબ ઝડપથી છે. પ્રથમ, ચાલો પરિચય દો એક વૃક્ષ ની કલ્પના. જે પણ છતાં વાસ્તવિકતા વૃક્ષો પ્રકારની કમ્પ્યુટર વિશ્વમાં, આ જેમ વધવા તેઓ પ્રકારની નીચામાં વધવા વિજ્ઞાન તમે હોય છે, જ્યાં કુટુંબ વૃક્ષ, જેવા તમારા દાદા દાદી અથવા મહાન દાદા દાદી અથવા whatnot ટોચ વડા અને પરિવાર Matriarch, માત્ર એક રુટ નોડ, નીચે કહેવાતા તેના બાળકો જે છે, જે નીચે તેના બાળકો છે, અથવા તેના વંશજો વધુ સામાન્ય. અને કોઈપણ અટકી કુટુંબ તળિયે વૃક્ષ હોવા ઉપરાંત કુટુંબ યુવાન, પણ માત્ર સામાન્ય હોઈ શકે છે વૃક્ષ પાંદડા કહેવામાં આવે છે. તેથી આ માત્ર એક ટોળું છે શબ્દો અને વ્યાખ્યાઓ કંઈક માટે કમ્પ્યુટર એક વૃક્ષ કહેવાય વિજ્ઞાન, પરિવાર વૃક્ષ જેવી જ. પરંતુ પારખુ અવતારોમાં છે વૃક્ષો, જે એક દ્વિસંગી શોધ વૃક્ષ કહેવાય છે. અને તમે કરી શકો છો પીંજવું કાઇન્ડ આ વસ્તુ નથી સિવાય છે. વેલ, તે કયા અર્થમાં બાઈનરી છે? જ્યાં બાઈનરી અહીં ક્યાંથી આવે છે? માફ કરશો? તે ખૂબ જ એક અથવા નથી. તે ગાંઠો દરેક કોઈ છે કે વધુ છે બે કરતાં વધુ બાળકો, આપણે અહીં જુઓ. સામાન્ય રીતે, એક વૃક્ષ અને તમારા માતા-પિતા અને દાદા દાદી ઘણા બાળકો હોય શકે છે અથવા grandkids તેઓ ખરેખર કરવા માંગો છો, અને તેથી દાખલા તરીકે ત્યાં અમે ત્રણ હોય કે જમણી બાજુ નોડ બંધ બાળકો, પરંતુ એક દ્વિસંગી વૃક્ષ, એક નોડ છે વધુમાં શૂન્ય, એક, બે કે ત્રણ બાળકો. અને તે એક સરસ મિલકત છે તે બે દ્વારા આવ્યાં છે, કારણ કે જો, અમે સમક્ષ રજુ કરવાનો પ્રયત્ન જઈ રહ્યાં છો થોડી લોગ આધાર વિચાર બે ક્રિયા અહીં આખરે પર જઈ રહી છે. તેથી અમે લઘુગુણકીય કંઈક છે. પરંતુ એક ક્ષણ કે પર વધુ. શોધ વૃક્ષ નંબરો છે કે જે થાય છે વ્યવસ્થા જેમ કે ડાબી બાળકની કિંમત રુટ કરતા વધારે છે. અને તેના અધિકાર બાળક છે રુટ કરતાં મોટા. બીજા શબ્દોમાં કહીએ તો, તમે કોઇ લેવા તો ગાંઠો, આ ચિત્ર માં વર્તુળો, અને તેની ડાબી પર દેખાય છે બાળક અને તેના અધિકાર બાળક, પ્રથમ, કરતાં ઓછી હોવી જોઈએ બીજા કરતાં વધારે પ્રયત્ન કરીશું. તેથી સેનીટી 55 તપાસો. તે બાળકને છોડી 33 છે. તે કરતાં ઓછી છે. 55, તેના અધિકાર બાળક 77 છે. તે કરતાં વધુ છે. અને તે ફરી યાદ આવવું વ્યાખ્યા છે. અમે તે દરેક એક તપાસ કરી શકે છે ગાંઠો અને પકડી શકે છે તે જ પેટર્ન. તેથી સરસ શું છે દ્વિસંગી શોધ વૃક્ષ છે, એક કે, અમે તેને અમલમાં મૂકી શકે છે એક સ્ટ્રક્ટ સાથે, માત્ર આ ગમે છે. અને અમે ફેંકવાની કરી રહ્યાં છો, તેમ છતાં તમારા પર માળખાં ઘણાં બધાં, તેઓ કંઈક છો સાહજિક હવે આસ્થાપૂર્વક. વાક્યરચના, હજુ પણ ખાતરી કરો કે માટે arcane છે પરંતુ આ નોડ સમાવિષ્ટો context-- અને અમે રાખવા શબ્દ નોડ ઉપયોગ કરીને, તે એક લંબચોરસ છે કે શું સ્ક્રીન અથવા એક વર્તુળ પર, તે માત્ર કેટલાક સામાન્ય કન્ટેનર છે એક જેવી વૃક્ષ આ કિસ્સામાં, અમે પૂર્ણાંક જરૂર છે, જોયું ગાંઠો દરેક અને પછી હું બે પોઇન્ટર પોઇન્ટ જરૂર ડાબી બાળક અને જમણી બાળક માટે, અનુક્રમે. કે તેથી અમે કેવી રીતે કરી શકે છે એક સ્ટ્રક્ટ કે અમલ. અને હું કેવી રીતે કોડ અમલ કરી શકે છે? વેલ, ઝડપી લેવા દો આ નાના ઉદાહરણ જુઓ. તે કાર્યલક્ષી, નથી પરંતુ હું કર્યું નકલ અને તે માળખું પેસ્ટ. અને જો બાઈનરી મારા કાર્ય શોધ વૃક્ષ, શોધ કહેવામાં આવે છે અને આ બે દલીલો લે છે, પૂર્ણાંક N અને નિર્દેશક વૃક્ષ નોડ છે, તેથી નિર્દેશક અથવા એક વૃક્ષ રુટ પર એક નિર્દેશક, હું કેવી રીતે N માટે શોધ વિશે જાઓ છો? વેલ, પ્રથમ, હું છું કારણ કે પોઇન્ટર સાથે વ્યવહાર, હું એક સેનીટી ચેક કરવા જઇ રહ્યો છું. વૃક્ષ સમકક્ષ નલ સમકક્ષ હોય, એન આ વૃક્ષ કે આ વૃક્ષ? તે હક, ન હોઈ શકે? હું નલ ભૂતકાળ છું તો, ત્યાં કશું જ નથી. હું કદાચ તેમજ માત્ર અકારણ ખોટા પાછા કહે છે. તમે મને કશું આપો તો હું ચોક્કસ નથી કરી શકો છો કોઈપણ નંબર એન શોધવા બીજું તેથી શું હું કદાચ હવે છો? હું સારી રીતે બીજું જો n એ કહેવું જાઉં છું વૃક્ષ નોડ છે ગમે કરતાં ઓછી હું એ કિંમત સોંપી દેવામાં કર્યું છે. બીજા શબ્દોમાં કહીએ તો, નંબર હું છું તો એન, માટે જોઈ, નોડ કરતાં ઓછી છે હું જોઈ રહ્યો છું કે. અને નોડ હું શોધી રહ્યો છું વૃક્ષ કહે છે અંતે, અને અગાઉના ઉદાહરણ પરથી યાદ નિર્દેશક કિંમત પર મેળવવા માટે, હું તીર સંકેત ઉપયોગ કરે છે. એન વૃક્ષ તીર કરતાં ઓછી હોય છે, તેથી જો એન, હું સરળ ડાબી જવા માંગો છો. હું કેવી રીતે છોડી રહ્યા છો વ્યક્ત નથી? આ છે, તો સ્પષ્ટ છે પ્રશ્ન માં ચિત્ર, અને હું પસાર કરવામાં આવ્યા છે સર્વોચ્ચ કે કે નીચે તરફ પોઇન્ટ તીર. તે મારા વૃક્ષ નિર્દેશક છે. હું વૃક્ષની રુટ નિર્દેશ કરતી છું. અને હું માટે કહે છે શોધી રહ્યો છું આપખુદ નંબર 44. છે તેના કરતા 44 ઓછી અથવા દેખીતી રીતે 55 કરતાં વધારે? તેથી તે કરતાં ઓછી છે. અને તેથી આ તો શરત લાગુ પડે છે. તેથી કલ્પનાત્મક રીતે, હું શું કરવા માંગો છો હું 44 શોધી રહ્યો છું, તો આગામી શોધ? અરે વાહ? બરાબર, હું કરવા માંગો છો ડાબી બાળક, શોધો અથવા આ ચિત્ર ડાબી પેટા વૃક્ષ. અને હકીકતમાં, મને મારફતે દો અહીં નીચે ચિત્ર માત્ર એક ક્ષણ માટે, કારણ કે હું આ બહાર ખંજવાળી શકતા નથી. હું 55 અહીં શરૂ કરવા માટે, અને જો મને ખબર છે કે આ કિંમત 44 છે હું શોધી રહ્યો છું ડાબી, તે પ્રકારની છે માં ફોન પુસ્તક જબરદસ્ત જેવા અડધા અથવા અડધા વૃક્ષ જબરદસ્ત. હું લાંબા સમય સુધી વિશે કાળજી હોય છે વૃક્ષ આ સમગ્ર અડધા. અને હજુ સુધી, જિજ્ઞાસાપૂર્વક દ્રષ્ટિએ માળખું, અહીં પર આ વસ્તુ 33 સાથે શરૂ થાય છે પોતે કે દ્વિસંગી શોધ વૃક્ષ છે. હું કારણ કે પહેલાં શબ્દ યાદ આવવું જણાવ્યું હતું કે ખરેખર આ માહિતી માળખું છે કે વ્યાખ્યા દ્વારા ફરી યાદ આવવું છે. તમે આ છે કે એક વૃક્ષ પડી શકે છે મોટા, પરંતુ તેના બાળકો દર એક નાના થોડી એક વૃક્ષ રજૂ કરે છે. તેના બદલે તે દાદા હોવા અથવા ગ્રાન્ડમા, હવે તે માત્ર Mom છે or-- હું Mom નથી કહેવું નથી કરી શકો છો અથવા પિતા, તે વિચિત્ર હશે. ત્યાં તેના બદલે બે બાળકો ભાઈ અને બહેન જેવી હશે. કુટુંબ વૃક્ષ એક નવી પેઢી. પરંતુ માળખાકીય, તે જ વિચાર છે. અને તે હું એક કાર્ય છે બહાર વળે જેની સાથે હું દ્વિસંગી શોધ શોધ કરી શકો છો વૃક્ષ. તે શોધ કહેવામાં આવે છે. હું વૃક્ષ તીર ડાબી n એ શોધવા એન કિંમત કરતાં વધારે બીજું તો કે હું હાલમાં છું. એક ક્ષણ પહેલા વાર્તા 55. એક હું કહેવાય કાર્ય છે શોધ કે હું માત્ર કરી શકો છો એન આ પસાર અને પુનરાવર્તિત શોધવા પેટા વૃક્ષ અને માત્ર વળતર ગમે તે જવાબ. બાકી હું અહીં કેટલાક અંતિમ આધાર કેસ મળી છે. અંતિમ કેસ શું છે? વૃક્ષ ક્યાં નલ છે. હું ક્યાં શોધી રહ્યો છું કિંમત છે તે કરતાં તે કરતાં ઓછી અથવા વધારે અથવા તે સમાન. અને હું સમાન કહી શકે સમાન છે, પરંતુ તાર્કિક તે માત્ર અહીં બીજું કહેતા કે સમકક્ષ. તેથી સાચા હું કંઈક શોધવા કેવી રીતે છે. તેથી આશા છે કે આ એક છે પણ વધુ આકર્ષક ઉદાહરણ મૂર્ખ સિગ્મા કાર્ય કરતાં અમે પાછા થોડા વ્યાખ્યાન કર્યું જ્યાં તે લૂપ વાપરવા માટે માત્ર સરળ હતું એક ના તમામ નંબરો ગણતરી માટે એ માહિતી બંધારણ સાથે અહીં એન પોતે પુનરાવર્તિત છે કે આપણે હવે વ્યાખ્યાયિત કરે છે અને પુનરાવર્તિત દોરવામાં જાતને વ્યક્ત કરવા માટે ક્ષમતા હોય છે કોડ પોતે ફરી યાદ આવવું છે છે. તેથી આ અહીં ચોક્કસ જ કોડ છે. તેથી અમે શું અન્ય સમસ્યાઓ હલ કરી શકો છો? દૂર જેથી ઝડપી પગલું માત્ર એક ક્ષણ માટે વૃક્ષો. અહીં છે, જર્મન ધ્વજ કહે છે. અને સ્પષ્ટ છે એક આ ધ્વજ પેટર્ન. ઘણાં બધાં છે વિશ્વમાં ફ્લેગ્સ કે દ્રષ્ટિએ આ તરીકે સરળ છે તેમના રંગો અને દાખલાની. પરંતુ આ એક તરીકે સંગ્રહાયેલ છે કે જે ધારવું .gif અથવા કોઈ JPEG, અથવા બીટમેપ, અથવા એક Ping, કોઈપણ ગ્રાફિકવાળા ફાઈલ બંધારણમાં જેની સાથે તમે પરિચિત છો અમે છો, જે કેટલાક pset4 સાથે રમે છે. આ સ્ટોર કરવા માટે યોગ્ય લાગતું નથી બ્લેક પિક્સેલ, બ્લેક પિક્સેલ, બ્લેક પિક્સેલ, ડોટ, ડોટ, કોઈ, એક સમગ્ર ટોળું પ્રથમ scanline માટે કાળા પિક્સેલ્સ, અથવા પંક્તિ, તો પછી સમગ્ર ટોળું એ જ, તો પછી સમગ્ર ટોળું પછી એ જ છે, અને લાલ પિક્સેલ્સ સમગ્ર ટોળું લાલ પિક્સેલ્સ, લાલ પિક્સેલ્સ, પછી સમગ્ર પીળા પીળા પિક્સેલ્સ ટોળું, અધિકાર? આવા બિનકાર્યક્ષમતા અહીં છે. કેવી રીતે તર્ક તમે કરશે જર્મન ધ્વજ સંકુચિત ફાઇલ તરીકે તેને અમલમાં તો શું? શું માહિતી અમે કરી શકો છો ક્રમમાં ડિસ્ક પર સંગ્રહ સંતાપ જેવા અમારા ફાઈલ માપ ઘટાડો એક કિલોબાઇટ, કંઈક કરવા માટે એક મેગાબાઇટ નાના? જેમાં નિરર્થકતા આવેલું અહીં સ્પષ્ટ કરવા? તમે શું કરી શકે છે? અરે વાહ? ચોક્કસ. શા માટે નથી કરતાં યાદ દરેક રફૂ પિક્સેલ રંગ માત્ર તમે pset4 કરી રહ્યાં છો બીટમેપ ફાઇલ ફોર્મેટ સાથે શા માટે તમે માત્ર પ્રતિનિધિત્વ નથી દાખલા તરીકે પિક્સેલ્સ leftmost સ્તંભ, બ્લેક પિક્સેલ્સ એક ટોળું, એક ટોળું લાલ અને પીળા, એક ટોળું અને પછી માત્ર કોઈક બેવડી વારંવાર વિચાર આ 100 વખત અથવા આ 1000 વખત પુનરાવર્તન? જ્યાં 100 કે 1000 છે માત્ર એક પૂર્ણાંક છે, જેથી તમે માત્ર એક જ નંબર સાથે દૂર વિચાર કરી શકો છો તેના બદલે સો અથવા હજારો વધારાના પીક્સલ. અને ખરેખર, કે અમે કેવી રીતે છે જર્મન ધ્વજ સંકુચિત કરી શકે છે. અને ફ્રેન્ચ ધ્વજ વિશે હવે શું? અમુક પ્રકારના અને થોડી માનસિક કસરત, જે ધ્વજ ડિસ્ક પર વધુ સંકુચિત થઈ શકે? જર્મન ધ્વજ અથવા ફ્રેન્ચ ધ્વજ, અમે તે અભિગમ લે છે તો શું? જર્મન ધ્વજ, કારણ કે ત્યાં વધુ આડી નિરર્થકતા. અને ડિઝાઇન દ્વારા, ઘણા ગ્રાફિકવાળા ફાઈલ બંધારણો ખરેખર તરીકે સ્કેન લાઇન્સ કામ નથી આડા. તેઓ કામ કરી શકે છે ઊભી, માત્ર માનવતા નિર્ણય કર્યો વર્ષ પહેલાં અમે પડશે સામાન્ય રીતે વસ્તુઓ પંક્તિ લાગે કૉલમ દ્વારા પંક્તિ બદલે કૉલમ દ્વારા. તેથી ખરેખર જો તમે હતા આ ફાઈલ જોવા માટે એક જર્મન ધ્વજ અને ફ્રેન્ચ કદ ધ્વજ, જેથી લાંબા ઠરાવ છે, કારણ કે એ જ, એ જ પહોળાઈ અને ઊંચાઈ, આ એક અહીં, મોટી હોઈ ચાલે છે કારણ કે તમે જાતે ત્રણ વખત પુનરાવર્તન છે. તમે વાદળી, વારંવાર સ્પષ્ટ કરવા માટે છે જાતે, સફેદ, લાલ, તમારી જાતને પુનરાવર્તન જાતે પુનરાવર્તન કરો. તમે ફક્ત જઈ શકો નહિં જમણી માર્ગ. અને એક કોરે, બનાવવા માટે સંકોચન સાફ આ છે, તો દરેક જગ્યાએ છે એક વિડીયો ચાર ફ્રેમ તમે એક ફિલ્મ કે યાદ શકે છે અથવા વિડિયો સામાન્ય રીતે છે સેકન્ડ પ્રતિ 29 અથવા 30 ફ્રેમ જેવા હોય છે. તે થોડો ફ્લિપ પુસ્તક જેવી છે, જ્યાં તમે માત્ર છબી, ઇમેજ, છબી, ઇમેજ જુઓ, છબી માત્ર સુપર ફાસ્ટ તેથી તે જેવી લાગે છે સ્ક્રીન પર અભિનેતાઓ ખસેડવાની છે. અહીં એક BUMBLE BEE પર ફૂલો એક ટોળું ટોચ. અને તે પ્રકારની હોઈ શકે છે પ્રથમ નજરમાં તે જોવા માટે મુશ્કેલ છે, ખસેડવાની આ જ વસ્તુ આ ફિલ્મ મધમાખી છે. શું સ્ટોર વિશે મૂક છે વિડિઓ વિસંકુચિત? તે વિડિયો સંગ્રહવા માટે કચરો પ્રકારની છે ચાર લગભગ સમાન છબીઓ કે માત્ર ત્યાં સુધી મધમાખી છે જ્યાં અલગ પડે છે. તમે ફેંકી દેવું કરી શકો છો સૌથી તે માહિતી અને માત્ર યાદ રાખો કે, હમણાં પૂરતું, પ્રથમ ફ્રેમ અને છેલ્લા ફ્રેમ, તમે કરેલા જો કી ફ્રેમ ક્યારેય, શબ્દ સાંભળ્યું અને માત્ર સ્ટોર આ મધમાખી છે કે જ્યાં મધ્યમ. અને તમે કરવાની જરૂર નથી , ગુલાબી સમાવ વાદળી, અને અને લીલા કિંમતો તેમજ. તેથી આ માત્ર તે જ કહે છે સંકોચન દરેક જગ્યાએ છે. તે અમે ઘણી વખત ઉપયોગ એક ટેકનિક છે આ દિવસોમાં મંજૂર માટે અથવા લે છે. પરંતુ તમે કેવી રીતે લખાણ સંકુચિત નથી? કેવી રીતે તમે લખાણ કોમ્પ્રેસ વિશે જાઓ છો? વેલ, આ અક્ષરો દરેક ASCII એક બાઈટ, અથવા આઠ બિટ્સ છે. અને તે પ્રકારના મૂક, અધિકાર છે? તમે કદાચ એક પ્રકાર છે, કારણ કે અને ઇ અને હું અને ઓ અને યુ ઘણો વધુ વખત W અથવા Q કે Z જેમ કરતાં, ભાષા પર આધાર રાખીને, જેમાં તમે ચોક્કસપણે લખી રહ્યાં. અને તેથી અમે શા માટે ઉપયોગ કરી રહ્યા છો દરેક અક્ષર માટે આઠ બિટ્સ, ઓછામાં ઓછા સહિત લોકપ્રિય અક્ષરો, અધિકાર? શા માટે ઓછા બિટ્સ ઉપયોગ ન આ સુપર લોકપ્રિય અક્ષરો, ઇ જેમ, વસ્તુઓ તમે ધારી પ્રથમ ફોર્ચ્યુન વ્હીલ માં, અને વધુ બિટ્સ ઉપયોગ ઓછા લોકપ્રિય અક્ષરો? શા માટે? અમે હમણાં જ જઈ રહ્યાં છો કારણ કે ઓછી વારંવાર ઉપયોગ કરે છે. વેલ, તે ત્યાં છે કે બહાર વળે આ કરવા માટે કરવામાં પ્રયાસો કરવામાં આવી છે. અને તમે એક ગ્રેડ યાદ તો શાળા અથવા હાઇ સ્કૂલ, મોર્સ કોડ. મોર્સ કોડ બિંદુઓ છે અને ડેશો હોઈ શકે છે એક વાયર તરીકે સાથે ફેલાય લાગે છે કે અમુક પ્રકારના સંકેતો. પરંતુ મોર્સ કોડ સુપર સ્વચ્છ છે. તે એક દ્વિસંગી સિસ્ટમ પ્રકારની છે કે તમે બિંદુઓ અથવા ડેશો છે. પરંતુ તમે, ઉદાહરણ તરીકે, બે બિંદુઓ જુઓ. અથવા તમે ઓપરેટર પાછા લાગે છે કે જો , જે બીપ, બીપ, બીપ જેમ જાય બીપ, થોડી ટ્રિગર હિટ કે સિગ્નલ પ્રસારણ જો તમે, પ્રાપ્તકર્તા, બે મેળવે બિંદુઓ, શું સંદેશો તમને પ્રાપ્ત થઈ છે? સંપૂર્ણપણે મનસ્વી. હું? હું? અથવા શું about-- અથવા હું? કદાચ તે માત્ર બે ઇ અધિકાર હતો? તેથી આ સમસ્યા છે મોર્સ સાથે decodability ના કોડ છે, જેમાં જ્યાં સુધી તમે સંદેશ મોકલવા વ્યક્તિ ખરેખર જેથી તમે સૉર્ટ કરી શકો છો વિરામ લે જુઓ અથવા અક્ષરો વચ્ચે અવકાશ સાંભળવા, તે માત્ર પૂરતી નથી zeros અને શૈલીઓનો એક સ્ટ્રીમ મોકલો, અથવા બિંદુઓ અને ડેશો, સંદિગ્ધતા છે, કારણ કે. ઇ એક ટપકું છે, તેથી જો તમે બે બિંદુઓ જોવા અથવા બે બિંદુઓ સાંભળવા, કદાચ તે બે ઇ છે અથવા કદાચ તે એક આઇ છે તેથી અમે એક છે કે જે સિસ્ટમ જરૂર તે કરતાં વધુ હોંશિયાર થોડું. તેથી એક માણસ નામ આપવામાં આવ્યું હફમેનના વર્ષ પહેલા બરાબર આ સાથે આવ્યા હતા. તેથી અમે ફક્ત જઈ રહ્યાં છો એક ઝડપી નજરથી લેવા માટે કેવી રીતે વૃક્ષો આ સંગત છે. આ અમુક ધારો કે તમે મોકલવા માંગો છો મૂર્ખ સંદેશ, માત્ર એક, બી બનેલા સી ડી 'ઓ અને ઈ ની, પરંતુ નિરર્થકતા ઘણો અહીં છે. તે ઇંગલિશ ન રાખવાનો છે. તે એનક્રિપ્ટ નથી. તે માત્ર એક મૂર્ખ સંદેશ છે પુનરાવર્તન ઘણાં બધાં સાથે. તમે ખરેખર બહાર ગણતરી તેથી જો તમામ એ, બી, સી, ડી 'ઓ, અને ઇ, અહીં છે આવૃત્તિ. અક્ષરો 20% છે એ અક્ષરો 45% ઇ, અને અન્ય ત્રણ ફ્રીક્વન્સીઝ છે. અમે જાતે ત્યાં ગણાશે અને માત્ર ગણિત હતી. તેથી તે તારણ આપે છે કે હફમેનના, કેટલાક સમય પહેલાં, તમે જાણો છો, કે જે સમજાયું શું હું મકાન શરૂ કરો, તો એક વૃક્ષ, અથવા વૃક્ષો જંગલ, જો તમે કરશે, નીચે પ્રમાણે, હું નીચેના કરી શકો છો. હું દરેક નોડ આપવા જઈ રહ્યો છું હું વિશે કાળજી કે અક્ષરો અને હું સ્ટોર કરવા જઇ રહ્યો છું કે નોડ ની અંદર ફ્લોટિંગ બિંદુ તરીકે ફ્રીક્વન્સીઝ કિંમત, અથવા તમે, પણ, એક એન તે ઉપયોગ કરી શકે છે પરંતુ અમે હમણાં જ અહીં એક ફ્લોટ ઉપયોગ કરશો. અને અલ્ગોરિધમનો કે તે તમને છે સૂચિત એક નોડ આ જંગલ લાગી વૃક્ષો, જેથી સુપર ટૂંકા વૃક્ષો, અને તમે તેમની સાથે જોડાઈ શરૂ નવા જૂથો, નવી માતાપિતા, જો તમે કરશે. અને તમે પસંદ કરીને આ કરવા એક સમયે બે નાના ફ્રીક્વન્સીઝ. તેથી હું 10% અને 10% હતો. હું એક નવા નોડ બનાવવા. અને હું નવી નોડ 20% કૉલ કરો. જે બે ગાંઠો હું આગામી ભેગા? તે થોડો અસ્પષ્ટ છે. તેથી કેટલાક ખૂણે કિસ્સાઓમાં છે ગણાવે છે, પરંતુ ખૂબ વસ્તુઓ રાખવા માટે, હું 20% પસંદ કરવા માટે જઇ રહ્યો છું - હું હવે બાળકો અવગણો. હું 20% પસંદ કરવા માટે જઇ રહ્યો છું અને 15% અને બે નવા ધાર દોરે છે. અને હવે જે બે ગાંઠો હું તાર્કિક ભેગા કરી શકું? તમામ બાળકો, બધા અવગણો પૌત્રો, માત્ર મૂળ જુઓ હવે. જે બે ગાંઠો હું મળીને ગૂંચ નથી? બિંદુ બે અને 0.35. તેથી મને બે નવા ધાર દોરવા દો. અને પછી હું માત્ર એક ડાબી મળ્યો છે. તેથી અહીં એક વૃક્ષ છે. અને તે ઇરાદાપૂર્વક દોરવામાં આવ્યું છે પ્રકારની ખૂબ જોવા માટે, પરંતુ ધાર છે કે નોટિસ પણ શૂન્ય અને એક લેબલ કરવામાં આવી છે. તેથી ડાબી ધાર તમામ શૂન્ય છે આપખુદ, પરંતુ સતત. બધા અધિકાર ધાર રાશિઓ છે. અને તેથી હોફમેન છે સૂચિત શું તમે બી પ્રતિનિધિત્વ કરવા માંગો છો, તો તરીકે નંબર 66 પ્રતિનિધિત્વ કરતાં આઠ સમગ્ર બીટ્સ છે, જે એક ASCII, તમે શું, માત્ર સ્ટોર ખબર પેટર્ન શૂન્ય, શૂન્ય, શૂન્ય, શૂન્ય કે પાથ છે, કારણ કે મારા વૃક્ષ પરથી, શ્રી હફમેનના વૃક્ષ, રુટ ના પર્ણ છે. તમે સ્ટોર કરવા માંગો છો ઇ, તેનાથી વિપરીત, નથી એક ઇ પ્રતિનિધિત્વ કરે છે આઠ બિટ્સ મોકલી તેના બદલે, બીટ્સ શું પેટર્ન મોકલી? એક. અને આ છે તે વિશે સરસ શું છે કે ઇ સૌથી લોકપ્રિય પત્ર છે, અને તમે ઉપયોગ કરી રહ્યાં છો તે માટે ટૂંકી કોડ. આગામી સૌથી લોકપ્રિય પત્ર તેને જેવી લાગે છે એ હતો અને તેથી કેટલા બિટ્સ તેમણે તે માટે ઉપયોગ પ્રસ્તાવ હતી? શૂન્ય, એક. અને તે અમલમાં છે કારણ કે આ વૃક્ષ, હવે માટે મને ત્યાં નિયત દો મોર્સ તરીકે કોઈ સંદિગ્ધતા કોડ છે, તમામ કારણ કે તમે વિશે કાળજી અક્ષરો આ ધાર ઓવરને અંતે છે. તેથી તે ફક્ત એક છે એક વૃક્ષ અરજી. આ is-- અને હું તરંગ પડશે આ મારા હાથ તમે કેવી રીતે એક સી માળખું તરીકે આ અમલ કરી શકે છે. અમે હમણાં જ ભેગા કરવાની જરૂર છે એક પ્રતીક છે, ઘરનાં પરચૂરણ કામો જેમ, અને આવર્તન ડાબી અને જમણી. પરંતુ બે જોવા દો અંતિમ ઉદાહરણો છે કે જે તમને મળશે પછી સાથે તદ્દન પરિચિત વિચાર સમસ્યા ક્વિઝ શૂન્ય પાંચ સુયોજિત કરો. તેથી આ માહિતી માળખું છે હેશ કોષ્ટક તરીકે ઓળખાય છે. અને હેશ ટેબલ પ્રકારની છે તે ડોલથી હોય છે કે ઠંડી. અને ચાર ડોલથી ત્યાં ધારવું અહીં, માત્ર ચાર ખાલી જગ્યાઓ. અહીં અહીં છે કાર્ડો એક ડેક છે, અને ક્લબ, પ્રારંભિક, ક્લબ, હીરા, ક્લબ, હીરા, ક્લબ, હીરા, clubs-- તેથી આ રેન્ડમ છે. હાર્ટ્સ, hearts-- તેથી હું છું અહીં ઇનપુટ્સ તમામ bucketizing. અને હેશ ટેબલ જરૂરિયાતો તમારા ઈનપુટ જોવા માટે, અને પછી ચોક્કસ માં મૂકી તમે જુઓ શું પર આધારિત મૂકો. અલ્ગોરિધમ છે. અને હું એક સુપર ઉપયોગ કરવામાં આવ્યો હતો સરળ દ્રશ્ય અલ્ગોરિધમનો. જે ખૂબ સખત ભાગ હતો ચિત્રો શું હતા યાદ. અને પછી ચાર કુલ વસ્તુઓ છે. હવે રન ટાઇમ સ્ટેકનું, વધતી હતી, જે અહીં એક ઇરાદાપૂર્વકની ડિઝાઇન બાબત છે. પરંતુ હું બીજું શું કરી શકે? તેથી ખરેખર અહીં અમે હોય છે ઓલ્ડ સ્કૂલ પરીક્ષા પુસ્તકો ટોળું. એક ટોળું ધારો કે વિદ્યાર્થીઓ નામો અહીં પર હોય છે. અહીં એક મોટી હેશ ટેબલ છે. તેના બદલે ચાર ડોલથી, હું 26 કહેવું દેવા છે. અને અમે 26 ઉધાર જવા માંગો છો ન હતી બહાર [વસ્તુઓ? Annenberg?], જેથી અહીં પ્રતિનિધિત્વ કરે છે પાંચ છે એક ઝેડ મારફતે અને જો હું , જેનું નામ એક સાથે શરૂ થાય છે એક વિદ્યાર્થી જોવા હું ત્યાં તેના અથવા તેણીના ક્વિઝ મૂકી જાઉં છું. કોઈને C સાથે શરૂ થાય છે, ત્યાં સુધી, A-- ખરેખર, તે કરવા માટે નહિં માંગો હતી. બી અહીં જાય છે. તેથી હું મળી છે અને બી અને સી અને હવે અહીં અન્ય એક વિદ્યાર્થી. પરંતુ આ હેશ ટેબલ છે, તો એક એરે સાથે અમલ, હું પ્રકારની ખરાબ છું આ બિંદુએ, અધિકાર? હું પ્રકારની આ ક્યાંક મુકવાની જરૂર છે. તેથી હું આ હલ કરી શકો છો એક રસ્તો તમામ છે, અધિકાર સી વ્યસ્ત છે, બી વ્યસ્ત છે, વ્યસ્ત છે. હું તેથી ડી તેને મૂકવા જાઉં છું પ્રથમ, હું રેન્ડમ ઝટપટ ઍક્સેસ છે વિદ્યાર્થીઓ માટે ડોલથી દરેક. પરંતુ હવે તે પ્રકારની હસ્તાંતરિત છે કંઈક રેખીય માં, હું કોઈને માટે શોધ કરવા માંગો છો, કારણ કે જો જેની નામ સાથે શરૂ થાય છે, હું અહીં તપાસો. પરંતુ આ એક ન હોય તો હું શોધી રહ્યો છું વિદ્યાર્થી, હું પ્રકારની ચકાસણી શરૂ કરવા માટે હોય ડોલથી, હું શું કારણ કે ના સરખી સૉર્ટ હતી આ માહિતી માળખું તપાસ. ફક્ત જોવા કહેતા એક મૂર્ખ માર્ગ પહેલી ઉપલ્બધ ઉદઘાટન માટે, અને, તેથી વાત કરવા માટે, એક યોજના બી તરીકે મૂકી અથવા આ કિસ્સામાં યોજના ડી, કિંમત તેના બદલે તે સ્થાન છે. આ સૂચવે છે કે તમે છે તો માત્ર જેથી છે 26 સ્થળો અને વિદ્યાર્થીઓ મળી નામ Q કે Z, અથવા કંઈક સાથે કે, ઓછામાં ઓછા તમે જગ્યા ઉપયોગ કરી રહ્યાં છો. પરંતુ અમે પહેલેથી જ વધુ જોવા મળે છે અહીં હોંશિયાર ઉકેલો, અધિકાર? તમે તેના બદલે શું કરશો તમે અથડામણ હોય તો શું? બે લોકો હોય તો આ નામ શું કરશે એક સ્માર્ટ અથવા વધુ કરવામાં આવી છે માત્ર કરતાં સાહજિક ઉકેલ ડી હશે તેવું માનવામાં આવે છે જ્યાં એક મૂકે? મેં હમણાં જ કેમ ન જાય તો બહાર [? Annenberg?] malloc છે, અન્ય નોડ જેમ તે મૂકી અહીં, અને પછી અહીં એક વિદ્યાર્થી કે મૂકો. હું અનિવાર્યપણે છે કે જેથી એક એરે અમુક પ્રકારની છે, અથવા આપણે છો તરીકે કદાચ વધુ સુંદર એક કડી થયેલ યાદી જોવા માટે શરૂ થાય છે. અને તેથી એક હેશ કોષ્ટક માળખું છે કે, ફક્ત આ જેવી લાગી શકે છે પરંતુ વધુ હોશિયારીથી, તમે કંઈક કહેવાય અલગ સાંકળ જેમાં હેશ ટેબલ તદ્દન ખાલી એક એરે દરેક છે જેની તત્વો નંબર નથી, એક કડી થયેલ યાદી પોતે છે. તમે સુપર ઝડપી ઍક્સેસ વિચાર કરો કે જેથી જ્યાં તમારી કિંમત હેશ નક્કી. મોટા ભાગના કાર્ડ ઉદાહરણ સાથે જેમ, હું સુપર ઝડપી નિર્ણયો કરી હતી. હાર્ટ્સ હીરા અહીં જાય છે, અહીં જાય છે. અહીં જ, અહીં જાય છે, ડી બી અહીં જાય છે, અહીં જાય છે. તેથી સુપર ઝડપી દેખાવ અપ્સ, અને જો તમે એક કેસ માં ચલાવવા માટે થાય છે જ્યાં તમે પુરો અથડામણમાં બે એ જ નામ સાથે લોકો, સારી પછી તમે માત્ર તેમને એકસાથે લિંક શરૂ કરો. અને કદાચ તમે તેમને સૉર્ટ રાખવા મૂળાક્ષરોની, કદાચ તમે નથી. પરંતુ ઓછામાં ઓછા હવે અમે dynamism છે. તેથી એક બાજુ પર અમે સુપર ફાસ્ટ છે સતત સમય, અને રેખીય સમય કાઇન્ડ આ કડી થયેલ યાદીઓ, તો સામેલ થોડો લાંબો વિચાર કરવાનું શરૂ કરો. તેથી એક અવિવેકી આ પ્રકારની, પહેલા geeky મજાક વર્ષ. આ CS50 હેક એક Thon પર, વિદ્યાર્થીઓ ચેક ત્યારે, કેટલાક ટીએફ અથવા CA દર વર્ષે વિચારે છે તે મૂકવામાં રમૂજી છે આ જેમ એક નિશાની છે, જ્યાં તે માત્ર તમારું નામ એક સાથે શરૂ થાય છે, તો એનો અર્થ એ થાય, આ માર્ગ પર જાઓ. તમારું નામ શરૂ થાય છે બી સાથે છે આ બરાબર જાય છે, તે કદાચ પાછળથી સત્ર માં રમૂજી છે. પરંતુ બીજા છે પણ, આ કરી માર્ગ. પાછા કે આવવું. તેથી આ માળખું છે. અને આ અમારા છેલ્લા છે આજે માળખું, જે એક trie કહેવાય કંઈક છે. કેટલાક કારણોસર ટૂંકા હોય છે, જેમાં ટી-આર-I-ઇ, પુનઃપ્રાપ્તિ માટે છે, પરંતુ તે trie કહેવાય છે. તેથી એક trie અન્ય રસપ્રદ છે આ વિચારો ઘણો મિશ્રણ. તે અમે પહેલાં જોઈ કર્યું, જે એક વૃક્ષ, છે. તે બાઈનરી શોધ વૃક્ષ નથી. તે બાળકો કોઈપણ નંબર સાથે એક વૃક્ષ પરંતુ એક trie બાળકો દરેક ઝાકઝમાળ છે. કદ ઝાકઝમાળ, 26 અથવા કદાચ 27 કહે છે તમે hyphenated નામો આધાર માંગો છો, તો અથવા લોકોના નામો માં apostrophes. અને તેથી આ એક માહિતી માળખું છે. અને તમે ટોચ પરથી જોવા હોય તો નીચે, ગમે તો છે ત્યાં ટોચ નોડ, એમ જોવા ત્યાં leftmost વસ્તુ તરફ ઇશારો, જે પછી એક, એક્સ, ડબલ્યુ, ઇ, એલ, એલ આ છે માત્ર એ માહિતી બંધારણ છે કે આપખુદ લોકોના નામો સ્ટોર કરે છે. અને મેક્સવેલ માત્ર અનુસરીને સંગ્રહિત થાય છે એરે એરે એરે એક પાથ. એક trie છે વિશે પણ સુંદર શું છે , કે એક કડી થયેલ યાદી જ્યારે અને તે પણ ઝાકઝમાળ, અમે ક્યારેય મેળવેલ કરેલા શ્રેષ્ઠ છે રેખીય સમય અથવા લઘુગુણકીય સમય શોધી કોઈને. એક trie આ માહિતી માળખું, તો મારી માહિતી માળખું એક નામ ધરાવે છે અને હું મેક્સવેલ શોધી રહ્યો છું, હું છું ખૂબ ઝડપથી તેને શોધવા માટે જઈ રહી છે. હું માત્ર એમ એ એક્સ-W-ઇ એલ એલ માટે જુઓ. તો આ માહિતી માળખું, તેનાથી વિપરીત, એક હોય તો એન, એક મિલિયન છે જો આ માહિતી માળખામાં મિલિયન નામો, મેક્સવેલ હજુ હોઈ ચાલે છે શોધાયેલ માત્ર એમ એ એક્સ-W-ઇ એલ એલ પછી પગલાંઓ. અને David-- ડી એ વી આઇ ડી પગલાંઓ. અન્ય શબ્દોમાં, નિર્માણ દ્વારા છે કે એ માહિતી બંધારણ મળી આ એરે તમામ, જે તમામ પોતાને રેન્ડમ એક્સેસ આધાર હું લોકો ઉપર જોઈ શરૂ કરી શકો છો કે સમય એક જથ્થો મદદથી નામ નથી સંખ્યાના પ્રમાણમાં આ માહિતી માળખું વસ્તુઓ, જેવા મિલિયન હાલની નામો. તેને શોધવા માટે મને લાગે છે સમય જથ્થો એમ એક-X-W-ઇ એલ એલ આ માહિતી માળખું છે પ્રમાણસર ન કરવા માટે આ માહિતી માળખું કદ, પરંતુ નામ લંબાઈ છે. અને વાસ્તવિકતાથી નામો અમે શોધી રહ્યાં છો ક્યારેય લાંબા ક્રેઝી હોઈ ચાલે છે. કદાચ કોઈને 10 અક્ષર છે 20 અક્ષર નામ નામ. તે હક, ચોક્કસપણે મર્યાદિત છે? પૃથ્વી પર માનવ છે જે સૌથી લાંબો શક્ય નામ છે, પરંતુ તે નામ સતત છે કિંમત લંબાઈ, અધિકાર? તે કોઇ પણ અર્થમાં અલગ અલગ નથી. તેથી આ રીતે, અમે કર્યું એ માહિતી બંધારણ પ્રાપ્ત કે સતત સમય દેખાવ અપ છે. તે પગલાંઓની સંખ્યા લેવા નથી ઇનપુટ લંબાઈ પર આધાર રાખીને, નામ નથી, પરંતુ નંબર આ માહિતી માળખું છે. અમે નામો સંખ્યા બમણી તેથી જો એક અબજ અબજ બે થી પછીના વર્ષે, શોધવી મેક્સવેલ લાગી રહ્યું છે સાત પગલાં ચોક્કસ જ નંબર તેને શોધવા માટે. અને તેથી અમે પ્રાપ્ત હોય તેમ લાગે છે સમય ચાલી અમારી પવિત્ર ગ્રેઇલ. તેથી ઝડપી જાહેરાત એક દંપતિ. ક્વિઝ શૂન્ય રહ્યું છે. આ કોર્સ વેબસાઇટ પર પર વધુ દિવસ તો આગલા બે નહીં. માતાનો સોમવાર તે રજા છે lecture-- અહીં હાર્વર્ડ ખાતે સોમવારે. તે ન્યૂ હેવન માં નથી તેથી અમે વર્ગ લઇ રહ્યા છીએ સોમવારે વ્યાખ્યાન માટે ન્યૂ હેવન. બધું ફિલ્માંકન થશે અને, સામાન્ય તરીકે લાઇવ સ્ટ્રીમ પરંતુ આજે અંત દો 30 બીજા ક્લિપ સાથે કહેવાતા "ઊંડા વિચારો" Daven Farnham દ્વારા જે શનિવારે દ્વારા ગયા વર્ષે પ્રેરણા આપી હતી નાઇટ લાઇવ ના "ઊંડા વિચારો" જેક હેન્ડી દ્વારા જે હવે અર્થમાં બનાવવા જોઈએ. ફિલ્મ: અને હવે, "ડીપ Daven Farnham દ્વારા વિચારો ". હેશ ટેબલ. 1 વક્તા: બધા હક છે, કે હવે તે છે. અમે આગામી સપ્તાહે તમે જોશો. ડો: ક્રિયા જોવા માટે. તેથી આપણે હમણાં કે પર એક નજર કરીએ. અહીં, અમે એક ક્રમમાંગોઠવાયેલનથી એરે હોય છે. IAN: ડો, તમે આગળ અને પુનઃશરૂ જઈ શકે છે માત્ર એક બીજા માટે આ, કૃપા કરીને. બધા હક છે, કેમેરા, જેથી રોલિંગ છે ક્રિયા તમે ડો, તૈયાર છો ત્યારે, બરાબર? ડો: બધા હક છે, તેથી અમે શું અહીં છે એક ક્રમમાંગોઠવાયેલનથી એરે છે. અને હું તત્વો બધા રંગ ધરાવતાં કર્યું તે હકીકત છે, તે સૂચવવા માટે લાલ, ક્રમમાંગોઠવાયેલનથી. તેથી પ્રથમ વસ્તુ અમે નથી કે યાદ અમે એરે ડાબી અડધા સૉર્ટ છે. પછી અમે અધિકાર સૉર્ટ એરે અડધા. યા-હા, Ya શબ્દકોશ હા, Ya શબ્દકોશ હા, અમે તેમને મર્જ. અને અમે સંપૂર્ણપણે છટણી એરે હોય છે. તેથી તે કામ કરે છે મર્જ સૉર્ટ કેવી રીતે. IAN: થોભો, થોભો, થોભો, કટ, કટ, કટ કાપી. ડો, તમે માત્ર Ya શબ્દકોશ દા કરી શકતા નથી, યા-હા, Ya શબ્દકોશ દા મર્જ સૉર્ટ મારફતે તમારા રીતે. ડો: હું માત્ર હતી. તે સરસ છે. અમે જવા માટે સારા છો. આપણે માત્ર રોલિંગ રાખવા દો. તેથી કોઈપણ રીતે, IAN: તમે તે સમજાવવા માટે હોય છે તે વધુ સંપૂર્ણપણે કે કરતાં. કે જે હમણાં જ પર્યાપ્ત નથી. ડો: ઇયાન, અમે નથી એક પર પાછા જાઓ જરૂર છે. તે સરસ છે. તેથી કોઈપણ રીતે, અમે મર્જ સાથે ચાલુ રહેશે તો ઇયાન, અમે ફિલ્માંકન મધ્યમાં છો. IAN: મને ખબર છે. અને અમે હમણાં જ Ya શબ્દકોશ દા કરી શકતા નથી, યા-હા, સમગ્ર પ્રક્રિયા દ્વારા Ya શબ્દકોશ દા. તમે કેવી રીતે સમજાવવા માટે હોય બે બાજુઓ મળીને મર્જ કરો. ડો પરંતુ અમે પહેલાથી જ કર્યું છે સમજાવી કેવી રીતે બે sides-- IAN: તમે માત્ર બતાવ્યા પ્રમાણે કર્યું તેમને મર્જ એરે. ડો: તેઓ પ્રક્રિયા ખબર. તેઓ દંડ છો. અમે તે પર દસ વખત ગયા છો. IAN: તમે માત્ર તે પર અધિકાર છૂટી. અમે એક પાછા જઈ રહ્યાં છો, તમે તે ઉપર તમે Ya શબ્દકોશ હા, Ya શબ્દકોશ દા કરી શકતા નથી. પાછા એક અધિકાર. ડો: હું પાછા જાઓ હોય સ્લાઇડ્સ તમામ મારફતે? મારા પ્રભુ. તે છઠ્ઠી વખત, ઇયાન જેવું છે. તે સરસ છે. IAN: બધા અધિકાર. તમે તૈયાર છો? ગ્રેટ. ક્રિયા.