ડેવિડ જે MALAN: અધિકાર છે. સૌપ્રથમ તેથી સ્વાગત એક ક્વિઝ માટે CS50 postmortem. અમે ઉદ્ઘાટન લેતો આ પરંપરા આ વર્ષે. અને આ તક હશે આ લઈ જવામાં ક્વિઝ ઉકેલો. અને અમે વેગ અથવા આધારિત ધીમી પડશે અહીં તે વ્યાજ પર. તમે કારણ કે તમે કદાચ અહીં છો તમે કરી શકે છે કેવી રીતે રસ અથવા કેટલાક જવાબ આપ્યો છે કરીશું આ સમસ્યાઓ. તેથી શા માટે આપણે એક નજર નથી પ્રથમ આ વિભાગમાં? તેથી શબ્દમાળાઓ કરો. આ તમને ત્રણ અલગ અલગ આવૃત્તિઓ આપ્યો હતું કે એક કાર્યક્રમ છે, આખરે, વપરાશકર્તા માંથી શબ્દમાળા મેળવવા માટે થતો હતો. તે હતી કે ન હતી નક્કી કરવા માટે તમારા માટે છોડી દીધી હતી. અને અમે પ્રશ્ન 0 માં પૂછવામાં આવૃત્તિ 1 છે કે ધારો સંકલિત અને ચલાવવામાં. શા માટે આ કાર્યક્રમ segfault શકે? પ્રથમ નજરમાં, કોઈ સૂચનો શા માટે? અરે વાહ. પ્રેક્ષક: મને આ જોઈને યાદ આ જોઈ એક અગાઉના ઉદાહરણ ઘરનાં પરચૂરણ કામો * ઓ અને એ ના સ્કેન જોઈ અને તે એક નિર્દેશક, તે કેવી રીતે કારણ કે જોયા તમે સ્કેન તે શું અસર પડી છે? તે ઓ અથવા એ સરનામું છે? ડેવિડ જે MALAN: બરાબર. સારી. તેથી આખરે, કોઈ પણ સમસ્યા સ્ત્રોત કદાચ ઘટાડવા રહ્યું છે કે ચલ ઓ છે. અને તે ખરેખર એક ચલ છે. કે ચલની માહિતી પ્રકાર છે ઘરનાં પરચૂરણ કામો *, જે તે બનશે અર્થ એ થાય એક અક્ષર ની સરનામા છે. અને તેમાં સમજ રહે છે. તે ની સરનામા સમાવે બનશે વધુ સામાન્ય રીતે, એક અક્ષર અથવા, માં પ્રથમ અક્ષર ની આંકડાના અક્ષરો સંપૂર્ણ બ્લોક. પરંતુ કેચ છે કે સ્કેન એ હેતુ માં જીવન, એક સરનામું આપવામાં આવે છે અને આપેલ હોય બંધારણમાં કોડ છે,% ના જેવું, વાંચી ના ભાગ માં શબ્દમાળા તે સરનામા પર મેમરી. પરંતુ કોઇ સમાન સાઇન પહેલાં કારણ કે ત્યાં પ્રથમ પર અર્ધવિરામ કોડ ઓફ લાઇન, અમે ખરેખર નથી કારણ કે સાથે કોઈ મેમરી ફાળવી malloc છે, તે ન હતી કારણ કે ખરેખર કેટલાક કદ ઝાકઝમાળ, બધા ફાળવવા તમે કરી રહ્યાં છો તો વપરાશકર્તાની વાંચી છે કેટલાક સંપૂર્ણ માં કિબોર્ડ ઇનપુટ કચરો કિંમત, જે મૂળભૂત રીતે એ છે. તેથી મતભેદ તમે segfault રહ્યા છીએ રહ્યા હોય તે સરનામા જ ન થાય તમે કરી શકો છો કે જે નીચેની કોડ છે, હકીકતમાં, પર લખો. ફાળવી નથી જેથી ખરાબ ત્યાં તમારી મેમરી. તેથી પ્રશ્ન 1, અમે કહ્યું, 2 સંસ્કરણ છે કે ધારો સંકલિત અને ચલાવવામાં. શા માટે આ કાર્યક્રમ segfault શકે? તેથી આ એક ઓછા બગડેલ છે. અને માત્ર એક ખરેખર છે સ્પષ્ટ રીતે જ્યાં તમે કરી શકો છો અહીં એક segfault કરે છે. અને આ વિષયોનું છે. અમે મેમરીમાં સી ઉપયોગ કરી રહ્યાં છો કોઈપણ સમયે, શું તમે segfault પ્રેરિત કરી શકે 2 સંસ્કરણ સાથે? પ્રેક્ષક: તમે કે ઇનપુટ ઉપયોગ કરો છો 49 કરતાં લાંબા સમય સુધી છે કે શબ્દમાળા અક્ષરો. ડેવિડ જે MALAN: ચોક્કસ. તમે કંઈક નક્કી લંબાઈ જોવા કોઈપણ સમયે તે એક એરે માટે આવે છે, તમારા રડાર આ કરી શકે છે બંધ થાય છે સમસ્યાવાળા તમે ચકાસી રહી નથી કરી રહ્યાં છો એક એરે સીમાઓ. અને તે અહીં સમસ્યા છે. અમે હજુ પણ છે scanf ઉપયોગ કરી રહ્યાં છો. અમે હજી પણ પ્રયાસ એટલે કે,% એ ઉપયોગ કરી રહ્યાં છો આ વપરાશકર્તા માંથી શબ્દમાળા વાંચવા માટે. એટલે કે, જે, એ વંચાય કરી રહ્યું છે આ બિંદુએ, અસરકારક છે મેમરી એક ભાગ સરનામું અથવા તેને સમકક્ષ છે. તે એરે નામ છે મેમરી અક્ષરો. પરંતુ બરાબર છે, કે જે તમે શબ્દમાળા વાંચી જો કે 49 અક્ષરો, 49 કરતાં લાંબા સમય સુધી છે તમે બેકસ્લેશ માટે જગ્યા જરૂર છે 0, તમે ઓવરફ્લો રહ્યા છીએ કે બફર. અને જો તમે નસીબદાર વિચાર અને કરી શકો છો એક 51 મી પાત્ર, 52 મા, 53 મા લખો. પરંતુ અમુક બિંદુએ, એ OS કહેવું રહ્યું છે, નં. આ ચોક્કસપણે મેમરી નથી તમે સ્પર્શ મળે રહ્યા છો. અને કાર્યક્રમ segfault રહ્યું છે. તેથી, આ અન્વેષણોને કોઇ પ્રયત્ન કરીશું તમે ચોક્કસ લંબાઈ મળી છે સમય, તમારી પાસે ખાતરી કરો કે તમે લંબાઈ ચકાસણી કરી રહ્યા છીએ બનાવવા માટે તે તમને પ્રયાસ કરી રહ્યા છો ગમે તેને વાંચવા માટે. પ્રેક્ષક: તેથી કે, તમે કરી શકે ઉકેલવા માટે ખરેખર ચકાસણી એક નિવેદનમાં કરી છે લંબાઈ વધારે હોય છે કરતાં અથવા કરતાં ઓછી? ડેવિડ જે MALAN: ચોક્કસ. તમે માત્ર એક શરત છે કહે છે, જો કે - અથવા બદલે તમે જરૂરી ખબર નથી અગાઉથી કેટલા અક્ષરો વપરાશકર્તા, લખો રહ્યું છે, કારણ કે તમે ચિકન અને ઇંડા છે. તમે scanf સાથે તેમાંથી વાંચે છે નથી ત્યાં સુધી તમે લાંબા તે કેવી રીતે બહાર આકૃતિ કરી શકો છો. પરંતુ તે સમયે, તે ખૂબ અંતમાં છે જો તમે પહેલાથી જ તેના પર વાંચ્યા છે, કારણ કે મેમરી કેટલાક બ્લોક. એક અલગ તરીકે, CS50 પુસ્તકાલય કરી રહ્યા છે જેથી આ મુદ્દાને એકસાથે, સ્મૃતિ fgetc ઉપયોગ કરીને. અને તે એક સમયે એક અક્ષર વાંચે સંકેત toeing જાણીને સાથે તમે તે એક અક્ષર તો ઓવરફ્લો કરી શકો છો તમે એક પછી એક વાંચી શકાય છે. કેચ GetString રિકોલ સાથે છે અમે સતત ફરીથી માપ હોય છે મેમરી કે ભાગ, જે માત્ર એક પીડા છે. તે રેખાઓ ઘણો છે તે કરવા માટે કોડ. તેથી અન્ય અભિગમ હશે ખરેખર એક પિતરાઇ ઉપયોગ, તેથી scanf છે, વાત કરવા માટે. આ ઘણો ચલો છે ખરેખર તપાસો કે કાર્યો લંબાઈ કેટલા અક્ષરો તમે વધુમાં વાંચી શકે છે. અને જો તમે વાંચી નથી, સ્પષ્ટ કરી શકે છે 50 થી વધુ અક્ષરો. તેથી તે અન્ય અભિગમ પરંતુ કરશે મોટા ઇનપુટ્સ ઓછી ઉપકારક. તેથી તે આવૃત્તિ ધારી, પૂછે 2 પ્રશ્ન 3 સંકલિત અને ચલાવવામાં આવે છે. શા માટે છે કે કાર્યક્રમ segfault શકે? તેથી આ એક ખરેખર જ છે જવાબ ભલે તે થોડી પારખુ દેખાય છે. અમે જેવા લાગે છે malloc છે, જે ઉપયોગ કરી રહ્યા છો આપણે આપણી જાતને વધુ વિકલ્પો આપીને કરી રહ્યાં છો. અને પછી અમે તે મુક્ત કરીને કરી રહ્યાં છો અંતે મેમરી. તે હજુ પણ માત્ર મેમરી 50 બાઇટ્સ છે. તેથી અમે હજુ પણ વાંચી શકો છો 51, 52, 1000 બાઈટોમાં. તે માટે segfault બનશે બરાબર એ જ કારણ છે. પરંતુ અન્ય કારણ પણ છે. ઉપરાંત વળતર malloc શકે બીજું શું મેમરી એક ભાગ ના સરનામા? તે નલ પરત કરી શકે છે. અને અમે માટે ચકાસણી કરી રહ્યા છીએ, કારણ કે કે, અમે કંઈક કરી હોઈ શકે છે છે કે જે અન્ય કારણ માટે મૂર્ખ અમે scanf કહી શકે છે, વાંચી કીબોર્ડ થી વપરાશકર્તાની ઇનપુટ 0 લોકેશનમાં, ઉર્ફ નલ. અને તે પણ ચોક્કસપણે કરશે એક segfault કરે છે. તેથી ક્વિઝ હેતુ માટે, અમે કરશે એક તરીકે તે તો સ્વીકાર કર્યો છે કોઈ સારું કારણ. એક સમાન છે. એક થોડી વધુ nuanced છે. છેલ્લે, આ કાર્યક્રમ માટે આદર સાથે મેમરી ઉપયોગ કરે છે, કેવી રીતે 2 સંસ્કરણ કરવું અને 3 આવૃત્તિ અલગ? તેથી તે વર્થ છે તે માટે, અમે જોયું એક શક્ય છે કે મોટે ભાગે અનંત પુરવઠો આ જવાબ. અને લોકોના જવાબો વચ્ચે, અમે શું હતા માટે આશા, પરંતુ અમે અન્ય સ્વીકારવામાં વસ્તુઓ, જે કેટલાક ઉલ્લેખ હતો 2 સંસ્કરણ વાપરી રહ્યું છે હકીકત કહેવાતા સ્ટેક. આવૃત્તિ 3 ઢગલો ઉપયોગ કરી રહ્યા છે. અને વિધેયાત્મક રીતે, આ ખરેખર નથી તફાવત બધા ખૂબ બનાવે છે. દિવસ ના અંતે, અમે હજુ પણ છો માત્ર મેમરી 50 બાઇટ્સ કરો. પણ જે શક્ય જવાબો એક હતું અમે જોઈ હતી કે. તમે તમારા અંગેની ક્વિઝ વિચાર પણ તમે જોઈ શકશો, પાછા TFs પ્રમાણે, અમે કર્યું કે અન્ય ચર્ચાઓ સ્વીકારી તેમના વિવિધ મેમરી વાપરે છે એ જ પ્રમાણે. પરંતુ સ્ટેક, અને ઢગલો કરવામાં આવ્યો હતો સાથે જવા માટે એક સરળ જવાબ. કોઈપણ પ્રશ્ન છે? હું તમને રોબ આપે છે. રોબ બોડેન: તેથી સમસ્યા 4. આ તમને ભરવા માટે હતી જ્યાં એક છે બધા બહાર બાઇટ્સ સંખ્યામાં ઉપયોગ આ વિવિધ પ્રકારો. અમે જુઓ જેથી પ્રથમ વસ્તુ. 32-bit આર્કિટેક્ચર ધારે, આ CS50 સાધન છે. વિશે મૂળભૂત વસ્તુઓ તેથી એક 32-bit આર્કિટેક્ચર, અમને કહે છે કે બરાબર કેવી રીતે મોટા નિર્દેશક રહ્યું છે આર્કીટેક્ચર માં છે. તેથી તરત જ આપણે જાણીએ છીએ કે કોઇ પણ નિર્દેશક પ્રકાર 32 બિટ્સ અથવા 4 બાઇટ્સ છે. તેથી આ ટેબલ પર જોઈ, એક નોડ * એક નિર્દેશક પ્રકાર છે. તે 4 બાઇટ્સ જ હશે. સ્ટ્રક્ટ નોડ *, કે શાબ્દિક છે નોડ સ્ટાર સમાન. અને તેથી તે 4 બાઇટ્સ જ હશે. શબ્દમાળા છે, એટલે એક જેવું લાગતું નથી હજુ સુધી નિર્દેશક, પરંતુ typedef, એક શબ્દમાળા માત્ર ચાર રચે છે *, કે જે એક નિર્દેશક પ્રકાર છે. જેથી 4 બાઇટ્સ જ હશે. તેથી આ ત્રણ 4 બાઇટ્સ. હવે, નોડ અને વિદ્યાર્થી છે થોડી વધુ જટિલ. તેથી નોડ અને વિદ્યાર્થી જોઈ, અમે જુઓ પૂર્ણાંક અને નિર્દેશક તરીકે નોડ. અને વિદ્યાર્થી બે પોઇન્ટર છે તે અંદર. તેથી ઓછામાં ઓછા અહીં અમારા કિસ્સામાં માટે, જે રીતે અમે કદ ગણતરી અંત કે આ સ્ટ્રક્ટ માત્ર બધું ઉમેરો છે કે સ્ટ્રક્ટ અંદર છે. તેથી નોડ માટે, અમે પૂર્ણાંક છે, જે 4 બાઇટ્સ છે. અમે 4 બાઇટ્સ છે નિર્દેશક હોય છે. અને તેથી એક ગાંઠ રહ્યું છે 8 બાઇટ્સ અપનાવવા માટે. અને એ જ રીતે વિદ્યાર્થી માટે, અમે એક છે 4 બાઇટ્સ અને અન્ય છે કે નિર્દેશક 4 બાઇટ્સ છે કે નિર્દેશક. જેથી અંત બનશે 8 બાઇટ્સ છે. તેથી નોડ અને વિદ્યાર્થી 8 બાઇટ્સ. અને આ ત્રણ 4 બાઇટ્સ. પર પ્રશ્નો? હા. પ્રેક્ષક: તે 64-bit હતી સ્થાપત્ય, કરશે કે તે બધા ડબલ? રોબ બોડેન: તે નહીં કરશે તે બધા બમણો છે. તેથી 64-bit આર્કિટેક્ચર, તે ફરીથી, ફેરફાર પાયાના વસ્તુ કે નિર્દેશક હવે 64 બિટ્સ. અરે વાહ. તેથી નિર્દેશક 8 બાઇટ્સ છે. તેથી આ 4 બાઇટ્સ હતા 8 બાઇટ્સ હશે આવે છે. બે પોઇન્ટર આવી હતી, જે વિદ્યાર્થી,, ઠીક છે, હવે તે ચાલી રહ્યું છે 8 બાઇટ્સ, 8 બાઇટ્સ છે. તે 16 બાઇટ્સ કરી રહ્યા છે. પરંતુ નોડ હજુ પણ 4 બાઇટ્સ છે. તેથી આ નિર્દેશક રહ્યું છે 8 બાઇટ્સ છે. આ 4 બાઇટ્સ છે. તેથી નોડ માત્ર રહ્યું છે 12 બાઇટ્સ છે. કે એક પર કોઈપણ અન્ય પ્રશ્નો છે? જેથી આગામી એક છે, આ છે આ HTTP પરિસ્થિતિ કોડ. અને તમે સંજોગોમાં વર્ણન માટે હતી જે હેઠળ આ શક્તિ તમે પૈસા પાછા મેળવી. હું કેટલાક વિદ્યાર્થીઓ સાંભળ્યું કે એક સમસ્યા છે તેઓ બનાવવા પ્રયાસ કર્યો તે છે ભૂલો ક્લાઈન્ટની ઓવરને પર છે. અમે વિનંતી કરી છે કરવાનો પ્રયાસ કરો તેથી જ્યારે સર્વર સાથે, કંઈક જાય અમારા અંત ખોટું. પરંતુ સામાન્ય રીતે, આ કોડ છે સર્વર દ્વારા પરત કરવામાં આવી રહી છે. તેથી અમે શું થઈ રહ્યું છે બહાર આકૃતિ માંગો છો ખોટું અથવા જમણે સર્વર પર આ વસ્તુઓ પરત કરવા માટેનું કારણ બને. તેથી શા માટે સર્વર વળતર કદાચ પરિસ્થિતિ કોડ 200? કોઈપણ વિચારો? અરે વાહ. જેથી કંઈક વિશે સફળતાપૂર્વક વિનંતી પસાર થયું હતું. અને તેઓ પરત કરવાનો છો તમારા માટે પૂછવામાં ગમે. તેથી બધું દંડ હતી. 302 વિશે શું છે? અરે વાહ. પ્રેક્ષક: સર્વરે જોઈ હતી તમે વિનંતી છે માટે. પરંતુ તે શોધી શક્યા નથી. તેથી એક ભૂલ છે. રોબ બોડેન: તેથી સર્વર હતી તમને જોઈતા શોધી. તેથી માત્ર અહીં જોઈ, 302 જોવા મળે છે, તે તેને શોધવા માટે સક્ષમ હતી. પ્રેક્ષક: હું દિલગીર છું. મળ્યો તેઓ તેને શોધી હતી છે. માફ કરશો. રોબ બોડેન: તેથી 302 મળ્યાં નથી. સર્વર શોધવા માટે સક્ષમ છે તમે શું કરવા માગે છે. પ્રેક્ષક: પણ તે પ્રદર્શિત નથી? રોબ બોડેન: વચ્ચેનો તફાવત આ 302 અને 200 કે તે તમે શું કરવા માંગો છો જાણે છે. પરંતુ તે બરાબર જ્યાં નથી તમને માગે છે. તેથી 302 એક લાક્ષણિક રીડાયરેક્ટ છે. તેથી જો તમે એક પાનું વિનંતી કરી. તે ઓહ, હું માંગો છો, જાણે તમે આ પાછા. પરંતુ આ એક અલગ URL પર છે. તેથી અરે, તમે ખરેખર આ કરવા માંગો છો. ડેવિડ જે MALAN: તે જણાવ્યું હતું કે એક ભાગ છે અમે તમને ગાય્ઝ એક રીડાયરેક્ટ આપ્યો હેડર કાર્ય ઉપયોગ તે કાર્ય કે, બદલામાં,, સ્થાન છપાયેલ કોલોન, અને પછી URL ને જે તમે વપરાશકર્તા અસ્વીકાર કરવા માંગો છો. તમે 302 જોઈ ન હતી છતાં પણ બાહ્ય રીતે ત્યાં, કે શું PHP, છે જાદુઇ હેડર તરીકે દાખલ કરશે રોબ ત્યાં જણાવ્યું હતું કે, ચોકકસ શું કહે છે - જોવા મળે છે. પરંતુ તેના બદલે અહીં જાઓ. રોબ બોડેન: બરાબર. તેથી 403 વિશે શું પ્રતિબંધિત? પ્રેક્ષક: હું તેને લાગે છે કે સર્વર મૂળભૂત રીતે કહી રહ્યાં છે કે ક્લાઈન્ટ હોમ પેજ ઍક્સેસ કરી શકતા નથી. રોબ બોડેન: તેથી હા. ઠીક છે, ખાસ જવાબ અમે હતા અપેક્ષા કંઈક ફાઈલો છે યોગ્ય chmodded નથી. કે કદાચ હેઠળ શું સંજોગો તમે તેમને જોવા મળી હતી. પરંતુ એક કારણ છે કે ક્લાઈન્ટ અહીં દોષ હોઈ શકે છે. અન્ય પરિસ્થિતિ કોડ ખરેખર છે - 401. તેથી આ ખૂબ જ સમાન હોય છે. 401 અનધિકૃત છે. અને 403 પ્રતિબંધિત છે. અને તેથી તમે માત્ર અનધિકૃત આપ લોગઇન નથી કરી રહ્યાં છો વિષે પરંતુ પ્રવેશ અર્થ શકે તમે અધિકૃત છે. પરંતુ જો તમે પહેલાથી જ પ્રવેશેલ છે અને તમે કરી રહ્યાં છો હજુ પણ, પછી પરવાનગી નથી તમે પણ પ્રતિબંધિત મેળવી શકો છો. તેથી તમે પ્રવેશેલ હોય અને ન હોય તો રચનાની પ્રતિબંધિત છે તમે મેળવી શકો છો કંઈક. ડેવિડ જે MALAN: અને પદ્ધતિ દ્વારા આ સમસ્યા સામાન્ય રીતે જે સર્વર પર છે ઉકેલી શું આદેશ મારફતે? Chmod, તે છે, ખરેખર, એક પરવાનગીઓ ફાઇલ અથવા ડાયરેક્ટરી પર બહાર પાડે છે. રોબ બોડેન: પછી 404 મળ્યું નથી. અરે વાહ. તેથી 302 વિપરીત જ્યાં તે બરાબર ન હતી તમે પણ કહીએ છીએ કે જ્યાં તે જાણે શું તમે કરવા માંગો છો, આ તે જ છે તમે શું કરવા માંગો છો કોઈ વિચાર. અને તમે અરજી કરતા નથી કરવામાં આવે છે માન્ય કંઈક. 418 હું પછી એક ચાદાની છું અને 500 આંતરિક સર્વર. તેથી શા માટે તમે તે વિચાર કરી શકે છે? તેથી segfault - હું ખરેખર આ ગ્રેડિંગ ખબર નથી આ માટે ધોરણ. પરંતુ તમારા PHP કોડ કંઈક હોય તો તે ખોટું, સિદ્ધાંત મુજબ, તે કરી શકે ખરેખર, segfault જે કિસ્સામાં, આ 500 આંતરિક સર્વર ભૂલ, કંઈક તમારા સર્વર સાથે ખોટી છે રૂપરેખાંકન. અથવા સિન્ટેક્સ ભૂલ છે તમારા PHP કોડ માં. કે ખરાબ કંઈક થઈ રહ્યું છે. ડેવિડ જે MALAN: અમે segfault જોવા હતી થોડા લોકોના જવાબો વચ્ચે. અને પારિભાષિક રીતે, તે બની શકે છે તેમ. પરંતુ તે એક PHP,, આ કાર્યક્રમ છે ખરેખર, અન્ય લોકો દ્વારા લખવામાં segfaulted, જે માત્ર જો તે લોકો ઘણું ખરાબ અને બગડેલ કોડ લખ્યું તેમના દુભાષિયા છો PHP, પોતે segfault. 500 એક segfault જેવું છે તેથી ભલે ભાવના, તે લગભગ હંમેશા માટે રૂપરેખાંકન ફાઈલ મુદ્દો પરિણામ તમારું વેબ સર્વર સાથે અથવા, રોબ જણાવ્યું હતું કે, તમારા જેવા એક સિંટેક્સ ભૂલ, ક્વોટ બંધ ન હતી. અથવા તમે ક્યાંક અર્ધવિરામ ગુમાવી હતી. પ્રેક્ષક: તેથી શટલ pset માટે, હું હું તે હતી ત્યારે હું એક વખત ક્લિક કર્યું લાગે છે બ્રાઉઝર, પરંતુ કશું, આવી તેઓ સફેદ પાનું કહ્યું. પરંતુ તે કારણ કે કોડ શાળા હતી. હું જાવાસ્ક્રિપ્ટ હતો, અધિકાર? રોબ બોડેન: અરે વાહ. પ્રેક્ષક: કે ભૂલ હજુ પણ આવી? રોબ બોડેન: તેથી તમે મેળવેલ છે, તો આ ભૂલ છે કારણ કે બધું વેબ સર્વર દ્રષ્ટિકોણથી સંપૂર્ણપણે દંડ હતી. પરંતુ તમે index.html વિનંતી કરી. તમે shuttle.js વિનંતી અને service.js. અને તે સફળતાપૂર્વક પાછા કરવાનો હતો તમે તે બધું કરવા માટે - 200. બરાબર. તે તમારા બ્રાઉઝર માટે પ્રયાસ કર્યો હતો ત્યારે જ છે આ JavaScript કોડ અર્થઘટન કે તે જેમ, રાહ છે, આ નથી માન્ય જાવાસ્ક્રિપ્ટ ભૂલ. કોઈપણ અન્ય પ્રશ્નો છે? અધિકાર છે. ડેવિડ જે MALAN: તેથી આગામી ઉપર 11 હતી. અને 11 સૌથી ભયજનક હતી ઘણા લોકોને માટે. તેથી સૌથી મહત્વની વસ્તુ અહીં નોંધ આ ખરેખર વિશે હતા એક સમયમાં બમણું કડી થયેલ યાદી. પરંતુ આ ગયા વર્ષના તરીકે જ ન હતી સમયમાં બમણું કડી થયેલ યાદી સમસ્યા, જે તમે ચેતવણી આપી હતી કે યાદી, હકીકતમાં, ક્રમમાંગોઠવાયેલનથી હોઈ શકે છે. યાદી ક્રમમાંગોઠવાયેલનથી હતો, જેથી હકીકત અને તે શબ્દ હતો તે હકીકત અવરજવર માટે ત્યાં અર્થ હતો રેખાંકિત આ ખરેખર એક સરળીકરણ છે કે અન્યથા આવી હશે શું એક વધુ પડકારરૂપ સમસ્યા અને એક લાંબા સમય સુધી. અહીં એક સામાન્ય ભૂલ મૂકી હતી તમારા પર ગયા વર્ષના ઉકેલ પેજર અને પછી માત્ર અકારણ કે નકલ અધિકાર છે કે જે જવાબ, નીચે અલગ પ્રશ્નનો જવાબ ભાવના સમાન. પરંતુ અહીં subtleties નીચે પ્રમાણે હતા. તેથી, અમે નોડ જાહેર અને અહીં સામાન્ય રીતે વ્યાખ્યાયિત થયેલ છે. તો પછી અમે યાદી વૈશ્વિક કરી વ્યાખ્યાયિત નિર્દેશક null આરંભ. પછી દેખીતી રીતે, બે કાર્યો છે અમે અહીં માટે પ્રોટોટાઇપ છે, સામેલ કરો અને દૂર કરો. અને પછી અમે અહીં કેટલાક નમૂના કોડ છે ના દાખલ સમૂહ કરી. અને પછી અમે પૂર્ણ માટે કહી પાંચ જેમ કે નીચે દાખલ કરો અમલ તે યાદી માં દાખલ n એ તે રીતે સતત સમય માં, પણ રેખાંકિત, પણ પહેલાથી જ હાજર છે. તેથી દાખલ કરવાનો છે ના સુંદરતા સતત સમય માં તે બતાવે છે તમે દાખલ કરવા માટે હોય છે નવા નોડ છે? આગળના પ્રવેશ. તેથી તે, મહેરબાની, દૂર ઓછામાં ઓછા જરૂર ઉપયોગ થાય છે કે આ કેસ એક તે જેવી કોડ પણ વધુ રેખાઓ, કર્યું ગયા વર્ષે પણ વર્ગ જ્યારે અમે વસ્તુ આ પ્રકારની મારફતે વાત કરી મનુષ્ય અને કેટલાક મૌખિક સ્યુડો કોડ. તેથી અહીં ઉકેલ, ચાલો ઉપર છોડી દો દો કે માત્ર એક દ્રશ્ય પર હોય સ્ક્રીન. અમે નીચેની કરી રહ્યા છીએ નોંધ કરો કે. અને એ પણ અન્ય સરળીકરણ નોટિસ હતી તે છે, પણ જો પહેલાથી જ હાજર છે, તેથી આ અર્થ એ થાય તો પણ સંખ્યા તમે કરી શકો છો, ત્યાં પહેલેથી જ છે માત્ર અકારણ અન્ય દાખલ તે નકલ. અને તે પણ એક સાબિત કરવામાં આવી હતી સરળીકરણ, તમે કરી શકે છે, જેથી , વધુ કે જેઓ ખરેખર, કેટલાક પર ધ્યાન કેન્દ્રિત બુદ્ધિપૂર્વક રસપ્રદ ભાગ અને ચકાસણી કેટલીક વધારાની ભૂલ માત્ર નથી મર્યાદિત સમય આપવામાં આવે છે. તેથી આ નમૂના ઉકેલ, અમે ફાળવી ડાબી બાજુની પર એક નિર્દેશક નોડ અહીં બાજુ. હવે,, કે નિર્દેશક ખ્યાલ રોબ જણાવ્યું હતું કે, માત્ર 32 બિટ્સ. અને તે ખરેખર સમાવતું નથી તમે ત્યાં સુધી એક સરનામું તે આંકડાના સોંપી. અને અમે જમણી બાજુ કે શું malloc દ્વારા બાજુ. એક સારા નાગરિક જેમ, અમે તે ચકાસી malloc નથી, હકીકતમાં, નલ, કે જેથી અમે આકસ્મિક બનાવો નહિં અહીં એક segfault. અને ગમે ત્યારે તમે જીવનમાં તમે malloc ઉપયોગ કદાચ, નલ માટે ચકાસણી થવી જોઈએ તમે એક ગૂઢ ભૂલ છે. તો પછી અમે એ નલ પ્રારંભ n અને અગાઉના અને આગામી સોંપણી. અને અહીં આ કિસ્સામાં, હું આરંભ કારણ કે આ નવા, નલ અગાઉના નોડ નવા પ્રયત્ન રહ્યું છે મારા યાદી કરે છે. તેથી ત્યાં ચાલી રહ્યું છે તે પહેલાં કંઈ નથી. અને હું અનિવાર્યપણે ઉમેરી કરવા માંગો છો દ્વારા નવા નોડ માટે હાલની યાદી પોતે યાદી માટે આગામી સમાન સુયોજિત કરીને. પરંતુ હું હજી સુધી પૂર્ણ છું. યાદી પોતે પહેલેથી જ અસ્તિત્વ ધરાવે છે, તેથી જો અને ઓછામાં ઓછી એક નોડ હતી પહેલેથી જ જગ્યાએ, આ યાદી છે અહીં અને હું હું અહીં નવી નોડ સામેલ ખાતરી કરો કે જરૂર મારા ભૂતપૂર્વ નોડ મારી નવી નોડ માટે પાછળની નિર્દેશ, આ, ફરીથી, કારણ કે એક સમયમાં બમણું કડી થયેલ યાદી. તેથી અમે એક સેનીટી ચેક કરવા. પહેલેથી જ જો ત્યાં યાદી નલ નથી, તો પછી ત્યાં એક અથવા વધુ ગાંઠો, તેથી વાત કરવા માટે સંદર્ભ પાછા ઉમેરો. અને પછી અમે જરૂર ખૂબ જ છેલ્લા વસ્તુ કરવા માટે ખરેખર વૈશ્વિક અપડેટ થયેલ છે નિર્દેશ ચલ યાદી પોતે કે નવા નોડ માટે. અરે વાહ. પ્રેક્ષક: નિર્દેશક તીર માં [અશ્રાવ્ય] છે, નલ સમકક્ષ હોય છે કે યાદી સાથે કામ કારણ કે યાદી નલ છે? ડેવિડ જે MALAN: ના. તે સક્રિય છે ફક્ત મને છે આ મારો છે કે સાવચેત કદાચ કેટલાક વધુ ગાંઠો સાથે મૂળ યાદી અહીં પર અને હું દાખલ છું મારા અહીં નવા નોડ, ત્યાં ચાલી રહ્યું છે અહીં કશું છે. અને હું કે વિચાર મેળવવા માટે કરવા માંગો છો માટે અગાઉના સેટ કરીને નવા નોડ પર નલ. અને કદાચ, મારી કોડ યોગ્ય છે અને દાખલ કરવા માટે ત્યાં કોઈ અન્ય માર્ગ છે આ કાર્ય કરતાં અન્ય ગાંઠો, કદાચ, પણ જો યાદી પહેલેથી જ છે તે એક અથવા વધુ ગાંઠો, કદાચ માટે યાદી, પ્રથમ નોડ, હશે એક નલ પોતાના અગાઉના નિર્દેશક. પ્રેક્ષક: અને માત્ર એક અપ અનુસરો. તમે આગામી સમકક્ષ નિર્દેશક મૂકી કારણ યાદી તમે નિર્દેશક બનાવી રહ્યા છો છે તે પોઇન્ટ છે કે યાદીમાં પહેલાં આગામી માટે, હું માનું - હું don't - માત્ર યાદી આપે છે? ડેવિડ જે MALAN: ચોક્કસ. અને તેથી આપણે ખરેખર બે કેસમાં વિચાર કરીએ અહીં ખરેખર, છતાં પણ અમે તેમને ધ્યાનમાં પડશે માટે નથી આ કોડ તરીકે તદ્દન જ. પરંતુ ઊંચા સ્તર પર, જો આ રજૂ કરે છે યાદી અને આ 32-bit છે નિર્દેશક, સરળ દૃશ્ય છે આ મૂળભૂત રીતે નલ કે. અને હું સામેલ કરવા માંગો છો ધારવું પાંચ નંબર 50 પ્રથમ નંબર હતો. તેથી હું આગળ જાઓ અને ફાળવવા માટે જાઉં છું સમાવે રહ્યું છે નોડ, ત્રણ ક્ષેત્રો - n એ, અગાઉના, અને આગામી. હું 50 નંબર મૂકી જાઉં છું અહીં, આ n હશે કારણ કે. આ આગામી હશે. અને આ અગાઉના હશે. અને તેથી હું આ કિસ્સામાં શું કરવું? ઠીક છે, હું હમણાં જ અહીં રેખા 1 કર્યું છે. પોઇન્ટર n એ મળે છે. હું પછી અગાઉના, કહી રહ્યો છું નલ વિચાર કરીશું. તેથી આ નલ પ્રયત્ન રહ્યું છે. પછી હું આગામી કહેવા જાઉં છું યાદી મળી રહ્યું છે. અને આ માત્ર સારી રીતે કામ કરે છે. આ નલ છે. અને તેથી હું નવા નોડ આગળ, કહી રહ્યો છું ક્ષેત્ર આ ગમે વિચાર કરીશું. જેથી તે ત્યાં અન્ય નલ મૂકે છે. અને પછી છેલ્લા વસ્તુ હું અહીં તપાસો આવે છે. યાદી તે નલ સમાન નથી, પરંતુ જો નલ સમાન છે, તેથી અમે અવગણો કે એકસાથે. અને તેથી હું બધા આગામી યાદી મળે છે pictorially પરિણમે છે કે જે નિર્દેશક, કે એક ચિત્ર. જેથી એક દૃશ્ય છે. અને તમે વિશે પૂછવા આવ્યા હતા કે એક ખાસ કરીને આ જેવી પરિસ્થિતિ છે, અમે પહેલાથી જ એક નોડ યાદી હોય છે. અને હું મૂળ બેક અપ જાઓ સમસ્યા નિવેદન, અમે પડશે આગામી માત્ર માટે કહે છે 34 માટે દાખલ કરો ચર્ચા ખાતર. તેથી હું ફક્ત સરળ જાઉં છું અહીં પર તે દોરે છે. હું માત્ર malloced છે. કે મારી નલ માટે ચકાસણી છું ધારે. હવે, હું પ્રારંભ કરવા જઈ રહ્યો છું n એ 34 છે. અને આ n એ હશે. આ આગામી હશે. અને આ અગાઉના હશે. માતાનો ખાતરી છે કે હું ન હતી બનાવીએ પાછળની આ વિષે. ગત પ્રથમ આવે આ વ્યાખ્યા. મને આ નક્કી કરે. આ અગાઉના છે. આ પછી આવે છે. આ સમાન છે, તેમ છતાં ના સતત રાખવા દો. ગત. આ પછી આવે છે. તેથી હું ફક્ત ચેક, મારી નોંધ malloced છે નલ માટે, ગાંઠમાં 34 આઈડી. ગત નલ નોંધાયો નહીં. જેથી મને કે આપે છે. આગળ યાદી મળે છે. તેથી યાદી આ છે. તેથી આ હવે તે જ છે આ ચિત્ર તરીકે તેઓ એક નિર્દેશ, કે જેથી તીર તે જ છે. અને પછી હું ચકાસણી છું જો યાદી નલ માટે સમાન નથી. અને તે આ સમય નથી. પછી હું યાદી કરવા જાઉં છું અગાઉના નિર્દેશક નોંધાયો નહીં. તેથી અગાઉના યાદી ptr નોંધાયો નહીં. તેથી આ મૂકવા ની અસર છે અહીં ગ્રાફિકલ તીર. અને તે થોડો રહ્યો છે ઊંચુંનીચું થતું, લીટીઓ. અને પછી, છેલ્લે, હું અપડેટ નિર્દેશક નિર્દેશ યાદી. તેથી હવે આ આ વ્યક્તિ માટે નિર્દેશ કરે છે. અને હવે, ચાલો ઝડપી કરવા દો સેનીટી તપાસો. અહીં યાદી છે, જે છે વૈશ્વિક ચલ. પ્રથમ નોડ, ખરેખર, 34 છે, કારણ કે હું તીર અનુસરું છું. હું માંગો છો અને કારણ કે તે સાચું છે યાદી શરૂઆતમાં દાખલ તમામ નવા ગાંઠો. તેમની આગામી ક્ષેત્ર આ વ્યક્તિ માટે મને દોરી જાય છે. હું ચાલુ રાખવામાં, હું આગામી નલ છે નહીં. તેથી કોઈ વધુ યાદી. હું અગાઉના દબાવો, હું વિચાર હું અપેક્ષા છે પાછળ. તેથી થોડા પોઇન્ટર હજુ પણ છે, દેખીતી રીતે, ચાલાકી. પરંતુ તમારે શું કરવું કહેવામાં આવ્યું એ હકીકત છે કે આ સતત સમય માં તમે માત્ર અર્થ એ થાય વસ્તુઓ એક જ મર્યાદિત સંખ્યામાં છે જો તમે કરો અનુમતિ નથી. અને તે નંબર શું છે? તે એક પગલું હોઈ શકે છે. તે બે હોઈ શકે છે. તે 1,000 પગલાં હોઈ શકે છે. પરંતુ તે તમે ન કરી શકો છો, એટલે કે મર્યાદિત છે રહ્યાં કોઇ પણ પ્રકારના રહ્યું છે અહીં, કોઈ રિકર્ઝન, કોઈ આંટીઓ. તે માત્ર હાર્ડ કોડેડ રેખાઓ પ્રયત્ન મળ્યું છે અમે આ નમૂના છે કોડના રિલીઝ. જેથી આગામી સમસ્યા 12 અમને કહેવામાં દૂર કરો અમલીકરણ પૂર્ણ તે દૂર કરે છે કે એવી રીતે નીચે n એ રેખીય સમય યાદીમાંથી. તેથી જો તમે થોડી વધુ છે વારંવાર હાલવું રૂમ હવે. તમે કે n એ ધારે શકે છે, જો હાજર યાદીમાં, હાજર રહેશે વધુ એક કરતા. અને તે પણ એક ક્વિઝ આધારિત થઈ ગયું છે સરળ ધારણા છે, તેથી કે તમે નંબર 50 ક્યાંક તો યાદીમાં, તમે પણ નથી ચાલુ વિશે ચિંતા કરવાની જરૂર દરેક શક્ય શોધી, ફરી વળવું માત્ર devolve કે જે 50 ની નકલ, મર્યાદિત સમય માં અમુક ક્ષુદ્ર બાબત માં. તેથી દૂર કરો સાથે, આ એક ચોક્કસપણે હતી વધુ પડકારરૂપ અને વધુ લખી કોડ. પરંતુ પ્રથમ નજરમાં, પ્રમાણિકપણે, તે કદાચ જબરજસ્ત અને કંઈક જુઓ તમે કરી શકે છે કોઈ રીત નથી એક ક્વિઝ પર સાથે આવે છે. પરંતુ અમે વ્યક્તિગત પગલાંઓ પર ધ્યાન કેન્દ્રિત છે, આસ્થાપૂર્વક, તે અચાનક કરશે તમે પ્રહાર કે આ વ્યક્તિગત દરેક પગલાંઓ સ્પષ્ટ અર્થમાં બનાવે છે ભૂતકાળમાં. તેથી આપણે એક નજર. તેથી પ્રથમ, અમે નિર્દેશક પ્રારંભ પ્રયત્ન કરવા માટે પોતાને જ યાદી આપે છે. હું રેખીય સમય માંગો છો, કારણ કે તે અર્થ હું કેટલાક લૂપ છે જવું છું. અને સામાન્ય રીતે આ બોલ પર ફરી વળવું યાદી માળખું અથવા કોઇપણ જાતના ગાંઠો માળખું iteratively લેવાનું હોય છે ડેટા આગળના માટે નિર્દેશક માળખું અને પછી માત્ર અપડેટ શરૂ તે અને તમારા રીતે ચાલવા આ માહિતી બંધારણ દ્વારા. તેથી હું તે બરાબર કરી જાઉં છું. નિર્દેશક છે, મારા કામચલાઉ ચલ, ચાલો, નલ સમાન નથી આગળ વધો અને તપાસ કરો. હું નસીબદાર મળી શકે? હું હાલમાં છું નોડ માં n એ ક્ષેત્ર છે આ બરાબર જોઈ નંબર હું શોધી રહ્યો છું? અને તેથી જો, ચાલો કંઈક દો. હવે, આ નોટિસ સ્થિતિ સમગ્ર આસપાસ કોડ ઓફ નીચેની લીટીઓ. આ હું વિશે કાળજી આ જ વસ્તુ છે - પ્રશ્નમાં એક નંબર શોધવા. આ બોલ પર કોઈ બીજું, સરળ બનાવે છે કે જે છે સરળ વસ્તુઓ થોડો. પરંતુ હવે, હું સમજાયું, અને તમે હોય છે માત્ર વિચાર કર્યા પછી આ સમજાયું તે બીટ દ્વારા છે ખરેખર બે કેસમાં અહીં. નોડ પાંચ પર છે જ્યાં એક છે એક છે, જે આ યાદીમાં છે, શરૂ તે છે, કારણ કે થોડી હેરાન એક ખાસ કિસ્સામાં, તમે કામ હોય છે, કારણ કે આ વાત સાથે, જે માત્ર અનિયમિતતા છે. દરેક જગ્યા યાદીમાં, તે જ વાત છે. પહેલાંના નોડ અને આગામી છે નોડ, અગાઉના નોડ, બીજા ગાંઠ. પરંતુ આ વ્યક્તિ થોડી ખાસ છે તેમણે શરૂઆતમાં જો. તેથી નિર્દેશક યાદીમાં સમકક્ષ હોય તો પોતે છે, તેથી હું શરૂઆતમાં છું જો યાદી અને હું n એ જાણવા મળ્યું છે, હું જરૂર વસ્તુઓ એક દંપતી કરવા માટે. એક, હું યાદી બદલવાની જરૂર આગામી ક્ષેત્રમાં 50 નિર્દેશ કરે છે. તેથી હું પ્રયાસ કરી રહ્યો છું કે ધારો 34 દૂર કરે છે. તેથી આ વ્યક્તિ પર જાઓ મળ્યું દૂર માત્ર એક ક્ષણ. તેથી હું કહેવા જાઉં છું, યાદી આગામી નિર્દેશક નહીં. વેલ, આ નિર્દેશક છે. આગળ ઉપર અહીં પોઇન્ટ છે. તેથી આ, આ તીર અધિકાર બદલાતી રહે છે હવે અહીં આ વ્યક્તિ માટે નિર્દેશ કરે છે. હવે, અમે હોય છે, યાદ રાખો કામચલાઉ ચલ. તેથી અમે કોઈ ગાંઠો દીધેલ છે, હું પણ આ વ્યક્તિ છે કારણ કે મારા દૂર કરો અમલ. તેથી હવે, જો યાદી જ નલ નથી હું થોડો કંઈક સુધારવા માટે જરૂર છે. હવે હું ખાતરી કરો કે આ તીર તેની જરૂર છે, અગાઉ પોઇન્ટ છે કે જે 34 માટે 50 પ્રમાણે, આ જાય મળ્યું છે કારણ કે હું દૂર મેળવવા માટે પ્રયાસ કરી રહ્યો છું તો 34, 50 સારી કોઈપણ જાળવી હતી આ કે તે નો પ્રકારની પાછા સંદર્ભ તીર સૂચન કર્યું. તેથી હું ફક્ત આ વાક્ય હતી. તેથી પછી હું પૂર્ણ છું. કે કેસ ખરેખર ખૂબ સરળ છે. આ યાદી વડા બોલ કકડો પ્રમાણમાં સરળ છે. કમનસીબે, આ છે બીજું હેરાન બ્લોક. તેથી હવે, હું આ કેસ ધ્યાનમાં હોય મધ્યમાં કંઈક છે જ્યાં. પરંતુ તે સિવાય પણ ભયંકર નથી આ જેવી વાક્યરચના માટે. તેથી હું શરૂઆતમાં નથી તો યાદી, હું ક્યાંક મધ્યમાં છું. અને અહીં આ વાક્ય કહે છે, શરૂઆત તમે છો ગમે ગાંઠ પર. અગાઉના નોડ આગામી ક્ષેત્ર પર જાઓ અને નિર્દેશક કે નિર્દેશ કરે છે. માતાનો pictorially જ આવું. તે જટિલ મેળવવામાં આવી હતી. તેથી હું અહીં પહેલાંની ક્ષેત્રો હોય તો - આ કરવા દો - અહીં આગામી ક્ષેત્રો. હું બદલે મારા પોઇન્ટર સરળ બનાવવા જઈ રહ્યો છું સમગ્ર સમૂહને ડ્રો કરતાં પાછળ આગળ વસ્તુઓ crisscrossing દરેક અન્ય. અને હવે, આપણે માત્ર આ 1, 2 છે કહેવું ચર્ચા ખાતર 3, પણ સાથે અપ લાઇન નથી છતાં પ્રશ્નમાં સમસ્યા નથી. તેથી અહીં મારા કડી થયેલ યાદી છે. હું આ બે દૂર કરવા માટે પ્રયાસ કરી રહ્યો છું વાર્તા ખાસ આવૃત્તિ. તેથી હું નિર્દેશક અપડેટ કર્યું આ વ્યક્તિ તરફ ઇશારો કરી. તેથી આ ptr છે. તેમણે અહીં પોઇન્ટ છે. આ હાજર હોય છે, યાદી છે વૈશ્વિક સ્તરે તે પહેલાં. અને તે કોઈ બાબત શું અહીં પોઇન્ટ છે. અને હવે, હું બે દૂર કરવા માટે પ્રયાસ કરી રહ્યો છું. નિર્દેશક અહીં પોઇન્ટ છે તેથી જો, હું છું , દેખીતી રીતે, અનુસરો જઈને 1 મને મૂકે છે, કે અગાઉના નિર્દેશક,. હું પછી કહેવું જાઉં છું કે આગામી આ માટે મારા પર લઈ આવે છે કે જે ક્ષેત્ર, અહીં બોક્સ, રહ્યું છે સમાન નિર્દેશક આગામી. તેથી આ નિર્દેશક, આ આગળ છે. તે અર્થ એ થાય કે આ તીર જરૂરિયાતો આ વ્યક્તિ માટે નિર્દેશ કરે છે. તેથી કોડ કે વાક્ય માત્ર શું છે આ એક થોડો છે થાય છે. અને હવે, આ એક જેવા જોઈ છે યોગ્ય દિશામાં પગલું. અમે અનિવાર્યપણે 2 કાપેલા કરવા માંગો છો 1 અને 3 મધ્યમાં છે. તેથી તે અમે કરવા માંગો છો તે અર્થમાં બનાવે છે તેની આસપાસ માર્ગ આ નિર્દેશક. તેથી આ આગળના વાક્ય ચકાસે છે જો નિર્દેશક આગામી નલ નથી, ત્યાં 2 જમણી ખરેખર કોઈને, કે અમે શું કરવું છે એનો અર્થ એ થાય થોડી અહીં કાપેલા. તેથી હવે હું આ નિર્દેશક અનુસરવાની જરૂર અને પહેલાંના નિર્દેશક પર અપડેટ એક એક થોડો કરવા આ વ્યક્તિ અહીં અહીં મુદ્દો ઉકેલ. અને હવે, દૃષ્ટિની આ સરસ છે. છે તે તે થોડી અવ્યવસ્થિત છે હવે 2 તરફ સંકેત કોઈ એક. 2 ડાબી પોઇન્ટ છે. અને માટે 2 યોગ્ય પોઇન્ટ છે. પરંતુ તેમણે તેઓ ઇચ્છે છે તે કરવા કરી શકો છો કારણ તે મુક્ત કરવા વિશે છે. અને તે શું વાંધો નથી તે કિંમતો હવે છે. અગત્યનું તો એ છે બાકીના છે ગાય્ઝ ઉપર રાઉટીંગ છે અને હવે તેને નીચે. અને ખરેખર, કે અમે શું કરવું છે. અમે કહી એટલે કે અમે મુક્ત નિર્દેશક, આ ઓપરેટિંગ સિસ્ટમ, તો તમે તમારું સ્વાગત છે આ ફરી દાવો. અને પછી છેલ્લે, અમે આવો. બાકી સર્વથા, તો હજુ સુધી ફર્યા નથી, અમે શોધી રાખવા મળી છે. તેથી નિર્દેશક માત્ર આગામી નિર્દેશક સમકક્ષ હોય છે અહીં આ વ્યક્તિ ખસેડવા છે. અહીં આ વ્યક્તિ ખસેડો. અહીં આ વ્યક્તિ ખસેડો, તો હકીકતમાં, અમે નંબર મળ્યાં નથી અમે હજુ સુધી શોધી રહ્યાં છે. તેથી પ્રમાણિકપણે, તે સંપૂર્ણપણે જુએ છે જબરજસ્ત, હું પ્રથમ તો, લાગે છે નજરમાં, ખાસ કરીને જ્યારે તમે સંઘર્ષ હોય આ સાથે ક્વિઝ દરમિયાન પછી જુઓ આ કંઈક. અને તમે પાછળ તમારા પેટ. ઠીક છે, હું કરી શકે છે કોઈ રીત નથી ક્વિઝ પર કે સાથે આવે છે. પરંતુ હું તમે કરી શકો છો, દલીલ કરે ભાંગી નાખ્યા તો આ વ્યક્તિગત માં નીચે માત્ર કેસો અને તેને લઈ જવામાં કાળજીપૂર્વક એ સાચું છે કે હેઠળ, તેમ છતાં તણાવપૂર્ણ સંજોગો. મહેરબાની, ચિત્ર કરવામાં ખુશ બધું. તમે આ ડ્રો કરી શકી રીતે કોઇ. તમે crisscrossing કરવા નથી અહીં વાત. તમે કોઈ રન નોંધાયો નહીં સાથે કરી શકે છે આ જેવી રેખાઓ. પરંતુ આ સમસ્યા ભાવાર્થ, સામાન્ય, ખ્યાલ હતો કે અંતે ચિત્ર થોડું જોવું જોઈએ આ કંઈક છે, કારણ કે સતત સમય તમે રાખવા કામ કરે છે જામિંગ અને જામિંગ અને જામિંગ પાંચ શરૂઆતમાં નવી ગાંઠો યાદીમાં. કોઈપણ પ્રશ્ન છે? કદાચ સૌથી પડકારરૂપ ચોક્કસપણે કોડિંગ પ્રશ્નો. પ્રેક્ષક: તેથી જેવી જ યાદી છે અગાઉના ઉદાહરણોમાં વડા. ડેવિડ જે MALAN: બરાબર છે, બરાબર. માટે માત્ર એક અલગ નામ વૈશ્વિક ચલ. દુનિયા ભરના શું? રોબ બોડેન: બરાબર. તેથી આ જ્યાં તમે છે આ ફકરો લખી હતી. કેટલાક લોકો નિબંધો પણ લખ્યા છે આ પ્રશ્ન માટે. પરંતુ તમે માત્ર આ છ શરતો ઉપયોગ કરવાની જરૂર શું થાય છે જ્યારે વર્ણન કરવા માટે તમે facebook.com સંપર્ક કરવાનો પ્રયાસ કરો. તેથી હું ફક્ત પ્રક્રિયા મારફતે વાત કરીશું આ બધા શબ્દો વાપરી રહ્યા છે. તેથી અમારા બ્રાઉઝર, અમે facebook.com લખો અને Enter દબાવો. તેથી અમારા બ્રાઉઝર એક રચવા બનશે HTTP રીતે મોકલી રહ્યું છે વિનંતિ માટે Facebook પર કેટલાક પ્રક્રિયા દ્વારા ફેસબુક સાથે અમને જવાબ આપવા માટે તેના પાનાંની એચટીએમએલ. જેથી પ્રક્રિયા શું છે જે HTTP વિનંતિ ખરેખર Facebook પર નહીં? તેથી પ્રથમ, અમે અનુવાદિત કરવાની જરૂર છે Facebook.com. તેથી માત્ર, નામ આપવામાં Facebook.com વાસ્તવમાં HTTP વિનંતિ કરે છે જ્યાં પણ જરૂર નથી? તેથી અમે Facebook.com અનુવાદ કરવાની જરૂર છે IP સરનામા માટે, જે અનન્ય શું મશીન અમે ખરેખર સૂચવે છે આ વિનંતી મોકલવા માંગો છો. તમારા લેપટોપ IP સરનામું છે. ઇન્ટરનેટ સાથે જોડાયેલ કંઈપણ IP સરનામા હોય છે. તેથી કે DNS, ડોમેન નામ સિસ્ટમ, કે જે શું અનુવાદ હેન્ડલ બનશે facebook.com માંથી IP સરનામા પર કે તમે ખરેખર સંપર્ક કરવા માંગો છો. તેથી અમે DNS સર્વરો સંપર્ક કરો અને કહે છે, facebook.com શું છે? તે ઓહ, તે IP સરનામું 190,212 છે, કહે છે કંઈક, કંઈક, કંઈક. અધિકાર છે. હવે, મને ખબર છે શું મશીન હું સંપર્ક કરવા માંગો છો. તેથી પછી તમે તમારા HTTP વિનંતિ મોકલી કે મશીન પર. તેથી તે કેવી રીતે કે મશીન સુધી પહોંચે છે? વેલ, વિનંતી જાય રાઉટર પુષ્ટ કરવા માટે રાઉટર. વર્ગ ઉદાહરણ યાદ રાખો, જ્યાં અમે ખરેખર માર્ગ જોવા મળી હતી કે અમે પ્રયાસ કર્યો ત્યારે પેકેટો લીધો પ્રત્યાયન કરે છે. અમે તે એટલાન્ટિક પર આવો જોવા મળી હતી એક બિંદુ અથવા જે પર મહાસાગર. તેથી છેલ્લા શબ્દ પોર્ટ. તેથી આ તમારા કમ્પ્યુટર પર હવે છે. આપ હાલમાં ઘણી વસ્તુઓ કરી શકે છે ઇન્ટરનેટ આપવી પડે છે. તેથી હું કહે છે, સ્કાયપે ચાલી શકાય છે. હું ઓપન વેબ બ્રાઉઝર હોય છે. હું કંઈક હોય શકે છે ફાઈલો Torrenting. તેથી આ બધી વસ્તુઓ છે આ સાથે વાતચીત અમુક રીતે ઇન્ટરનેટ. તેથી તમારા કમ્પ્યુટર અમુક માહિતી મેળવે છે ઇન્ટરનેટ પરથી, તે કેવી રીતે કરે છે ખબર શું કાર્યક્રમ ખરેખર ડેટા માંગે છે? આ ચોક્કસ છે કે શું તે કેવી રીતે ખબર નથી માહિતી માટે જ છે વિરોધ અરજી Torrenting વેબ બ્રાઉઝર છે? તેથી આ છે માં પોર્ટ હેતુ છે આ કાર્યક્રમો બધા છે તમારા કમ્પ્યુટર પર એક પોર્ટ દાવો કર્યો હતો. તેથી તમારા વેબ બ્રાઉઝર, અરે, કહે છે હું પોર્ટ 1000 પર સાંભળી રહ્યો છું. અને તમારા Torrenting કાર્યક્રમ કહી રહ્યાં છે, હું પોર્ટ 3000 પર સાંભળી રહ્યો છું. અને સ્કાયપે હું પોર્ટ 4000 ઉપયોગ કરું છું, કહે છે. તમે અમુક માહિતી મળી ત્યારે અનુસરે છે આ કાર્યક્રમો એક, ડેટાની જે પોર્ટ સાથે ચિહ્નિત થયેલ છે કે તે ખરેખર માટે સાથે મોકલવા જોઈએ. તેથી આ ઓહ, હું સંબંધ માટે કહે છે પોર્ટ 1000. હું પછી હું આ આગળ જરૂર ખબર મારી વેબ બ્રાઉઝર સાથે. તેથી કારણ કે તે અહીં સંબંધિત છે વેબ સર્વરો હોય છે પોર્ટ 80 પર સાંભળો. હું Facebook.com સંપર્ક તેથી, જ્યારે હું છું કેટલાક મશીન આપવી પડે છે. પરંતુ હું કે જે પોર્ટ કહેવું જરૂરી હું સાથે વાતચીત કરવા માંગો છો મશીન. અને વેબ સર્વરો હોય છે પોર્ટ 80 પર સાંભળી. તેઓ માગતા હતા, તેઓ તે સેટ કરી શકે છે જેથી તે પોર્ટ 7000 પર યાદી આપે છે. અને પછી વેબ બ્રાઉઝરમાં, હું કરી શકે છે માટે 7000: જાતે Facebook.com લખો પોર્ટ 7000 માટે વિનંતી મોકલો ફેસબુક વેબ સર્વરની. ડેવિડ જે MALAN: અને આ કિસ્સામાં, પણ અમે જરૂર ન હતી છતાં તે લોકો આ ઉલ્લેખ, આ કિસ્સામાં, શું પોર્ટ વિનંતી ખરેખર પર જાઓ છો? ફરીથી પ્રયત્ન કરો. ચોક્કસ. એક સૂક્ષ્મતાના કે શોધી છે, પરંતુ નથી કે ત્યાં કંઈ છેલ્લા છે. રોબ બોડેન: તેથી HTTPS, તે છે, કારણ કે આ માટે ખાસ સાંભળી એનક્રિપ્ટ થયેલ, તે પોર્ટ 4430 પર છે. પ્રેક્ષક: અને ઇમેઇલ્સ 25 હોય છે, બરાબર ને? ડેવિડ જે MALAN: જાવકની ઇમેઇલ્સ, 25, હા. રોબ બોડેન: હું પણ મોટા ભાગના ખબર નથી પાંચ - નીચલા મુદ્દાઓ તમામ હોય છે વસ્તુઓ માટે અનામત. હું બધું હેઠળ લાગે 1024 અનામત છે. પ્રેક્ષક: તમે શા માટે કહ્યું 3 ખોટી સંખ્યા હતી? રોબ બોડેન: કારણ કે IP સરનામા માં, અંકો ચાર જૂથો છે. અને તેઓ 0 થી 255 માટે છો. તેથી 192.168.2.1 એક સામાન્ય છે સ્થાનિક નેટવર્ક IP સરનામું. તે બધા 255 કરતા ઓછી હોય છે તે જુઓ. તેથી હું 300 સાથે શરૂઆત કરી હતી, ત્યારે તે કદાચ ન કરી શકે આંકડા રહ્યું. ડેવિડ જે MALAN: પરંતુ તે કોઈ ક્લિપ થી - તે તેઓ એક હતા જ્યાં સીએસઆઇ, હતી નંબર કે બહુ મોટી હતી IP સરનામું છે. રોબ બોડેન: આ કોઈપણ પ્રશ્ન છે? આગામી એક, જેથી સંપૂર્ણ ફેરફાર વિષય, પરંતુ અમે માટે આ PHP એરે હોય છે ચતુર્ભુજ માં ઘરો. અને અમે એક unordered યાદી હોય છે. અને અમે દરેક યાદી વસ્તુ પ્રિન્ટ માંગો છો માત્ર ઘર નામને સમાવતું. તેથી અમે એક foreach લૂપ છે. તેથી આ વાક્યરચના foreach છે, યાદ એરે આઇટમ તરીકે દર્શાવે છે. તેથી લૂપ દરેક પુનરાવૃત્તિ દ્વારા, ઘર એક પર લઈ રહ્યું છે એરે અંદર કિંમતો. પ્રથમ પુનરાવૃત્તિ, ઘર પર કેબોટ ઘર હશે. બીજા પુનરાવૃત્તિ, ઘર પર થશે તેથી કુરિયર હાઉસ હોઇ શકે છે અને. તેથી ઘરમાં દરેક ક્વાડ માટે, અમે છો માત્ર છાપી રહ્યું - તમે પણ દેખાતો હોઈ શકે છે - પછી યાદી વસ્તુ અને ઘરમાં નામ નામ અને પછી યાદી વસ્તુ બંધ કરો. આ સર્પાકાર કૌંસ અહીં વૈકલ્પિક છે. અને પછી અમે પણ પ્રશ્ન માં જણાવ્યું હતું કે, પોતે, બંધ યાદ unordered યાદી ટેગ. તેથી અમે PHP, સ્થિતિમાંથી બહાર નીકળવા માટે જરૂર આ કરવા માટે. અથવા આપણે દેખાતો હોઈ શકે છે આ unordered યાદી ટેગ બંધ કરો. ડેવિડ જે MALAN: અહીં પણ દંડ કરશે માટે જૂની શાળા ઉપયોગ માટે કરવામાં આવી છે = 0 0 ડોલરની હું સાથે લૂપ અને ગણતરીઓ ઉપયોગ પાંચ રે લંબાઈ આકૃતિ. સંપૂર્ણપણે દંડ પણ માત્ર થોડી wordier. પ્રેક્ષક: તેથી જો તમે રહ્યું હત ª [અશ્રાવ્ય], તમે કરો છો - હું લૂપ [અશ્રાવ્ય] શું ભૂલી જાવ. તમે ચતુર્ભુજ કૌંસ હું $ છો? ડેવિડ જે MALAN: ચોક્કસ. અરે વાહ, બરાબર. રોબ બોડેન: બીજું કંઇ? ડેવિડ જે MALAN: અધિકાર છે. વેપાર ન. તેથી જવાબ જુમખું હતા આ દરેક માટે શક્ય છે. અમે ખરેખર માત્ર શોધી રહ્યા એક સાવ અને માટે આકર્ષક કંઈક નુકસાન. અને 16 નંબર વપરાશકર્તાઓની માન્ય પૂછ્યું ઇનપુટ ક્લાઈન્ટ બાજુ, જાવાસ્ક્રિપ્ટ સાથે, તેના બદલે સર્વર બાજુ છે, PHP, સાથે. તેથી શું એક ઊંધો છે કરી ક્લાઈન્ટ બાજુ? વેલ, અમે દરખાસ્ત એક વસ્તુઓ છે તમે લેટન્સીના ઘટાડવા કે, તમે કારણ કે સંપર્ક સંતાપ નથી થોડા લાગી શકે સર્વર, જે મિલિસેકન્ડોમાં અથવા સેકન્ડ પણ એક દંપતી કે ટાળવા દ્વારા અને માત્ર વપરાશકર્તાના ઇનપુટને ક્લાઈન્ટ બાજુ દ્વારા માન્ય એક પર સબમિટ સંભાળનાર બળ અને માત્ર તેઓ લખો હતી ચકાસણી નામ માટે કંઈક? તેઓ કંઈક લખ્યું છે ઇમેઇલ સરનામા માટે છે? તેઓ એક ડોર્મ પસંદ કરો શું નીચે આવતા મેનુ? તમે તેમને તત્કાલ પ્રતિક્રિયા આપી શકે છે પાંચ gigahertz કમ્પ્યુટરનો ઉપયોગ અથવા તેઓ તે ગમે ખરેખર તેમના ડેસ્ક પર. તેથી તે માત્ર એક સારો વપરાશકર્તા છે સામાન્ય રીતે અનુભવે છે. પરંતુ ક્લાયન્ટ સાઇડ કરી એક નુકસાન માન્યતા, તમે પણ વિના કરી જો સર્વર બાજુ માન્યતા કરી કે CS50 બહાર આવતા સૌથી કોઈને જાણે તમે માત્ર તમે ઇચ્છો તે કોઇપણ માહિતી મોકલી શકો છો કે સર્વર સાથેનું રીતે કોઇ. પ્રમાણિકપણે, સૌથી બ્રાઉઝરમાં, તમે કરી શકો છો સુયોજનો અને માત્ર આસપાસ ક્લિક કરો જાવાસ્ક્રિપ્ટ બંધ, કે જે, તેથી, કોઇ પણ સ્વરૂપ નિષ્ક્રિય માન્યતા. પરંતુ તમે પણ યાદ શકે છે તે પણ હું મદદથી વર્ગ કેટલાક arcane વસ્તુઓ હતી Telnet અને ખરેખર ઢોંગ વિચાર મોકલીને જે બ્રાઉઝર હોઇ શકે સર્વર વિનંતી કરે છે. અને તે ચોક્કસપણે નથી છે કોઈપણ જાવાસ્ક્રિપ્ટ ઉપયોગ કરીને. કે જે હમણાં જ મને આદેશો લખી છે કીબોર્ડ પર. તેથી ખરેખર, પૂરતી અંદર કોઈ પ્રોગ્રામર વેબ અને HTTP સાથે આરામ તે અથવા તેણી માંગે છે ગમે માહિતી મોકલી શકે છે માન્યતા વગર સર્વરને છે. અને તમારા સર્વર પણ ચકાસણી ન હોય તો, તેઓ મને એક નામ આપી છે આ ખરેખર એક માન્ય ઇમેઇલ સરનામું કર્યું તેઓ એક ડોર્મ પસંદ કરો, તમે અંત શકે ઉપર દાખલ બનાવટી અથવા ફક્ત ખાલી માહિતી તમારા ડેટાબેઝ માં, જે કદાચ સારી વાત નથી ચાલી રહ્યું છે, જો તમે તેને ત્યાં હતો એમ ધારી રહ્યા છીએ કરવામાં આવી હતી. તેથી આ એક નકામી વાસ્તવિકતા છે. પરંતુ સામાન્ય, ક્લાઈન્ટ બાજુ માં માન્યતા મહાન છે. પરંતુ તે બે વખત ખૂબ કામ છે. વિવિધ અસ્તિત્વમાં ત્યાં શું છે માટે લાઈબ્રેરીઓ, જાવાસ્ક્રિપ્ટ પુસ્તકાલયો દાખલા તરીકે, આ જ બનાવે છે માથાનો દુખાવો ખૂબ ઓછો હોય છે. અને તમે કોડ કેટલાક ફરી ઉપયોગ કરી શકો છો સર્વર બાજુ, ક્લાઈન્ટ બાજુ. પરંતુ તે સામાન્ય રીતે કે ખ્યાલ નથી વધારાના કામ કરે છે. અરે વાહ. પ્રેક્ષક: તેથી જો અમે માત્ર ઓછો સુરક્ષિત જણાવ્યું હતું કે - ડેવિડ જે MALAN: [LAUGHS] નફરતનો સૂચક. તે હંમેશા મુશ્કેલ હોય ન્યાય તોળવાનો મુદ્દાઓ પર પણ. રોબ બોડેન: તે કરશે સ્વીકારવામાં આવ્યા છે. ડેવિડ જે MALAN: શું છે? રોબ બોડેન: હું આ સમસ્યા બનાવી. તે સ્વીકારાઇ શકે છે. ડેવિડ જે MALAN: અરે વાહ. પ્રેક્ષક: કૂલ. રોબ બોડેન: પરંતુ અમે સ્વીકાર્યું નથી પ્રથમ એક માટે - સાથે સાથે, અમે શું શોધી રહ્યા છે તમે કંઈક કરવાની જરૂર નથી સર્વર સાથે સંપર્કવ્યવહાર. અમે હમણાં જ ઝડપી સ્વીકાર્યું નથી. પ્રેક્ષક: શું વિશે પાનું ફરીથી લોડ કરવું નહીં? રોબ બોડેન: હા. તે એક સ્વીકૃત જવાબ હતો. ડેવિડ જે MALAN: અમે લાગ્યું જ્યાં કંઈપણ તે સંભવિત નથી કરતાં તેવી શક્યતા હતી તમે શું હતા જાણતા હતા કે એક ખૂબ જ અઘરું છે, કે જે કહે છે ક્યારેક ડ્રો રેખા. તેના બદલે એક કડી થયેલ યાદી વાપરી રહ્યા છે જાળવી રાખવા માટે એક એરે એક પૂર્ણાંકો યાદી સૉર્ટ. કડી સાથે તેથી એક સાવ અમે ઘણી વખત ઝડપવાની તેમના સમગ્ર પ્રેરિત યાદી આપે છે કે પરિચય તમને dynamism મળી હતી. તેઓ પ્રગતિ કરી શકે છે. તેઓ સંકોચો શકે છે. તેથી જો તમે hoops મારફતે કૂદી નથી ખરેખર વધુ મેમરી બનાવવા માટે એક એરે સાથે. કે પછી ન હોય માત્ર કહે છે, માફ કરશો, વપરાશકર્તા. આ એરે ભરવામાં આવે છે. યાદીમાં તેથી ગતિશીલ વિકાસ. કડી થયેલ યાદીઓ છતાં એક નુકસાન? પ્રેક્ષક: તે રેખીય છે. સંલગ્ન યાદી પર શોધ રેખીય છે તેને બદલે તમે લૉગ ઇન છે ડેવિડ જે MALAN: ચોક્કસ. એક કડી થયેલ યાદી પર શોધ રેખીય છે, તે છટણી છે, તો તમે કરી શકો છો કારણ કે માત્ર આ બ્રેડ crumbs અનુસરો, આ પોઇન્ટર, યાદીમાં શરૂ અંત સુધી. તમે રેન્ડમ એક્સેસ અને લાભ કરી શકો છો, આ રીતે, દ્વિસંગી શોધ, તે હોય તો પણ છટણી, તમે કરી શકે છે કે એક એરે સાથે કરી. અને અન્ય ખર્ચ પણ છે. અરે વાહ. પ્રેક્ષક: મેમરી બિનકાર્યક્ષમ? ડેવિડ જે MALAN: અરે વાહ. ઠીક છે, હું તે જરૂરી નહીં કરશે બિનકાર્યક્ષમ છે. પરંતુ તે તમને વધુ મેમરી કિંમત નથી, તમે દરેક માટે 32 બિટ્સ જરૂર છે વધારાના નિર્દેશક માટે નોડ, પર એક singly કડી થયેલ યાદી માટે ઓછામાં ઓછી. હવે, તમે માત્ર પૂર્ણાંકો સ્ટોર કરી રહ્યાં છો અને તમે નિર્દેશક ઉમેરી રહ્યાં છીએ, તે છે ખરેખર પ્રકારની નગણ્ય. તે મેમરીનો જથ્થો બમણો છે. પરંતુ વાસ્તવમાં, જો તમે સ્ટોર કરી રહ્યાં એક હોય શકે છે કે સ્ટ્ર્ક્ટ્સ ઓફ સંલગ્ન યાદી 8 બાઇટ્સ, 16 બાઇટ્સ, પણ વધુ કરતાં, કદાચ તે ઓછી છે નજીવી કિંમત. પરંતુ તે છતાં ખર્ચે છે. તેથી તે ક્યાં કર્યું હોત downsides તરીકે દંડ કરવામાં. 18. લખવા માટે PHP, બદલે સી મદદથી આદેશ લીટી કાર્યક્રમ. અહીં, તેનો ઉપયોગ ઘણી વખત ઝડપી છે એક PHP અથવા રૂબી અથવા પાયથોન જેમ ઓનલાઇન. તમે હમણાં જ ઝડપથી ખોલો લખાણ સંપાદક છે. તમે ઘણા વધુ કાર્યો કરતા હોય છે તમારા માટે ઉપલબ્ધ. PHP, વિધેયો રસોડામાં સિંક છે, સી, તો તમે જ્યારે ખૂબ, ખૂબ જ ઓછી છે. હકીકતમાં, ગાય્સ હાર્ડ રીતે ખબર તમે હેશ કોષ્ટકો નથી. તમે યાદીઓ કડી થયેલ નથી. તમે તે હોય, તો તમારે હોય છે તેમને જાતે અમલ. PHP ની તેથી એક સાવ અથવા ખરેખર કોઈપણ અર્થઘટન ભાષા rapidity છે કે જેની સાથે તમે કોડ લખી શકો છો. પરંતુ એક નુકસાન એ છે કે આપણે આ જોયું ત્યારે હું ઝડપથી misspeller બનાવતા હતા PHP, ઉપયોગ કરીને વ્યાખ્યાન અમલીકરણ છે, કે જે અર્થઘટન ભાષાનો ઉપયોગ સામાન્ય રીતે ધીમી છે. અને અમે એક સાથે demonstrably જોયું કે 3 0.3 સેકન્ડ સમય વધારો કારણ કે અર્થઘટન સેકન્ડ, કે ખરેખર થાય છે. અન્ય ઊંધો હતી તમે તે કમ્પાઇલ કરવાની જરૂર નથી. તેથી તે પણ વિકાસ ઝડપી બનાવે આકસ્મિક, તમારી પાસે નથી કારણ કે એક કાર્યક્રમ ચલાવવા માટે બે પગલાંઓ. તમે માત્ર એક જ હોય ​​છે. અને તેથી તે ખૂબ છે આકર્ષક પણ. એક SQL ડેટાબેઝ ની જગ્યાએ ડેટા સ્ટોર કરવા CSV ફાઈલ. તેથી SQL ડેટાબેઝ pset7 માટે વપરાય છે. CSV ફાઈલ તમે ખૂબ ઉપયોગ કર્યો ન હતો. પરંતુ તમે pset7 માં પરોક્ષ રીતે તેનો ઉપયોગ સાથે સાથે યાહૂ ફાયનાન્સ સાથે વાત કરે છે. પરંતુ CSV માત્ર એક એક્સેલ ફાઈલ જેવી છે પરંતુ સુપર સરળ, આ કૉલમ છે જ્યાં માત્ર અંદર અલ્પવિરામથી demarked એક અન્યથા લખાણ ફાઈલ છે. અને SQL ડેટાબેઝ ઉપયોગ કરી રહ્યું છે થોડી વધુ આકર્ષક. તમે વસ્તુઓ મળી, કારણ કે તે એક ઘર સાવ છે જેમ પસંદ કરો અને દાખલ કરો અને કાઢી નાંખો. અને તમે, કદાચ, નિર્દેશિકાઓની વિચાર MySQL અને જેવા અન્ય ડેટાબેઝો, ઓરેકલ, મેમરીમાં તમારા માટે બનાવી છે, કે જે તમારા પસંદ કદાચ નથી એનો અર્થ એ થાય નીચે રેખીય ટોચ જ હશે. તે ખરેખર કંઈક જ હશે દ્વિસંગી શોધ અથવા કંઈક જેમ ભાવના સમાન. તેથી તેઓ સામાન્ય રીતે ઝડપી છો. પરંતુ એક નુકસાન એ છે કે છે તે માત્ર વધારે કામ છે. તે વધુ પ્રયાસ છે. તમે ડેટાબેઝ સમજવા માટે છે. તમે તેને સુયોજિત કરવા માટે છે. તમે ચલાવવા માટે સર્વર જરૂર પર ડેટાબેઝ. તમે સમજવા જરૂરી તે રૂપરેખાંકિત કરો. તેથી આ ફક્ત આ વેપાર ન પ્રકારનાં. CSV ફાઈલ, તમે કરી શકો છો, જ્યારે gedit સાથે બનાવી. અને તમે જવા માટે તૈયાર. તે ઉપરાંત કોઈ જટિલતા છે. તેના બદલે હેશ કોષ્ટક એક trie મદદથી સંગ્રહ કરવાની અલગ અલગ chaining સાથે યાદ અપાવે શબ્દો શબ્દકોશ Pset5 કુલ. તેથી એક સિદ્ધાંત મુજબ, ઊંધો પ્રયાસ કરે છે ઓછામાં ઓછા, શું છે? સતત સમય, ઓછામાં ઓછા તમે છો વ્યક્તિગત દરેક પર હેશીંગ તમારા જેવા એક શબ્દ અક્ષરો, Pset5 માટે હોય છે. જે પાંચ હેશ, છ હોઈ શકે પાંચ કે છ જો ત્યાં હેશો શબ્દ અક્ષરો. અને તે ખૂબ સારી છે. અને પર બંધાયેલ ઉપર જો ત્યાં કેવી રીતે લાંબા તમારા શબ્દો હોઇ શકે છે, તે છે ખરેખર asymptotically સતત સમય. જ્યારે અલગ સાથે હેશ ટેબલ તે સાથે ત્યાં, સમસ્યા chaining માહિતી બંધારણ પ્રકારની છે કે તમારા ગાણિતીક નિયમો પ્રભાવ સામાન્ય રીતે વસ્તુઓ સંખ્યા પર આધાર રાખે છે પહેલાથી જ માહિતી માળખું. અને તે ચોક્કસપણે સાથે કેસ છે સાંકળો, જેમાં તમે મૂકી વધુ સામગ્રી હેશ કોષ્ટક માં, લાંબા સમય સુધી તે સાંકળો સૌથી ખરાબ માં એટલે કે, જાઓ કેસ, તમે શોધી હોઈ શકે છે આ વસ્તુ બધી રીતે એક ઓવરને અંતે છે તે સાંકળો, જે અસરકારક રીતે રેખીય કંઈક માં devolves. હવે, વ્યવહારમાં, તે સંપૂર્ણપણે કરી શકે કે હેશ કોષ્ટક સાથે કેસ સાંકળો અનુલક્ષી કરતાં વધુ ઝડપી છે trie અમલ. પરંતુ તે વચ્ચે, વિવિધ કારણો માટે છે કરવાનો પ્રયાસ કરે છે એક સંપૂર્ણ ઘણો ઉપયોગ કરવામાં આવે છે મેમરી કે કરી શકો છો, હકીકતમાં, ધીમી વસ્તુઓ નીચે, તમે સરસ મળી નથી કારણ કે કેશીંગ કહેવાય છે તેની લાભ, જ્યાં એકબીજા સાથે નજીક વસ્તુઓ છે કે જે મેમરીમાં ઉપયોગ કરી શકાય છે ઘણીવાર વધુ ઝડપથી. અને ક્યારેક તમે સાથે આવી શકે ખરેખર સારા હેશ વિધેય. તમે એક બીટ કચરો હોય તો પણ મેમરી, તમે ખરેખર, કરી શકો છો ઝડપી અને નથી વસ્તુઓ શોધી ખરાબ તરીકે એક સરખી રીતે. તેથી ટૂંકમાં, જરૂરી ન હતી આ એક અથવા તો બે કોઈપણ સાથે અમે શોધી રહ્યા ચોક્કસ વસ્તુઓ. અનુસરણ ખરેખર કાંઇ એક સાવ અને નુકસાન તરીકે સામાન્ય રીતે અમારી આંખ કેચ. રોબ બોડેન: તેથી ઊલટું, અમે કર્યું તેના પોતાના પર સ્વીકારી "ઝડપી." તમે તે વિશે કંઈક કહે છે હતા. તમે સૈદ્ધાંતિક ઝડપી જણાવ્યું હતું તો, અમે તમને પ્રકારની સમજી જાણતા હતા કે તે 1 0 કે. અને હેશ કોષ્ટક, સિદ્ધાંત મુજબ, 1 0 નથી. રનટાઈમ વિષે કશું ઉલ્લેખ સામાન્ય રીતે ગુણો મળી. પરંતુ "ઝડપી" ઉકેલો મોટા ભાગના પર કરવાનો પ્રયાસ કરે છે હતા કે મોટા બોર્ડ ઉકેલો કરતાં તટસ્થ ધીમી કે હેશ કોષ્ટકો હતા. તેથી ઝડપથી અને પોતાના ખરેખર સાચું નથી. ડેવિડ જે MALAN: ડોમ દ Dom ડોમ. હું કદાચ ખબર પડે છે કે માત્ર એ જ એક છું કે કે માનવામાં આવે છે તે કેવી રીતે હક, ઉચ્ચાર કરી? રોબ બોડેન: હું ખરેખર કોઈ વિચાર હતો. ડેવિડ જે MALAN: તે કરી મારા માથા માં અર્થમાં. રોબ બોડેન: હું આ એક કરી રહ્યો છું. બરાબર. તેથી આ તમને દોરવા હતી કે જ્યાં એક છે તમે સમાન આકૃતિ કદાચ છેલ્લા પરીક્ષા પર જોવા મળે છે. તેથી આપણે માત્ર આ જુઓ. તેથી તે HTML નોડ પ્રમાણે, અમે બે બાળકો, માથા અને શરીર. તેથી અમે નવા ઉદ્યોગો - માથા અને શરીર. વડા એક શીર્ષક ટેગ છે. તેથી અમે એક શીર્ષક છે. હવે, એક વસ્તુ છે કે ઘણા લોકોએ ભૂલી ગયા છો આ લખાણ ગાંઠો હોય છે આ વૃક્ષ અંદર તત્વો છે. અહીં અમે ovals તરીકે ડ્રો થાય આ તેમને અલગ પાડવા ગાંઠો પ્રકાર. પરંતુ નોટિસ પણ અહીં અમે ટોચ છે, મધ્યમ, અને નીચે અંત આવશે લખાણ ગાંઠો. તેથી તે ભૂલી અંશે હતી એક સામાન્ય ભૂલ છે. શરીર ત્રણ બાળકો છે - આ ત્રણ Divs. તેથી DIV, DIV, DIV અને પછી ટેક્સ્ટ તે Divs ના નોડ બાળકો. કે ખૂબ ખૂબ તે છે કે પ્રશ્નો માટે. ડેવિડ જે MALAN: અને તે નોંધ વર્થ છે, અમે આ પર રહેવું નથી છતાં પણ અમે પર વિતાવે સમયમાં વિગતો ક્રમ છે કે જાવાસ્ક્રિપ્ટ, માં હકીકત એ છે, બાબત તકનીકી. તેથી વડા શરીર પહેલાં આવે છે એચટીએમએલ, પછી તે માટે દેખાશે વાસ્તવિક DOM માં શરીરના છોડી દીધી. તેના માત્ર એફવાયઆઇ, સામાન્ય રીતે, છે કે દસ્તાવેજ માટે કહેવાય છે તેની, જ્યાં તે ફરક પડે છે. અને તમે એક પાર્સર અમલ કરવામાં આવે તો, બિલ્ડિંગમાં એચટીએમએલ વાંચે છે કે એક કાર્યક્રમ મેમરી માં વૃક્ષ, પ્રમાણિક છે, તે કદાચ તર્ક શું તમે કોઈપણ રીતે કરવું - ઉપરથી નીચે સુધી, ડાબેથી જમણે. રોબ બોડેન: પર પ્રશ્નો? હું આગામી એક કરો જોઇએ? ડેવિડ જે MALAN: ખાતરી કરો. રોબ બોડેન: બરાબર. તેથી આ રોળાઈ બફર છે હુમલો પ્રશ્ન. અહીં ઓળખી મુખ્ય વસ્તુ છે, સાથે સાથે, કેવી રીતે કદાચ વિરોધી યુક્તિ ચલાવવા આ કાર્યક્રમ મનસ્વી કોડ? તેથી argv1, પ્રથમ આદેશ વાક્ય આ કાર્યક્રમ માટે દલીલ છે કે, બની શકે છે આપખુદ લાંબા. પરંતુ, અહીં આપણે નકલ કરવા memcpy ઉપયોગ કરી રહ્યાં છો argv1, જે અહીં બાર છે. અમે દલીલ તરીકે પસાર કરી રહ્યાં છો. અને તેથી તે નામ બાર લેવા છે. તેથી અમે બાર memcpying રહ્યા છો આ બફર સી માં. અમે કેટલા બાઇટ્સ નકલ કરવામાં આવે છે? વેલ જો કે ઘણા બાઇટ્સ બાર થાય છે , કે દલીલ લંબાઈ ઉપયોગ કરી. પરંતુ સી માત્ર 12 બાઇટ્સ વિશાળ છે. તેથી અમે આદેશ વાક્ય દલીલ લખો તો કે 12 બાઇટ્સ કરતાં લાંબા સમય સુધી છે, અમે છો આ ઓવરફ્લો રહ્યું ખાસ બફર. હવે, કેવી રીતે વિરોધી યુક્તિ શકે મનસ્વી કોડ ચલાવવા માં કાર્યક્રમ? જેથી અહીં યાદ મુખ્ય foo કૉલ કરે છે. અને તેથી તે પછી મુખ્ય foo કોલ્સ. ચાલો આ દોરીએ. જેથી અમે અમારા સ્ટેક છે. અને મુખ્ય સ્ટેક ફ્રેમ હોય છે નીચે. અમુક બિંદુએ, મુખ્ય foo કોલ્સ. ઠીક છે, તરત જ મુખ્ય foo કોલ્સ. અને તેથી foo પોતાના સ્ટેક ફ્રેમ નોંધાયો નહીં. હવે, અમુક બિંદુએ, foo પાછા જઈ રહ્યું છે. અને foo વળતર ગયા, અમે જાણવાની જરૂર છે મુખ્ય અમે અંદર શું કોડ વાક્ય જાણવા માટે હતા જ્યાં અમે મુખ્ય માં ફરી શરૂ કરીશું. અમે સમગ્ર થી foo કૉલ કરી શકો છો વિવિધ સ્થળો સમૂહ. આપણે કઈ રીતે જ્યાં પરત જાણો છો? ઠીક છે, અમે તે ક્યાંક સ્ટોર કરવાની જરૂર છે. તેથી ક્યાંક આસપાસ અધિકાર અહીં, અમે સ્ટોર અમે એક વાર પર પાછા જોઈએ છે foo આપે છે. અને આ વળતર સરનામું છે. આમ કેવી રીતે વિરોધી લાભ લઇ શકે છે આ હકીકત એ છે કે આ બફર સી સંગ્રહ કરવામાં આવે છે, ચાલો અહીં કેચ છે, કહે છે. તેથી અમે સી માટે 12 બાઇટ્સ મળી છે. આ કેચ છે. અને આ foo સ્ટેક રિંગ છે. દૂષિત વપરાશકર્તા વધુ પ્રવેશે છે તેથી જો 12 કરતાં બાઇટ્સ અથવા તેઓ એક આદેશ દાખલ કરો 12 કરતાં લાંબા સમય સુધી છે કે વાક્ય દલીલ અક્ષરો, તો પછી અમે રહ્યા છીએ આ બફર ઓવરફ્લો. અમે ચાલુ રાખવામાં શકે છે. અને અમુક બિંદુએ, અમે સુધી જાઓ અમે શરૂ તે પર્યાપ્ત આ વળતર સરનામા પર ફરીથી લખી. તેથી એક વખત અમે પરત આંકડાના ફરીથી લખી આનો અર્થ એ છે કે જ્યારે foo વળતર, અમે ત્યાં પરત કરી રહ્યાં છો દૂષિત વપરાશકર્તા દ્વારા તેને કહેવાની છે તે ગમે છે, દાખલ કરેલ ગમે કિંમત અક્ષરો વપરાશકર્તા દાખલ થયો હતો. અને તેથી દૂષિત વપરાશકર્તા હોવા હોય તો ખાસ કરીને હોંશિયાર છે, તે આ કરી શકે છે પાંચ printDef ક્યાંક પર પાછા કાર્ય અથવા malloc ક્યાંક કાર્ય, માત્ર ગમે ત્યાં મનસ્વી. તે છે તે તો પણ વધુ હોંશિયાર છે વપરાશકર્તા અહીં આવો. અને પછી તમે ચલાવવા શરૂ આ કોડ રેખાઓ રિલીઝ. તેથી તે સમયે, વપરાશકર્તા દાખલ કરી શકો છો તેમણે આ પ્રદેશમાં માંગે ગમે. અને તે સંપૂર્ણ નિયંત્રણ હોય છે તમારા કાર્યક્રમ પર. પર પ્રશ્નો? તેથી આ પ્રશ્ન ઊભો થાય પૂર્ણ થયું છે એવી રીતે foo ના reimplementation તે લાંબા સમય સુધી સંવેદનશીલ છે. તેથી ઘણી રીતે બે છે તમે આ કરી શકે છે. અમે હજુ પણ માત્ર કો હોય છે લંબાઈ 12 છે. આ ફેરફાર કરવામાં આવ્યા છે શકે છે તમારા ઉકેલ ભાગ તરીકે. અમે પણ બનાવવા માટે એક ચેક ઉમેર્યું ખાતરી કરો કે બાર નલ ન હતી. તમે જરૂર ન હતી છતાં કે સંપૂર્ણ ક્રેડિટ માટે. તેથી અમે પ્રથમ ચકાસણી કરી રહ્યા છીએ બાર શબ્દમાળા લંબાઈ. તે પછી, 12 થી વધુ છે, તો વાસ્તવમાં નકલ કરવાની હોય છે. જેથી તેને ઠીક કરવાની એક રીત છે. તેને ઠીક બીજી રીતે બદલે છે C કર્યા માત્ર લંબાઈ 12 હોઇ શકે છે, તે છે લંબાઈ strlen (બાર) ની છે. તેને ઠીક બીજી રીતે છે ખરેખર માત્ર પાછા. જેથી તમે માત્ર તમામ છુટકારો મેળવેલ હતી જો આ તમે બધા કાઢી હોત તો કોડ ઓફ લાઇન, તમે મેળવેલ હશે સંપૂર્ણ ક્રેડિટ, આ કાર્ય થી ખરેખર કંઈપણ પરિપૂર્ણ નથી. તે આદેશ વાક્ય નકલ છે કેટલાક એરે માં દલીલ તેની સ્થાનિક સ્ટેક ફ્રેમ. અને પછી આ વસ્તુ પરત આવે છે. અને ગમે સંપૂર્ણ ગઇ છે. તેથી વળતર પણ પૂરતી હતી સંપૂર્ણ ક્રેડિટ મેળવવાની રીત. ડેવિડ જે MALAN: જવાબ નથી તદ્દન પવિત્ર પ્રશ્ન પરંતુ દીઠ સ્વીકાર્ય તેમ છતાં સ્પેક. રોબ બોડેન: કે કોઈપણ પ્રશ્નો? આ એક વસ્તુ છે કે તમે ઓછામાં ઓછા કોડ સંકલન છે જરૂર છે. ટેકનિકલ રીતે તમે નથી તેથી ભલે સંવેદનશીલ તમારો કોડ નહી હોય તો સંકલન, અમે તે સ્વીકારી ન હતી. કોઈ પ્રશ્ન છે? બરાબર. ડેવિડ જે MALAN: તમે ઇચ્છો છો આ શીર્ષક કહે છે? રોબ બોડેન: ના, ડેવિડ જે MALAN: તેથી આ એક, આ સારા સમાચાર કે ખરાબ સમાચાર ક્યાં હતી. આ શાબ્દિક જ સમસ્યા છે પ્રથમ ક્વિઝ રિલીઝ. અને તે લગભગ સમાન છે pset1 તરીકે સમસ્યા નથી. પરંતુ તે ઇરાદાપૂર્વક હોઈ સરળ હતી એ સરળ પિરામિડ, બની શકે છે કે જે એક સહેજ સાથે ઉકેલી સરળ પુનરાવૃત્તિ. અને ખરેખર, અમે શું અંતે મેળવવામાં આવી હતી અહીં, ખૂબ જ તર્ક ન હતી કદાચ, આ બિંદુએ, તમે છો, કારણ કે તમે હતા કરતાં વધુ આરામદાયક આંટીઓ અથવા શા માટે લૂપ માટે સાથે એક સપ્તાહ માં, પરંતુ ખરેખર સિવાય પીંજવું તમે સાથે થોડો આરામદાયક છો PHP, માત્ર તે વિશે નથી કે કલ્પના પ્રોગ્રામિંગ. તે ખરેખર એક ભાષા તરીકે વાપરી શકાય છે આદેશ વાક્ય કાર્યક્રમો લખવા માટે. અને ખરેખર, કે અમે પ્રયાસ કરી રહ્યા હતા શું છે તમારા ધ્યાન પર ડ્રો. આ આદેશ વાક્ય PHP, કાર્યક્રમ છે. અહીં સી કોડ છે, જ્યારે યોગ્ય સી, PHP, માટે સુધારવા નથી. પરંતુ કોડ ખરેખર જ છે. તમે ક્વિઝ માટે ઉકેલો કરો તો 1 ક્વિઝ સામે 0, કે જે તમને મળશે તે સિવાય લગભગ સમાન છે કેટલાક ડોલર ચિહ્ન અને માટે એક માહિતી પ્રકાર ગેરહાજરી. ખાસ કરીને, અમે અહીં એક નજર તો જો તમે આ, અમે ભારપૂર્વક કહેવું કે નહીં તે જોવા મળશે કેસ, 1 થી 7 સુધી. અમે તે 0 ઇન્ડેક્સ જ આ કરી શકે. પરંતુ ક્યારેક, હું તે માત્ર લાગે છે વસ્તુઓ વિશે વિચારો માનસિક સરળ 1 થી 7. તમે એક બ્લોક કરવા માંગો છો, પછી બે બ્લોક્સ, પછી ત્રણ, તો પછી કોઈ, કોઈ, સાત DOT. અમે 1 જોહાન પ્રારંભ કરવામાં આવી રહી છે અને પછી હું સુધી પર ગણાય. અને અહીં બધું છે અન્યથા સમાન. પરંતુ નોંધ લાયક છે વસ્તુઓ એક દંપતિ. અમે તમને આ બે રેખાઓ, આ પ્રથમ આપે goofily એક shebang તરીકે નામ આપવામાં આવ્યું છે, તીવ્ર બેંગ માટે. અને તે માત્ર પાથ સ્પષ્ટ કરે છે, એક કાર્યક્રમ બની શકે તેવા ફોલ્ડર, તમે ઉપયોગ કરવા માંગતા હોય તે મળી આ ફાઈલની અર્થઘટન. અને તે પછી પછી લાઇન, અલબત્ત, PHP, સ્થિતિમાં દાખલ થાય છે. અને ખૂબ જ લીટીમાં બહાર નીકળો PHP, સ્થિતિ થાય છે. અને આ સાથે, સામાન્ય રીતે, કામ કરે છે ભાષાઓ અર્થઘટન. તમે લખો છો તે પ્રકારની નકામી છે એક foo.php તરીકે ઓળખાતી ફાઈલ માં કાર્યક્રમ. અને પછી તમારા વપરાશકર્તાઓ હોય માત્ર આ કાર્યક્રમ ચલાવવા માટે, ઠીક છે, હું યાદ લખો હોય "PHP જગ્યા foo.php." કાઇન્ડ બીજું કંઇ જો હેરાન છે. અને તે પણ દર્શાવે છે કે તમારા કાર્યક્રમ બધા નથી PHP, જે લખેલું છે વપરાશકર્તા કે જેણે માટે પ્રકાશિત. તેથી તમે એકસાથે. PHP દૂર કરી શકો છો વ્યાખ્યાન યાદ અપાવે છે. અને તમે ખરેખર. / Foo કરી શકો છો જો તમે તેને કરીને તે chmodded છે ચલાવી શકાય તેવી. તેથી chmod એક + X foo તે થઈ શકે છે. અને તમે પણ shebang ઉમેરવા અહીં છે. પરંતુ ખરેખર, સમસ્યા પર મેળવવામાં આવી હતી આ કંઈક પ્રિન્ટ કરે છે. કોઈ એચટીએમએલ, ચોક્કસપણે કોઈ સી કોડ છે, માત્ર કેટલાક PHP,. તેથી મિલો પછી સમસ્યા 25 માં પાછા ફર્યા. અને 25 માં, તો તમે નીચેની આપવામાં આવી હતી એક હતી જે હાડપિંજર કોડ છે, ખૂબ સરળ વેબ પાનું. અને રસદાર ભાગ એચટીએમએલ મુજબના નીચે હતી અહીં, અમે શરીર ની અંદર હોય છે ઇનપુટ્સ અનન્ય ID ને કે જેની પાસે ફોર્મ જે અંદર બે ઇનપુટ્સ, એક હતું નામ, માત્ર એક એક વિચાર સાથે બટન એક વિચાર સાથે. પ્રથમ, પ્રકાર લખાણ હતું પ્રકારની બીજી સબમિટ કરો. અને તેથી અમે, ખરેખર, વધુ તમે આપી હતી તમે જ જરૂરી કરતાં ઘટકો તમે ગાય્ઝ જે સાથે વિકલ્પો હતી આ સમસ્યા ઉકેલવા માટે. તમે સખત જરૂર નથી આ ID બધા. પરંતુ તે તમને ઉકેલવા માટે પરવાનગી આપે છે તેને અલગ અલગ રીતે. અને અપ ટોચ પર, નોંધ લો કે ઉદ્દેશ ટ્રીગર હતી આ જેવી વિન્ડો - હેલો, મિલો! - મદદથી બ્રાઉઝરમાં પૉપ અપ તો, સુપર સરળ નીચ નથી, ચેતવણી કાર્ય કરે છે. અને તેથી, આખરે, આ ઉકળે સરળ કોઈક માટે સાંભળી માટે ફોર્મ ક્લાઈન્ટ બાજુ ના સબમિશન કોઈક નથી સર્વર બાજુ, દ્વારા કે રજૂઆત પ્રતિભાવ વપરાશકર્તા લખ્યો કે કિંમત પડતો નામ ક્ષેત્ર માટે, અને પછી ચેતવણી ના શરીરમાં તે પ્રદર્શિત કરે છે. તેથી તમે આ કરી શકો છો એક માર્ગ છે થોડા દેખાય જે jQuery, પ્રથમ વાક્યરચના અનુસાર મુશ્કેલ. તમે શુદ્ધ DOM કોડ સાથે કરી શકો છો - ID દ્વારા document.getelement. પરંતુ આ આવૃત્તિ પર એક નજર કરીએ. હું મહત્વનું એક દંપતિ છે રેખાઓ પ્રથમ. તેથી, અમે છે, કે જે આ વાક્ય છે તમે જોઈ હોય તો કદાચ શું સમાન હું માનું છું કે, માં, form2.html સપ્તાહ 9 માં વર્ગ. અને આ માત્ર ચલાવવા કહે છે, નીચેના કોડ જ્યારે આ દસ્તાવેજ તૈયાર છે. આ અગત્યનું છે કારણ કે માત્ર HTML પૃષ્ઠો ટોચ વાંચી છે ડાબેથી જમણે નીચે,. અને તેથી, જો તમે કરો, પ્રયાસ કરો કેટલાક DOM માટે અહીં કોડ કંઈક તત્વ, કેટલાક એચટીએમએલ ટેગ છે, કે જે નીચે છે અહીં, તમે ખૂબ જલ્દી તે કરી રહ્યા છીએ, આ પણ છે, કારણ કે મેમરીમાં વંચાય કરવામાં. તેથી આ document.ready કહેતા રેખા, અમે કહી રહ્યાં છે, અહીં કેટલાક કોડ છે, બ્રાઉઝર છે. પરંતુ સમગ્ર સુધી આ ચલાવવા નથી દસ્તાવેજ તૈયાર છે, કે જે DOM છે વૃક્ષ મેમરી માં અસ્તિત્વમાં છે. આ એક થોડો વધુ છે વાક્યરચના અનુસાર એક તો સરળ થોડી અલગ, હું કહી રહ્યો છું, જ્યાં ગ્રેબ જેની અનન્ય એચટીએમએલ તત્વ ઓળખકર્તા ઇનપુટ્સ છે. કે શું હેશ ટેગ છે , અનન્ય ID સૂચવે છે. અને પછી હું ફોન છું. સબમિટ કરો. તેથી. અહીં રજૂ કાર્ય તો છે એક પદ્ધતિ તરીકે ઓળખાય છે, તે છે ડાબી બાજુની પર પદાર્થ ની અંદર હું પ્રકાશિત ન હતી કે ત્યાં બાજુ. તમે એક પદાર્થ તરીકે ઇનપુટ્સ લાગે તેથી જો મેમરીમાં - અને ખરેખર તે છે. તે એક વૃક્ષ નોડ છે - . અર્થ સબમિટ ત્યારે આ ફોર્મ સાથે આ ID ને રજૂ કરવામાં આવે છે, ચલાવો નીચેના કોડ. હું પડી નથી શું નું નામ કાર્ય હું ચલાવવા છું છે. તેથી અહીં હું શું, પહેલાં, ઉપયોગ કરું છું પાંચ લામડા કાર્ય અથવા એક કહેવાય અનામી કાર્ય કરે છે. તે બધા બુદ્ધિપૂર્વક નથી તે કોઇ નામ છે રસપ્રદ અન્ય કરતાં, તમે માત્ર છો જે સારું હોય ક્યારેય એક વખત તે કહી રહ્યા. અને અંદર હું ખરેખર હેન્ડલ ફોર્મ ની રજૂઆત. હું પ્રથમ ચલ જાહેર કિંમત છે. અને પછી આ અસર છે અહીં ભાગ હવે પ્રકાશિત? કે પર શું કરે છે મારા માટે ઉચ્ચ સ્તર? પ્રેક્ષક: તે કિંમત મળે કે વપરાશકર્તા નીચે HTML માં ન હતી. તે પછી તે આઈડી નોંધાયો તે ની કિંમત શોધે છે. ડેવિડ જે MALAN: ચોક્કસ. તે જેની અનન્ય, નોડ ખેંચે છે ઓળખકર્તા નામ છે. તે તેમાં કિંમત મળે છે છે, કદાચ, શું વપરાશકર્તા તેને પોતાને અથવા લખ્યો. અને પછી તેને સંગ્રહ કરે છે કે માં ચલ કિંમત છે. એક અલગ તરીકે, તમે પણ કરી શકે છે આ થોડું અલગ થાય છે. આવું સાવ સ્વીકાર્ય અસત્ય વાર કિંમત મળે છે document.getElementById. તે થોડી શા માટે અને આ છે jQuery ઉપયોગ ન કરવા માટે જટિલ. "નામ". મૂલ્ય. તેથી તદ્દન સ્વીકાર્ય. આ કરવા માટે અલગ અલગ રીતે. jQuery માત્ર થોડી વધુ succinct અને હોય છે ચોક્કસપણે વધુ લોકપ્રિય પ્રોગ્રામરો વચ્ચે. હવે, હું એક સેનીટી એક બીટ કરી રહ્યો છું કારણ કે સમસ્યા છે, તપાસ નિવેદન અમે સ્પષ્ટપણે જણાવ્યું હતું કે, જો વપરાશકર્તા હજુ સુધી ટાઇપ નથી તેના અથવા તેણીના એક ચેતવણીઓ જોવા મળતો નથી, નામ. પરંતુ તમે માત્ર છે, તે માટે ચકાસણી કરી શકો છો એક માટે ખાલી શબ્દમાળા માટે ચકાસણી જો ત્યાં ભાવ-અવતરણ ચિહ્નો પૂરાં કરવાં ત્યાં ખરેખર કંઈ નથી. પરંતુ તે ભાવ-અવતરણ ચિહ્નો પૂરાં કરવાં માટે બરાબર નથી, તો, હું ચેતવણીઓ કૉલ કરવા માંગો છો. અને અહીં રસપ્રદ ભાગ છે અમે વત્તા ઓપરેટર ઉપયોગ કરી રહ્યા છો કે જે જાવાસ્ક્રિપ્ટ શું કરે છે? એકસાથે જોડવું. તેથી તે PHPs કોઈ ઓપરેટર જેવું છે. જ વિચાર, થોડા અલગ વાક્યરચના. અને હું માત્ર શબ્દમાળા ઓનલાઇન છું તમે સ્ક્રીન શોટ પર જોવા મળ્યો હતો - હેલો, જેથી અને તેથી. અને પછી છેલ્લા વિગતવાર આ છે. મને શા માટે ખોટા અંદર પાછા નથી આ અનામી કાર્ય? પ્રેક્ષક: કોઈ કિંમત છે. તમે ફોર્મ મૂકો. કિંમત ન હોય તો તે માત્ર કહે છે ખાલી સમાન છે, પછી તે કરું છું. કે સબમિશન માં ખાલી હતી. ડેવિડ જે MALAN: બરાબર. છતાં સાવચેતી રાખો. અહીં કોઈ એક છે. અને તે પરત ખોટા બહાર છે શરતો જો. તેથી આ ખોટા પાછા, લાઇન પ્રકાશિત કોઈ બાબત શું જ્યારે ચલાવે છે ફોર્મ રજૂ કરવામાં આવે છે. આ ખોટા અંદર પરત નથી તે કહે છે, કારણ કે ઘટના સંભાળનાર, પ્રશ્નમાં ઘટના રજૂઆત છે? પ્રેક્ષક: કારણ કે તે માત્ર એક જ વાર થાય છે. ડેવિડ જે MALAN: માત્ર એક જ વાર થાય છે. તદ્દન નથી. અરે વાહ? પ્રેક્ષક: તે ના ફોર્મ અટકાવે , મૂળભૂત વર્તણૂક માટે સબમિટ પૃષ્ઠને ફરીથી લોડ કરો કે જે કરી શકે. ડેવિડ જે MALAN: ચોક્કસ. તેથી હું આ શબ્દ અહીં રજૂ ઓવરલોડિંગ છું હું કહી રહ્યો છું, કારણ કે સ્વરૂપ છે સબમિટ છે. તમે સૂચવે પરંતુ, તે ખરેખર નથી સાચા HTTP રીતે રજૂ. તમે કારણ કે, સબમિટ ક્લિક કરો અમારા onSubmit સંભાળનાર, અમે અટકાવી રહ્યા છીએ કે ફોર્મ સબમિશન તેથી વાત કરવા માટે. પછી અમે અમારી વાત કરી રહ્યા છીએ JavaScript કોડ સાથે. પરંતુ હું ઇરાદાપૂર્વક ખોટા પરત છું હું શું કરવા માંગો છો નથી તે કારણ કે વિભાજીત બીજા પછી સમગ્ર સ્વરૂપ માટે છે પોતે વેબ પર રજૂ કરવાની બદલીને કી કિંમત જોડીઓને સાથે સર્વર કંઈક કરવા માટે URL ને સ = બિલાડી અથવા જે અમે કર્યું, દાખલા તરીકે, વર્ગ. હું કે શું કરવા માંગો છો નથી કારણ કે આ માટે કોઈ સર્વર સાંભળી છે સબમિશન રચે છે. તે સ્પષ્ટ રીતે જાવાસ્ક્રિપ્ટ કોડમાં થાય છે. હું પણ ન હતી કે શા માટે અને તે છે એક ક્રિયા, મારા ફોર્મ પર ગણે છે હું આ માટે કરવાનો નથી ક્યારેય સર્વર પર જાઓ. તેથી તે સબમિટ કરવામાં આવી રહી છે. પરંતુ અમે તે ફોર્મ અટકાવી રહ્યા છીએ રજૂઆત અને મૂળભૂત અટકાવી ખરેખર છે, કે જે વર્તન, બધી રીતે સર્વર પર જાઓ. પ્રેક્ષક: તેથી તે ક્લાઈન્ટ બાજુ રાખી હતી. ડેવિડ જે MALAN: રાખીને તે ક્લાઈન્ટ બાજુ. યોગ્ય બરાબર. આગામી અપ કરીને MySQL ઓહ મારા હતી. રોબ બોડેન: બરાબર. તેથી આ પ્રથમ પ્રશ્ન સામાન્ય હતી લોકો માટે રફ. પાછળથી મુદ્દાઓ સારી ગયા છે. તેથી તમે યોગ્ય માહિતી પસંદગી કરવાની હતી આ કૉલમ બંને માટે પ્રકારો. અને આ બંને ધરાવે છે તેમને વિશે વસ્તુઓ કે પસંદગી મુશ્કેલ બનાવે છે. તેથી પૂર્ણાંક માન્ય ન હતી નંબર માટે લખો. 12 આંકડાના US એકાઉન્ટ છે કારણ નંબર, પૂર્ણાંક માટે પૂરતી મોટી નથી કુલ અંકો સ્ટોર કરે છે. તેથી માન્ય પસંદગી મોટી કરવામાં આવ્યો હતો તમે જાણો છો કે થાય છે પૂર્ણાંક. અન્ય પસંદગી કરવામાં આવી છે શકે લંબાઈ 12 એક કોલસો બનાવો ક્ષેત્ર. તેથી તે ક્યાં કામ કર્યું હશે. ઈન્ નહીં કરશે. હવે, સંતુલન, પાછા pset7 માટે છે. તેથી અમે ખાસ માટે રેખાંશ ઉપયોગ સરવાળો અથવા ની કિંમત સંગ્રહ - ડેવિડ જે MALAN: કેશ. રોબ બોડેન: કેશ. અમે જથ્થો સંગ્રહ કરવાની દશાંશ ઉપયોગ આ સભ્ય પાસે છે કે કેશ. તેથી અમે તે કરી કારણ છે યાદ રાખો કે, કારણ કે, તરે. ચોકસાઇ માં અપૂર્ણાંક બિંદુ છે. તે ચોક્કસપણે રોકડ સંગ્રહ કરી શકતા નથી અમે જેમ કિંમતો અહીં માંગો છો. તેથી દશાંશ ચોક્કસપણે સ્ટોર કરી શકે છે કહે છે, કંઈક, બે અક્ષાંશ મૂકે છે. બેલેન્સ, અમે તેને કરવા માંગો છો કે શા માટે ફ્લોટ દશાંશ નથી અને છે. ડેવિડ જે MALAN: અને પણ, પણ, છતાં તે અન્ય માં હોંશિયાર હોઇ શકે છે વિચારો સંદર્ભમાં, કદાચ આ પૂર્ણાંક માટે એક તક છે. હું માત્ર ટ્રેક રાખવા પડશે પેનિઝ વસ્તુઓ. અમે સ્પષ્ટ રીતે દર્શાવે છે કારણ કે મૂળભૂત , 100.00 હોવાની કિંમત છે કે તે માત્ર એક પૂર્ણાંક હોઈ શકે છે. અને ખૂબ નંબર સાથે અન્ય સૂક્ષ્મતાના તે અર્થ ન હતી કે હતી યુક્તિ પ્રશ્ન છે. પરંતુ યાદ કે MySQL માં પૂર્ણાંક, જેમ સી, ઓછામાં ઓછા પાંચ માં સાધન, 32-bit છે. અને અમે તમને નથી અપેક્ષા નથી છતાં પણ ખબર ચોક્કસ કેટલી અંકો કે અર્થ છે, યાદ છે કે સૌથી મોટી સંખ્યા તમે સંભવિત પ્રતિનિધિત્વ કરી શકે છે 32-bit નંબર સાથે આશરે શું છે? અમે હંમેશા શું નંબર કહે છે? 2 આશરે શું છે, કે જે 32 માટે? તમે ચોક્કસપણે ખબર નથી. પરંતુ આશરે જીવનમાં ઉપયોગી છે. તે આશરે 4 અબજ છે. તેથી અમે થોડા વખત જણાવ્યું હતું કે કર્યું છે. મને ખબર છે હું થોડા વખત કહ્યું છે. અને તે આશરે 4 અબજ ડોલરનો છે. અને તે એક સારો નિયમ છે અંગૂઠો ખબર. તમે 8 બીટ્સ, 256 છે જાદુ નંબર છે. તમે 32 બિટ્સ, 4 છે અબજ આપે અથવા લે છે. જેથી તમે માત્ર નીચે 4 અબજ લખી છે, તમે તેને કરતાં ઓછા અંકો છે કે નહીં તે જોવા મળશે કે સ્પષ્ટ નથી એટલે કે 12, મેળવવા માટે પૂરતી expressiveness એક 12 આંકડાના US એકાઉન્ટ નંબર. રોબ બોડેન: બરાબર. તેથી અન્ય મુદ્દાઓ વધુ સારી હતી. તેથી ધારી કે બેંક $ 20 માસિક લાદે બધા ખાતાઓ પર જાળવણી ફી. શું એસક્યુએલ ક્વેરી કરી શકે બેન્ક સાથે પણ જો દરેક કાઉન્ટ $ 20 બાદ તે કેટલાક નકારાત્મક બેલેન્સ પરિણમે? તેથી સામાન્ય રીતે, ચાર છે પ્રશ્નો મુખ્ય પ્રકાર - દાખલ પસંદ કરો, સુધારો, અને કાઢી નાંખો. તેથી અમે અમે છો શું વિચારો છો અહીં ઉપયોગ જઈ? અપડેટ કરો. તેથી આપણે એક નજર. અહીં અમે અપડેટ કરી રહ્યાં છો. શું ટેબલ અમે એકાઉન્ટ્સ અપડેટ કરવામાં આવે છે? તેથી એકાઉન્ટ્સ અપડેટ. અને પછી આ વાક્યરચના, શું કહે છે ખાતામાં અમે અપડેટ કરવામાં આવે છે? વેલ, અમે સમાન સંતુલન સુયોજિત કરી રહ્યાં છો બેલેન્સ ઓછા 20 વર્તમાન મૂલ્ય. તેથી આ બધી પંક્તિઓ સુધારશે એકાઉન્ટ્સ, બાદબાકી સંતુલન થી $ 20. ડેવિડ જે MALAN: અહીં એક સામાન્ય ભૂલ, અમે ઘણી વાર તે માફ કરી દે છે, તેમ છતાં ખરેખર અહીં PHP કોડ હોય હતી ક્વેરી કાર્ય ફોન અથવા મૂકવા બધું આસપાસ અવતરણ કે ત્યાં જરૂર ન હતી. રોબ બોડેન: MySQL યાદ રાખો કે PHP, એક અલગ ભાષા. અમે PHP માં MySQL લખી શકાય થાય છે. અને PHP પછી તેને મોકલી રહ્યું છે MySQL સર્વર પર. કરવા માટે પરંતુ તમે PHP જરૂર નથી એક MySQL સર્વર સાથે પ્રત્યાયન કરે છે. ડેવિડ જે MALAN: ચોક્કસ. ડોલર ચિહ્ન સાથે આ બોલ પર કોઈ ચલો આ સંદર્ભમાં પ્રયત્ન કરીશું. તે માત્ર ગણિત તમામ કરી શકો છો ડેટાબેઝ પોતે અંદર. રોબ બોડેન: બરાબર. તેથી આગામી એક. આ આગામી એક છે? અરે વાહ. શું એસક્યુએલ ક્વેરી કરી શકે બેન્ક સાથે તેથી તેની ના એકાઉન્ટ નંબર મેળવવા ધનિક ગ્રાહકો, સાથે તે 1,000 કરતાં વધારે બેલેન્સ? તેથી ચાર મુખ્ય પ્રકારો જે અમે અહીં છો કરવા માટે જવું છે? પસંદ કરો. તેથી અમે પસંદ કરવા માંગો છો. અમે શું પસંદ કરવા માંગો છો? અમે પસંદ કરવા માટે શું સ્તંભ માંગો છો? અમે ખાસ માંગો છો કરશે નંબર પસંદ કરો. પરંતુ તમે સ્ટાર, અમે જણાવ્યું હતું કે, જો પણ છે કે જે સ્વીકાર્યું છે. તેથી શું કોષ્ટકમાંથી નંબર પસંદ? એકાઉન્ટ્સ. અને પછી અમે શરત માંગો છો? જ્યાં 1,000 કરતાં વધારે બેલેન્સ. અમે પણ વધારે સ્વીકાર કરતાં અથવા સમાન. છેલ્લા એક. શું એસક્યુએલ ક્વેરી કરી શકે બેન્ક સાથે બંધ કરો, એટલે કે દરેક એકાઉન્ટ કાઢી કે Rs 0 સંતુલન છે? તેથી ચાર કયા અમે છે ઉપયોગ કરવા માંગો છો જઈ? કાઢી નાંખો. તેથી તે માટે વાક્યરચના? શું કોષ્ટકમાંથી કાઢી નાખીએ? એકાઉન્ટ્સ. અને પછી આ પરિસ્થિતિ કે જેના પર અમે કાઢી નાખવા માંગો છો - બેલેન્સ શૂન્ય બરાબર છે. તેથી એકાઉન્ટ્સમાંથી તમામ પંક્તિઓ કાઢી સંતુલન શૂન્ય છે. આ કોઈપણ પર પ્રશ્નો? કતારમાં માંગો છો? ડેવિડ જે MALAN: કતારમાં માર્ગદર્શન. તેથી આ એક, અમે તમને કંઈક આપ્યો અમે એક શોધ કે પરિચિત માળખું સ્ટ્ર્ક્ટ્સ ઓફ સાથે વર્ગ બીટ, એક માહિતી હતી, જે ભાવના સંબંધિત માળખું. એક કતાર સાથે છતાં તફાવત છે અમે કોઈક યાદ હતું કે જે મોટા માં, કતાર આગળના હતો અમે વધુ બનાવી શકે ભાગ કે જેથી મેમરી કાર્યક્ષમ ઉપયોગ, ઓછામાં ઓછા અમે એક એરે ઉપયોગ કરી રહ્યા હતા તો. કારણ કે યાદ, અમે એક એરે છે, જો, ઉદાહરણ માટે, આ આગળના છે કતાર, હું અહીં કતાર માં વિચાર, અને પછી કોઇ લીટી માં નહીં મને પાછળ મને પાછળ મને,,, અને પાછળ એક વ્યક્તિ લાઇન બહાર જાય છે, તમે કરી શકે છે, અમે અમારી માનવ કેટલાક જોયું વર્ગ સ્વયંસેવકો, દરેક છે આ રીતે પાળી. પરંતુ સામાન્ય રીતે, દરેક કરવું કર્યા કંઈક સમય શ્રેષ્ઠ ઉપયોગ નથી એક કાર્યક્રમ છે, કારણ કે તે અર્થ એ થાય તમારા અલ્ગોરિધમનો શું ચાલી રહ્યુ છે અનંત સ્પર્શી ચાલી સમય? તે રેખીય છે. કે મૂર્ખ પ્રકારની છે અને લાગે છે મને લાગે છે. લીટી માં આગામી વ્યક્તિ આગામી છે પાંચ જાય તેવું માનવામાં આવે છે જે વ્યક્તિ સ્ટોર, તેઓ બધા નથી સાથે ખસેડો. માત્ર તે વ્યક્તિ બોલ આમળી મનાઓ સમય દાખલા તરીકે, આવે છે. તેથી અમે ત્યાં સમય એક બિટ સેવ કરી શકો છો. અને આમ કરવા માટે કે છે કે તેની અર્થ કે કતાર વડા અથવા કતાર સામે રહ્યું છે ક્રમશઃ ઊંડા અને ઊંડા ખસેડવા એરે માં અને છેવટે કદાચ અમે એક ઉપયોગ કરી રહ્યાં છો ખરેખર ફરતે વીંટળાય લોકો સંગ્રહવા માટે એરે આ કતારમાં. તેથી તમે લગભગ વિચાર કરી શકો છો ગોળાકાર માહિતી તરીકે એરે તે અર્થમાં માળખું. તેથી જો તમે કોઈક સાચવી રાખે છે તે કદ અથવા તે ખરેખર અંત અને પછી તે શરૂઆતમાં છે. તેથી અમે તમને જાહેર કે પ્રસ્તાવ આવા એક કતાર, કૉલિંગ તે સ, માત્ર એક પત્ર. પછી અમે આગળ કરી કે પ્રસ્તાવ શૂન્ય અને તે આરંભ માપ શૂન્ય પ્રારંભ થવા જોઈએ. તેથી હમણાં, કશું જ નથી કે કતાર ની અંદર. અને અમે પૂર્ણ માટે કહી પાંચ માં નીચે એન્ક્યૂ અમલ કામ કરવા માટે n એ ઉમેરે છે કે એવી રીતે પછી ક્યૂ એન્ડ અને સાચું આપે. પરંતુ સ સંપૂર્ણ અથવા નકારાત્મક હોય, તો કાર્ય બદલે ખોટા પરત કરીશું. અને અમે તમે થોડા આપ્યો ધારણાઓ. પરંતુ તેઓ ખરેખર વિધેયાત્મક નથી સંબંધિત, માત્ર કે bool, અસ્તિત્વમાં છે પારિભાષિક રીતે, bool નથી, કારણ કે તમે જ્યાં સુધી સમાવેશ સી અસ્તિત્વમાં એક અમુક હેડર ફાઇલ. તેથી કે જે હમણાં જ ખાતરી ત્યાં કરી હતી કોઈ આ એક યુક્તિ છે હતા વસ્તુ પ્રશ્ન પ્રકારની. તેથી એન્ક્યૂ, અમે નમૂના દરખાસ્ત નીચે પ્રમાણે ઉકેલો અમલ. એક, અમે પ્રથમ સરળતા ચેક, ઓછી અટકી ફળ. કતાર સંપૂર્ણ અથવા નંબર છે કે તમે દાખલ કરવા માટે પ્રયાસ કરી રહ્યા છો ઓછી છે અમે જણાવ્યું હતું કે, જે શૂન્ય કરતાં આ સમસ્યા સ્પષ્ટીકરણ જોઈએ અમે માત્ર માંગો છો કારણ કે, મંજૂરી નથી બિન નકારાત્મક કિંમતો, તો પછી તમારે માત્ર તરત જ ખોટા આવો. તેથી કેટલાક પ્રમાણમાં સરળ ચકાસણી ભૂલ. તમે તે વાસ્તવિક ઉમેરવા માંગો છતાં જો સંખ્યા, જે તમારા એક બીટ કરી હતી અહીં વિચારી. તે થોડી હેરાન કરે છે અને આ છે જ્યાં માનસિક, તમારા માટે છે કારણ કે wraparound નિયંત્રિત કરવા માટે બહાર આકૃતિ કેવી રીતે. પરંતુ વિચાર ના સૂક્ષ્મજીવ અહીં ના છે એના પર ધ્યાન આપવું કે wraparound છે ઘણી વખત મોડ્યુલર અંકગણિત સૂચિત કરે છે અને મોડ ઓપરેટર, પાંચ ટકા બાજુ, તમે કોઈ મોટા કિંમત જઈ શકે છે પાછા શૂન્ય અને પછી એક અને બે અને ત્રણ અને પછી પાછા આસપાસ શૂન્ય, એક અને બે અને તેથી આગળ ત્રણ અને ફરીથી અને ફરીથી. તેથી અમે આ કરી પ્રસ્તાવ માર્ગ છે અમે માં ઇન્ડેક્સ કરવા માંગો છો કે નંબરો જ્યાં કહેવાય એરે અમારા પૂર્ણાંકો આવેલા છે. પરંતુ ત્યાં વિચાર, અમે પ્રથમ કરવા માંગો છો કતાર માપ પરંતુ ગમે પછી તે ગમે તે ઉમેરો યાદી સામે છે. અને તે અસર પર અમને મૂકી છે યોગ્ય કતારમાં પોઝિશન અને ધારે તે લીટી માં પ્રથમ વ્યક્તિ શરૂઆતમાં છે, જે તે અથવા તે સંપૂર્ણપણે કરી શકે છે, જો આપણે પણ દરેક સ્થળાંતર કરવામાં આવ્યા હતા. પરંતુ અમે માત્ર કામ બનાવી રહ્યાં છો જાતને માટે અમે હતો ચોક્કસ પાથ. તેથી અમે પ્રમાણમાં સરળ તે રાખી શકો છો. અમે યાદ છે કે અમે માત્ર કતાર માટે પૂર્ણાંક ઉમેર્યું. અને પછી અમે માત્ર સાચું આવો. દરમિયાન, dequeue, અમે પૂછ્યું તમે નીચેના કરવા. એવી રીતે તેને અમલમાં કે તે dequeues, કે દૂર કરે છે, અને વળતર છે કતાર આગળના ખાતે પૂર્ણાંક. પૂર્ણાંક દૂર કરવા માટે, તે પૂરતા છે તે ભૂલી જાઓ. તમે ને તેની બીટ પર ફરીથી લખી કરવાની જરૂર નથી. તેથી તે ખરેખર ત્યાં હજુ પણ છે. માત્ર એક હાર્ડ ડ્રાઈવ પર માહિતી, જેમ કે અમે માત્ર એ હકીકત અવગણી રહ્યાં છો તે ત્યાં હવે છે. સ ખાલી છે, તો અમે જોઈએ તેના બદલે નકારાત્મક 1 આવો. તેથી આ મનસ્વી લાગે છે. શા માટે નકારાત્મક 1 પરત તેના બદલે ખોટા છે? અરે વાહ. પ્રેક્ષક: ક્યૂ સ્ટોર કરે છે હકારાત્મક કિંમતો. તમે માત્ર હકારાત્મક કિંમતો સ્ટોર થી ક્યૂ માં, નકારાત્મક એક ભૂલ છે. ડેવિડ જે MALAN: ઠીક છે, સાચું. અમે માત્ર હકારાત્મક સ્ટોર કરી રહ્યાં તેથી કારણ મૂલ્યો અથવા શૂન્ય, પછી તે દંડ કરવા માટે એક સંત્રી તરીકે નકારાત્મક કિંમત પાછી મૂલ્ય, ખાસ પ્રતીક. પરંતુ તમે, ત્યાં ઇતિહાસ પુનર્લેખન રહ્યા છો કારણ કે અમે માત્ર છો કારણ બિન નકારાત્મક કિંમતો પરત અમે કરવા માંગો છો કારણ કે એક સંત્રી કિંમત છે. તેથી વધુ ચોક્કસ રીતે, શા માટે નથી માત્ર ભૂલો કિસ્સાઓમાં ખોટા પાછા? અરે વાહ. પ્રેક્ષક: તમે નિષ્ફળ કર્યું પૂર્ણાંક પાછા. ડેવિડ જે MALAN: ચોક્કસ. સી મળે છે અને આ છે ખૂબ મર્યાદિત. તમે જઈ રહ્યાં છો કહી રહ્યાં છે જો પૂર્ણાંક આવવા માટે, તમે મળી છે પૂર્ણાંક પાછા. તમે ફેન્સી વિચાર અને પરત શરૂ કરી શકો છો એક bool અથવા ફ્લોટ અથવા શબ્દમાળા અથવા તે કંઈક. હવે દરમિયાન, જાવાસ્ક્રીપ્ટ અને PHP અને અમુક અન્ય ભાષાઓ કરી શકો છો, હકીકતમાં, તમે વિવિધ પરત આવી છે કિંમતો પ્રકાર. અને તે ખરેખર ઉપયોગી હોઈ શકે છે તમે હકારાત્મક ints, zeros પરત કરી શકે છે, નકારાત્મક ints, કે ખોટી અથવા નલ પણ ભૂલ દર્શાવવા માટે. પરંતુ અમે નથી સી માં વૈવિધ્યતાને તેથી dequeue સાથે, અમે શું છે કરવા માટે પ્રસ્તાવ - રોબ બોડેન: તમે ખોટા પાછા આવી શકો છો. તે હેશ માત્ર કે ખોટું છે છે શૂન્ય ખોટા વ્યાખ્યાયિત કરે છે. તેથી તમે ખોટા પરત છે, તમે શૂન્ય પરત કરી રહ્યાં છો. અને શૂન્ય છે અમારા કતારમાં માન્ય વસ્તુ છે નકારાત્મક 1 નથી જ્યારે જો ખોટા નકારાત્મક 1 પ્રયત્ન થયું. પરંતુ તમે પણ ન જોઈએ કે જાણવાની જરૂર છે. ડેવિડ જે MALAN: કે હું શા માટે તે કહી હતી. રોબ બોડેન: પણ તે સાચું ન હતી તમે ખોટા પરત કરી શકો છો. ડેવિડ જે MALAN: ખાતરી કરો. તેથી dequeue, અમે સ્વીકારી નોટિસ તેની દલીલ તરીકે ગેરમાન્ય. અમે નથી કારણ કે અને તે છે સાઇન કંઈપણ પસાર અમે હમણાં જ તત્વ દૂર કરવા માંગો છો કતાર આગળના છે. કેવી રીતે અમે આ કરી જઈ શકે? વેલ, પ્રથમ, આ કરવા દો ઝડપી સેનીટી તપાસો. કતાર માપ 0 છે, તો છે પૂર્ણ કરવાની કોઈ કામ. 1 નકારાત્મક વળતર. થઈ ગયું. જેથી મારા કાર્યક્રમની થોડા રેખાઓ. તેથી માત્ર ચાર રેખાઓ રહે છે. તેથી અહીં હું હ્રાસ નક્કી માપ. અને અસરકારક રીતે માપ decrementing હું ભૂલી વધી અર્થ એ થાય કે કંઈક છે. પરંતુ હું પણ અપડેટ કરવા માટે હોય છે નંબરો આગળના છે. તેથી તે કરવા માટે, હું જરૂર બે વસ્તુઓ કરવા માટે. હું પ્રથમ શું સંખ્યા યાદ કરવાની જરૂર છે કતાર આગળના છે, હું તે વસ્તુ પરત કરવાની જરૂર છે. તેથી હું આકસ્મિક ભૂલી નથી માંગતા તે વિશે અને પછી તેના પર ફરી લખવા. હું માત્ર પૂર્ણાંક યાદ જાઉં છું. અને હવે, હું અપડેટ કરવા માંગો છો q.front +1 q.front છે. આ પ્રથમ વ્યક્તિ હતા તેથી જો રેખા, હવે, હું વત્તા 1 કરવા માંગો છો લીટી માં આગામી વ્યક્તિ પર નિર્દેશ કરે છે. પરંતુ હું કે wraparound નિયંત્રિત કરવા માટે હોય છે. અને ક્ષમતા વૈશ્વિક સતત છે, કે મને તેની ખાતરી કરવા માટે પરવાનગી આપે છે ચાલી રહ્યું છે હું ખૂબ જ છેલ્લા વ્યક્તિ માટે નિર્દેશ તરીકે લાઇન, મોડ્યૂલો ઓપરેશન લાવશે આ પર શૂન્ય મને પાછા કતાર સામે. અને તે અહીં wraparound સંભાળે છે. અને પછી હું n એ પાછા આગળ વધવું. હવે, સખત રીતે બોલતાં, હું ન હતી n એ જાહેર હોય છે. હું તેને પકડી રાખવું અને તેને સંગ્રહવા માટે ન હતી થોડા સમય માટે, કિંમત છે, કારણ કે હજુ પણ ત્યાં. તેથી હું માત્ર યોગ્ય અંકગણિત કરી શકે ભૂતપૂર્વ વડા પાછા કતાર છે. પરંતુ હું આ વધુ સ્પષ્ટ હતી કે લાગ્યું વાસ્તવમાં પૂર્ણાંક ગ્રેબ, મૂકી n એ, અને પછી તે પાછા સ્પષ્ટતા ખાતર પણ સખત જરૂરી નથી. Psst. તેઓ બધા મારા માથા માં ઉચ્ચાર છો. રોબ બોડેન: તેથી પ્રથમ પ્રશ્ન બાઈનરી વૃક્ષ સમસ્યા છે. તેથી પ્રથમ પ્રશ્ન અમે છો, છે આ નંબરો આપવામાં આવે છે. અને અમે કોઈક તેમને સામેલ કરવા માંગો છો આ ગાંઠો છે એવી માન્ય દ્વિસંગી શોધ વૃક્ષ. તેથી એક વસ્તુ વિશે યાદ દ્વિસંગી શોધ વૃક્ષો છે તે નથી કે છે માત્ર કે ડાબી વસ્તુ ઓછી અને આ વસ્તુ છે યોગ્ય વધારે હોય છે. તે જરૂરી છે કે સમગ્ર વૃક્ષ ડાબી ઓછી છે, અને સમગ્ર વૃક્ષ જમણી વધારે હોય છે. હું પછી ટોચ પર અહીં 34 મૂકી, અને તેથી જો હું અહીં 20 મૂકી છે, તેથી કે જેથી માન્ય છે સુધી, કારણ કે 34 અહીં. 20 ડાબી રહ્યું છે. જેથી ઓછી છે. પરંતુ હું પછી, અહીં 59 મૂકી શકે છે 59 20 ના અધિકાર છે, તેમ છતાં તે 34 ડાબી પર હજુ પણ છે. મન કે મૂંઝવણ સાથે, આ કદાચ આ હલ કરવાની સૌથી સરળ માર્ગ સમસ્યા છે માત્ર સૉર્ટ આ નંબરો - જેથી 20, 34, 36, 52, 59, 106. અને પછી તે દાખલ ડાબેથી જમણે. તેથી 20 અહીં છે. 34 અહીં છે. 36 અહીં છે. 52, 59, 106. અને તમે પણ સાથે બહાર figured છે શકે કેટલાક પ્લગ અને ભૂલી જાય છે, ઓહ, હું પૂરતી સંખ્યામાં ન હોય, રાહ જુઓ અહીં પર આ ભરવા માટે. તેથી હું reshift જરૂર મારા માર્ગ નોંધ કરી રહ્યું છે. પરંતુ, જો અંતિમ ત્રણ માં નોંધ્યું છે કે ડાબેથી જમણે તમે વાંચી, તે છે વધતા ક્રમમાં. તેથી હવે, અમે જાહેર કરવા માંગો છો શું સ્ટ્રક્ટ માટે પ્રયત્ન રહ્યું છે આ વૃક્ષ પાનાંઓ. દ્વિસંગી વૃક્ષ તેથી અમે શું જરૂર છે? તેથી અમે પ્રકાર ની કિંમત છે પૂર્ણાંક, તેથી કેટલાક પૂર્ણાંક કિંમત. અમે કહે છે ખબર નથી ઉકેલ માં તે - n એ પૂર્ણાંક. અમે ડાબી બાળક માટે નિર્દેશક જરૂર અને જમણી બાળક માટે નિર્દેશક. તેથી તે આના જેવું દેખાશે બનશે. અને તે ખરેખર પહેલાં જોવા મળશે આ સમયમાં બમણું સાથે જોડાયેલી હતી જ્યારે યાદી સામગ્રી છે, તેથી સૂચના - હું સ્ક્રોલ છે જાઉં છું બધા રીતે પાછા નીચે સમસ્યા થી 11. તેથી, તે આ માટે સમાન દેખાય નોટિસ અમે માત્ર આ કૉલ થાય છે સિવાય અલગ અલગ નામો. અમે હજી પણ એક પૂર્ણાંક છે કિંમત અને બે પોઇન્ટર. તેના બદલે સારવાર માત્ર છે કે આ આગામી વસ્તુ તરફ ઇશારો તરીકે પોઇન્ટર અને પહેલાંના વસ્તુ, અમે સારવાર કરી રહ્યાં છો આ પોઇન્ટર એક ડાબી બાળક માટે નિર્દેશ અને જમણી બાળક. બરાબર. જેથી અમારી સ્ટ્રક્ટ નોડ છે. અને હવે, માત્ર એક જ કાર્ય અમે જરૂર આ આડાશ છે, અમલ જે અમે વૃક્ષ, પ્રિન્ટીંગ પર જવા માંગો છો માટે વૃક્ષ બહાર કિંમતો. અહીં છીએ, અમે પ્રિન્ટ માંગો છો કરશે બહાર 20, 34, 36, 52, 59, અને 106. કેવી રીતે અમે તે પરિપૂર્ણ છે? તેથી તે ખૂબ જ છે. જો તમે ભૂતકાળમાં પરીક્ષામાં જોયું તો સમસ્યા તમે પ્રિન્ટ કરવા માગે છે વચ્ચે અલ્પવિરામ સાથે સમગ્ર વૃક્ષ બધું, તે પણ વાસ્તવમાં હતી કે કરતાં વધુ સરળ. તેથી અહીં ઉકેલ છે. આ નોંધપાત્ર રીતે સરળ હતી તમે પુનરાવર્તિત તે ન હોય તો. કોઈને પ્રયાસ કર્યો તો મને ખબર નથી iteratively કરવું તે. પરંતુ પ્રથમ, અમે અમારી આધાર કેસ હોય છે. શું રુટ નલ છે? પછી અમે માત્ર પાછા જઈ રહ્યાં છો. અમે કંઈપણ પ્રિન્ટ માંગો છો નથી. બાકી અમે પસાર રહ્યા છીએ પુનરાવર્તિત નહીં. સમગ્ર ડાબી ઉપવૃક્ષ છાપો. તેથી ઓછી બધું છાપી મારા વર્તમાન કિંમત કરતાં. અને પછી હું મારી જાતને છાપી જાઉં છું. અને પછી હું નીચે recurse જાઉં છું મારા સમગ્ર અધિકાર ઉપવૃક્ષ, તેથી બધું મારા કિંમત કરતાં વધારે. અને આ છાપી રહ્યું છે માટે બહાર બધું. આ કેવી રીતે ખરેખર પ્રશ્નો કે પરિપૂર્ણ? પ્રેક્ષક: હું એક પ્રશ્ન છે [અશ્રાવ્ય] પર. રોબ બોડેન: નજીક છે તેથી એક માર્ગ કોઈ પણ ફરી યાદ આવવું સમસ્યા માત્ર લાગે છે તે ગમે વિશે વિચારો હોય છે વિશે તમામ ખૂણે કિસ્સાઓમાં. તેથી અમે કરવા માંગો છો તે નક્કી કરો આ સમગ્ર વૃક્ષ છાપો. તેથી એ બધા અમે પર ધ્યાન કેન્દ્રિત કરવા જવું છે આ ચોક્કસ નોડ છે - 36. ફરી યાદ આવવું કોલ, અમે ડોળ તે માત્ર કામ કરે છે. અહીં, આ ફરી યાદ આવવું કોલ આડાશ, અમે પણ વિચાર કર્યા વિના તે વિશે માત્ર ડાબી સરકાઉ ત્રણ, પહેલેથી જ 20 છાપે છે કલ્પના અને અમારા માટે 34. અને પછી જ્યારે અમે આખરે પુનરાવર્તિત આ પર આડાશ કૉલ હક, કે જે યોગ્ય રીતે છાપશે 52, 59, અને અમારા માટે 106. તેથી આ 20, 34 પ્રિન્ટ કરી શકો છો કે જે આપવામાં આવે છે, અને અન્ય, 52, 59, 108 પ્રિન્ટ કરી શકો છો અમે કરવા સક્ષમ હોવા જોઈએ બધા પ્રિન્ટ છે કે મધ્યમાં ખુદ. તેથી અમને પહેલાં બધું છાપે. ખુદ છાપો, જેથી વર્તમાન નોડ પ્રિન્ટ 36, નિયમિત printf અને પછી અમને પછી બધું છાપો. ડેવિડ જે MALAN: આ જ્યાં રિકર્ઝન છે ખરેખર સુંદર નોંધાયો નહીં. તે વિશ્વાસ આ અદ્ભૂત લીપ છે જ્યાં તમે કામ ની tiniest બીટ કરવું. અને પછી તમે દો કોઈને અન્ય બાકીનું. અને તે કોઈ અન્ય તમે વધુમાં, છે. ગંભીર ભૂત પોઇન્ટ માટે, તેથી જો તમે પ્રશ્નો પર ોલ - રોબ બોડેન: પ્રશ્નો પર? ડેવિડ જે MALAN: અને થોડી નીચે જ્યાં નંબરો, કોઈને ખબર નથી આ નંબરો છે? રોબ બોડેન: હું શાબ્દિક કોઈ વિચાર છે. ડેવિડ જે MALAN: તે દેખાય ક્વિઝ દરમ્યાન. પ્રેક્ષક: તેઓ એ જ નંબરો છે? ડેવિડ જે MALAN: તે નંબરો. થોડું ઇસ્ટર એગ. તેથી ઓનલાઇન જોવાનું તમે તે માટે ઘર, તમે ઇમેઇલ દ્વારા અમને જણાવી શકો છો જો heads@CS50.net શું મહત્વ આ રિકરિંગ છ નંબરો છે 1 ક્વિઝ દરમ્યાન, અમે તમને શાવર કરશે અંતિમ પર આકર્ષક ધ્યાન સાથે વ્યાખ્યાન અને એક તણાવ બોલ. સૂક્ષ્મ, સરસ. રોબ બોડેન: કોઈપણ છેલ્લા પ્રશ્નો ક્વિઝ પર કંઈપણ વિશે શું?