[સંગીત વગાડવાનો] ANDI પેન્ગ: વિભાગ અઠવાડિયું 6 માટે આપનું સ્વાગત છે. અમે અમારા સ્ટાન્ડર્ડ માંથી deviated મંગળવારે કલમ સમય આ મનોરમ રવિવારે સવારે બપોરે. દરેક માટે આભાર કે આજે, પરંતુ ગંભીરતાપૂર્વક મને જોડાયા વધાવી એક રાઉન્ડ. તે એક સુંદર મોટી પ્રયાસ છે. હું લગભગ પણ તે કરી નથી, સમય છે, પરંતુ તે ઠીક હતું. તેથી હું તમને કે બધા જાણે છે માત્ર ક્વિઝ કર્યો છે. સૌ પ્રથમ માટે આપનું સ્વાગત છે કે ના ફ્લિપ બાજુ. બીજું, અમે તે વિશે વાત કરીશું. અમે ક્વિઝ વિશે વાત કરીશું. અમે કેવી રીતે વિશે વાત કરીશું તમે વર્ગ માં કરી રહ્યાં છો. તમે દંડ થશે. હું તમારી ક્વેસ્ચન માટે હોય છે અહીં ઓવરને અંતે તમે, તેથી જો તમે ગાય્સ લેવા માંગતા હોય તો એક, તે સંપૂર્ણપણે દંડ જુઓ. તેથી ઝડપથી અમે શરૂ કરો તે પહેલાં નીચે પ્રમાણે આજે માટે કાર્યસૂચિ છે. જેમ તમે જોઈ શકો, અમે છો મૂળભૂત ઝડપી ગોળીબાર માહિતી માળખાં એક સમગ્ર ટોળું દ્વારા ખરેખર, ખરેખર, ખરેખર ઝડપથી. જેમ કે, તે હશે નહિં સુપર અરસપરસ આજે. તે માત્ર મને પ્રકારની રાડારાડ હશો વસ્તુઓ છે કે જે તમે અને હું તમને સ્વાંગ તો, હું ખૂબ ઝડપથી જઈ રહ્યો છું, તો મને જણાવો. તેઓ માત્ર વિવિધ માહિતી છો માળખાં અને ભાગ તરીકે આ માટે તમારા pset ના આગામી અઠવાડિયે, તમે પડશે તેમને એક અમલ કરવા માટે કહેવામાં આવશે, કદાચ બે તેમને them-- બે તમારા pset છે. ઠીક છે, તેથી હું માત્ર જાઉં છું કેટલાક જાહેરાત સાથે શરૂ કરો. અમે રન ટાઇમ સ્ટેકનું અને વધુ ક્યુને પર જાઓ પડશે અમે ક્વિઝ પહેલાં શું કરતાં ઊંડાઈ. અમે પર જાઓ કડી પડશે ફરીથી, ફરી એક વાર યાદી કરતાં વધુ ગહન શું અમે ક્વિઝ પહેલાં હતી. અને પછી અમે હેશ વિશે વાત કરીશું કોષ્ટકો, વૃક્ષો અને પ્રયત્નોમાં, જે બધા તમારા pset માટે ખૂબ જરૂરી છે. અને પછી અમે કેટલીક પર જાઓ પડશે Pset5 માટે ઉપયોગી ટિપ્સ. ઠીક છે, તેથી 0 ક્વિઝ. સરેરાશ 58% હતી. તે ખૂબ જ ઓછી હતી, અને તેથી તમે ગાય્સ તમામ અનુસાર ખૂબ, ખૂબ સારી કામગીરી બજાવી હતી તે સાથે. તમે છો, તો ખૂબ ખૂબ, અંગૂઠો શાસન છે સરેરાશ એક પ્રમાણભૂત વિચલન અંદર અમે ઓછી છો, ખાસ કરીને કારણ કે આરામપ્રદ વિભાગમાં, તમે સંપૂર્ણપણે દંડ છો. તમે ટ્રેક પર છો. જીવન સારું છે. હું તેને લાગે છે કે ડરામણી ખબર હું આ ક્વિઝ પર 40% જેવા થઈ જાય છે. હું આ વર્ગ નિષ્ફળ જાઉં છું. હું તમને વચન, તમે નથી વર્ગ નિષ્ફળ જઈ રહી છે. તમે તદ્દન દંડ છો. પર મળી જે તમે તે માટે સરેરાશ, પ્રભાવશાળી, પ્રભાવશાળી, જેવા ગંભીર સારી રીતે થાય. હું મારી સાથે તેમને હોય છે. તેમને વિચાર આવે છે માટે મફત લાગે વિભાગ ઓવરને મુ. જો તમે કોઇ હોય તો મને જણાવો મુદ્દાઓ, તેમની સાથે પ્રશ્નો. અમે તમારા સ્કોર ઉમેરો તો ખોટું, અમને જણાવો. ઠીક છે, Pset5 તેથી, આ એક ખરેખર છે અર્થમાં યેલ માટે વિચિત્ર સપ્તાહ અમારા pset કારણે છે કે જે સહિત બપોર ખાતે બુધવારે અંતમાં દિવસ છે, તેથી તે ખરેખર છે બપોર એ મંગળવારે સૈદ્ધાંતિક કારણે. કદાચ કોઈ એક સમાપ્ત બપોર એ મંગળવારે છે. તે તદ્દન દંડ છે. અમે ઓફિસ કલાક હોય છે જઈ રહ્યાં છો આજની રાત કે સાંજ તેમજ સોમવારે રાત્રે. અને વિભાગો તમામ આ અઠવાડિયે કરશે ખરેખર વર્કશોપ ફેરવી શકાય, તેથી પૉપ મફત લાગે તમે ઇચ્છો તે કોઇપણ વિભાગ અને તેઓ પ્રકારની મીની-pset પ્રયત્ન કરીશું કે મદદ માટે વર્કશોપ. તેથી, જેમ કે આ માત્ર વિભાગ છે જ્યાં અમે સામગ્રી શિક્ષણ રહ્યાં છો. બીજા બધા વિભાગો ધ્યાન કેન્દ્રિત કરવામાં આવશે સંપૂર્ણપણે આ pset માટે મદદ કરે છે. અરે વાહ? પ્રેક્ષક: ક્યાંથી ઓફિસ કલાક હોય છે? ANDI પેન્ગ: ઓફિસ કલાકો ઓહ, સારો પ્રશ્ન tonight--. મને લાગે છે કે ઓફિસ કલાકો આજની રાત કે સાંજ ટીલ અથવા કોમન્સ હોય છે. તમે ઑનલાઇન CS50 તપાસ તો અને તમે, ઓફિસ કલાકો પર જાઓ એક શેડ્યૂલ ત્યાં પ્રયત્ન કરીશું કે તેમને બધા છે જ્યાં તમે કહે છે. હું આજની રાત કે સાંજ ક્યાં ખબર અથવા કાલે ટીલ છે અને હું અમે હોઈ શકે છે લાગે છે અન્ય રાત કોમન્સ. મને ખાતરી નથી. સારા પ્રશ્ન. CS50 પર તપાસો. આ અંગે સરસ, કોઇ પ્રશ્નો ત્રણ દિવસ જેમ આગામી માટે સુનિશ્ચિત? હું ડેવિડ જેમ તમે ગાય્સ વચન આ ટેકરી ની ટોચ છે, જણાવ્યું હતું. તમે ગાય્ઝ લગભગ ત્યાં છે. જસ્ટ વધુ ત્રણ દિવસ. ત્યાં વિચાર, અને પછી અમે બધા નીચે આવવું પડશે. અમે એક સરસ સીએસ મફત તોડી પડશે. અમે પાછા આવો પડશે. અમે વેબ ડાઇવ પડશે પ્રોગ્રામિંગ અને વિકાસ, ખૂબ જ મજા વસ્તુઓ છે કે જે સરખામણીમાં અન્ય psets કેટલાક. અને તે ઠંડી છે, અને પડશે અમે આનંદ ઘણાં બધાં પડશે. અમે વધુ કેન્ડી પડશે. કેન્ડી માટે માફ કરશો. હું કેન્ડી ભૂલી ગયા છો. તે એક રફ સવારે હતું. તેથી જો તમે ગાય્સ, લગભગ ત્યાં છે અને હું તમને ગાય્ઝ ખરેખર ગર્વ અનુભવું છું. ઠીક છે, તેથી ટાઇમ સ્ટેકનું. જે જેક વિશે પ્રશ્ન પ્રેમ અને ક્વિઝ પર પોતાના કપડાં? કોઈ એક? ઠીક છે, કે દંડ છે. તેથી અનિવાર્યપણે તમે કરી શકો છો તરીકે ચિત્ર જેક, અહીં આ વ્યક્તિ, કપડાં લેવા પ્રેમ કરે છે સ્ટેક ટોચ બહાર અને તે પર તે પાછા મૂકે તેમણે પછી સ્ટેક થાય છે. આ રીતે તેથી, તેમણે ક્યારેય મેળવવામાં કરી રહ્યું છે આ નીચે તેમના કપડાં ગંજી. તેથી આ પ્રકારની વર્ણવે છે મૂળભૂત માહિતી બંધારણ સ્ટેક અમલીકરણ કેવી રીતે થાય છે. આવશ્યકપણે, એક વિચાર વસ્તુઓ કોઇ સ્ટેક તરીકે સ્ટેક તમે ટોચ પર વસ્તુઓ મૂકી, અને જ્યાં પછી તમે ટોચ પરથી તેમને બહાર પૉપ. તેથી LIFO અમે ગમે મીતાક્ષર છે છેલ્લા, પ્રથમ બહાર use-- છે. અને તેથી ટોચ પર રહે સ્ટેક બહાર આવે છે કે પ્રથમ એક છે. અને તેથી આ બે શબ્દો અમે સાંકળવા માટે ગમે તે સાથે દબાણ અને પોપ કહેવામાં આવે છે. ત્યારે તમે પર કંઈક દબાણ ગંજી, અને તમે બેક અપ પૉપ. અને તેથી હું આ એક પ્રકારની છે ધારી તમે તે માટે અમૂર્ત ખ્યાલ જે જેવા જોવા માંગો છો આ વાસ્તવિક અમલીકરણ વાસ્તવિક દુનિયામાં. તમે કેવી રીતે ઘણા નિબંધ લખ્યો છે કદાચ એક કલાક જેવી તે કારણે હતો પહેલાં અને તમે આકસ્મિક એક વિશાળ કાઢી આકસ્મિક જેમ તે Chunk? અને પછી શું કરવું નિયંત્રણ અમે તેને પાછા મૂકવા ઉપયોગ કરો છો? નિયંત્રણ-Z, યાહ? નિયંત્રણ-Z, તેથી ગુણ્યા જથ્થો નિયંત્રણ-ઝેડ મારા જીવન સાચવવામાં આવી છે કે, દર વખતે મારા મૂર્ખ સાચવવામાં આવી છે કે સ્ટેક મારફતે અમલમાં છે. જરૂરી બધી માહિતી કે, તમારા વર્ડ દસ્તાવેજ પર તે દબાણ અને ઇચ્છા પર પોપ નહીં. અને તેથી અનિવાર્યપણે જ્યારે તમે કંઈપણ કાઢી, તમે તે પાછા પૉપ. અને પછી તમે પર પાછા જરૂર છે, તો તમે નિયંત્રણ સી શું કરે છે, કે જે તેને દબાણ કરો. અને તેથી વાસ્તવિક વિશ્વમાં કાર્ય કેવી રીતે સરળ માહિતી માળખું તમારા રોજિંદા જીવન સાથે મદદ કરી શકે છે. તેથી એક સ્ટ્રક્ટ માર્ગ છે કે અમે ખરેખર એક સ્ટેક બનાવો. અમે પછી સ્ટ્રક્ટ વ્યાખ્યાયિત લખો અને અમે તેને તળિયે સ્ટેક કૉલ કરો. અને સ્ટેક અંદર, અમે બે પરિમાણો છે અમે અનિવાર્યપણે ચાલાકી કરી શકો છો કે તેથી અમે ઘરનાં પરચૂરણ કામો સ્ટાર શબ્દમાળાઓ ક્ષમતા છે. તે કરી છે કે બધા ઝાકઝમાળ રહ્યા છે અમે ગમે તમે ઇચ્છો સ્ટોર કરી શકો છો કે જે અમે તેની ક્ષમતા નક્કી કરે છે. ક્ષમતા માત્ર મેક્સ જથ્થો છે વસ્તુઓ અમે આ એરે માં મૂકી શકો છો. પૂર્ણાંક માપ રાખે છે કે કાઉન્ટર છે ઘણી વસ્તુઓ કેવી રીતે ટ્રેક હાલમાં છે સ્ટેક માં. તેથી તો અમે, એ, ટ્રૅક રાખી શકો છો બંને વાસ્તવિક સ્ટેક કેવી રીતે મોટા, અને, બી, કેવી રીતે સ્ટેક ખૂબ અમે માંગતા નથી, કારણ કે અમે ભરવામાં અમારી ક્ષમતા શું છે ઉપર ઓવરફ્લો. ઉદાહરણ તરીકે, આ અતિસુંદર તેથી પ્રશ્ન તમારા ક્વિઝ પર હતી. આવશ્યકપણે, આપણે કેવી રીતે દબાણ કરવા સ્ટેક ટોચ પર. સુંદર સરળ. તમે તેને જોવા, અમે આ દ્વારા લઈ જશું. [અશ્રાવ્ય] ચોક્કસ માપ તો જ્યારે તમે યાદ રાખો કે, કોઈપણ ઍક્સેસ કરવા માંગો છો એક સ્ટ્રક્ટ અંદર પરિમાણ, તમે struct.parameter નામ નથી. આ કિસ્સામાં, એસ છે અમારા સ્ટેક નામ. અમે કદ ઍક્સેસ કરવા માંગો છો તે, તેથી અમે s.size નથી. માપ નથી છે જેથી લાંબા સમય સુધી ક્ષમતા અથવા લાંબા સમય સુધી સમાન તે ક્ષમતા કરતાં ઓછી છે, કારણ કે ક્યાં અહીં કામ કરશે. તમે અંદર ઍક્સેસ કરવા માંગો છો તમારા સ્ટેક, s.strings, જેથી અને તમે તે નવી નંબર મૂકી રહ્યા છીએ તમે ત્યાં દાખલ કરવા માંગો છો છે. ચાલો આપણે કરવા માંગો છો કરશે કહે છે સ્ટેક પર પૂર્ણાંક n દાખલ કરો, અમે s.strings કરી શકે કૌંસ, s.size n સમકક્ષ હોય છે. કદ જ્યાં છે, કારણ કે અમે હાલમાં સ્ટેક છે અમે દબાણ જઈ રહ્યાં છો તો તે પર, અમે ફક્ત ઍક્સેસ માપ છે ત્યાં, આ સ્ટેક વર્તમાન પૂર્ણતાનો, અને અમે તે પર પૂર્ણાંક n દબાણ. અને પછી અમે તે ખાતરી કરવા માંગો છો અમે પણ એ કદ incrementing કરી રહ્યાં છો અમે કર્યું છે કે જેથી અમે ટ્રૅક રાખી શકો છો સ્ટેક કરવા માટે વધારાની વસ્તુ ઉમેર્યું. હવે અમે એક મોટી કદ ધરાવે છે. આ અહીં અર્થમાં બનાવવા નથી બધાને કેવી રીતે તાર્કિક તે કામ કરે છે? તે પ્રકારની ઝડપી હતી. પ્રેક્ષક: તમે પર જઈ શકો છો આ s.stringss.strings [s.size] ફરી? ANDI પેન્ગ: ખાતરી કરો કે, તેથી શું કરે છે અમને આપો હાલમાં s.size? પ્રેક્ષક: તે વર્તમાન માપ છે. ANDI પેન્ગ: ચોક્કસ, જેથી અમારા કદ પર છે કે વર્તમાન ઇન્ડેક્સ, અને તેથી અમે નવા પૂર્ણાંક મૂકેલ અમે s.size દાખલ કરવા માંગો છો છે. કે અર્થમાં છે? S.strings કારણ કે બધા છે એરે નામ છે. તે બધા ઍક્સેસ છે અમારા સ્ટ્રક્ટ અંદર એરે, અને તેથી અમે કરવા માંગો છો, તો કે ઇન્ડેક્સમાં n મૂકો, અમે હમણાં જ તે ઍક્સેસ કરી શકો છો ઉપયોગ કૌંસ s.size. કૂલ. બધા હક છે, પૉપ, હું તેને બહાર સ્યુડોકોડનો તમે ગાય્સ, પરંતુ સમાન વિભાવના છે. કે અર્થમાં છે? કદ વધારે હોય છે પછી શૂન્ય કરતાં તમે તમે કંઈક લેવા માંગો છો ખબર છે કે બહાર માપ નથી, કારણ કે જો શૂન્ય કરતાં વધારે હોય, તો પછી તમે સ્ટેક માં કશું જ નથી. તેથી જો તમે માત્ર ચલાવવા માંગો છો આ કોડ છે, તે કરી શકો છો પૉપ કંઈક હોય તો પૉપ. કદ વધારે હોય છે તેથી 0 કરતાં, અમે ઓછા માપ. અમે કદ હ્રાસ અને પછી પાછા કારણ કે તે અંદર ગમે છે પોપિંગ, અમે કરવા માંગો છો સંગ્રહિત થાય છે ગમે વપરાશ સ્ટેક ટોચ ઇન્ડેક્સ ઓફ. બધું અર્થમાં બનાવવા? હું બનાવેલ હોય તો તમે ગાય્ઝ આ લખી તમે ગાય્ઝ તે બહાર લખવા માટે સમર્થ હશે? ઠીક છે, તમે ગાય્સ તે સાથે આસપાસ રમી શકે છે. કોઈ ચિંતાઓ તમે તેને વિચાર ન હોય તો. અમે કોડ માટે સમય નથી તે બહાર આજે આપણે કર્યું કારણ કે આ માળખાં ઘણો મળી મારફતે જાઓ, પરંતુ આવશ્યક માટે સ્યુડોકોડનો, ખૂબ, ખૂબ સમાન દબાણ. જસ્ટ તર્ક સાથે અનુસરો. તમે બધા ઍક્સેસ કરો છો તેની ખાતરી કરો યોગ્ય રીતે તમારા સ્ટ્રક્ટ ના લક્ષણો. અરે વાહ? પ્રેક્ષક: કરશે આ સ્લાઇડ્સ અને આ સમગ્ર બાબત ઉપર આજે જેવું હોય છે? ANDI પેન્ગ: હંમેશા હા. હું મૂકવા પ્રયાસ કરવા જઈ રહ્યો છું આ અપ પછી એક કલાક જેવી. હું ડેવિડ ઇમેઇલ કરીશું, ડેવિડ કરવા માટે પ્રયત્ન કરશે આ પછી એક કલાક જેવી તે મૂકવામાં. ઠીક છે, તેથી તે પછી અમે આ અન્ય ખસે કોઈ માહિતી માળખું એક કતાર કહેવાય છે. તમે ગાય્સ અહીં જોઈ શકો છો, એક કતાર, અમને વચ્ચે આ બ્રિટિશ માટે, તે બધા એક વાક્ય છે. તેથી વિપરીત શું તમે એક સ્ટેક લાગે છે એક કતાર બરાબર શું છે તાર્કિક તમે તેને લાગે છે. તે FIFO નિયમો દ્વારા યોજાય છે જે પ્રથમ, પ્રથમ બહાર છે. જો તમે પ્રથમ છો, તો લીટી માં એક, તમે છો પ્રથમ એક કે વાક્ય બહાર આવે છે. તેથી અમે આ શું કહી જેવા dequeueing અને enqueueing છે. અમે કંઈક ઍડ કરવા માંગો છો અમારા કતાર કરવા માટે, અમે એન્ક્યૂ. અમે માંગો છો, તો dequeue, અથવા લેવા કંઈક દૂર, અમે dequeue. અમે પ્રકારની છો કે જેથી તે જ અર્થમાં નિશ્ચિત કદના તત્વો બનાવવા કે અમે ચોક્કસ સ્ટોર કરી શકો છો વસ્તુઓ છે, પરંતુ અમે પણ કરી શકો છો અમે મૂકીને કરી રહ્યાં છો જ્યાં બદલો તેમને અંદર પરિમાણો શું પ્રકાર ઉપર આધારિત વિધેય અમે માંગો છો. રન ટાઇમ સ્ટેકનું તેથી, અમે છેલ્લા ઇચ્છતા એક, એ પ્રથમ એક બહાર હોય છે. કતાર અમે પ્રથમ વસ્તુ કરવા માંગો છો છે બહાર પ્રથમ વસ્તુ હોય છે. સ્ટ્રક્ટ પ્રકાર તેથી તમે જોઈ શકો છો, વ્યાખ્યાયિત, તે થોડો અલગ છે સ્ટેક હતી શું માત્ર અમે રાખવા માટે હોય છે નથી કારણ કે કદ અત્યારે છે જ્યાં ટ્રેક, અમે પણ વડા ટ્રૅક રાખવા માંગો છો તેમજ જ્યાં અમે હાલમાં છે. તેથી હું તેને સરળ છે લાગે છે હું આ ડ્રો તો. તેથી ચાલો આપણે એક કતાર મળી છે કલ્પના દો, તેથી આ વડા અહીં છે કહે છે. વાક્ય વડા, ચાલો માત્ર કે ત્યાં હાલમાં છે કહે છે અને અમે સામેલ કરવા માંગો છો કતાર માં કંઈક. હું અનિવાર્યપણે કદ કૉલ જાઉં છું પૂંછડી તરીકે જ વસ્તુ છે, તમારી કતારમાં છે ત્યાં ઓવરને. આપણે માત્ર કદ અહીં છે કહે છે. તેથી કેવી રીતે એક feasibly કરે એક કતાર માં કંઈક દાખલ? શું ઈન્ડેક્સ અમે જગ્યાએ કરવા માંગો છો જ્યાં અમે દાખલ કરવા માંગો છો. આ શરૂઆત છે, તો તમારા કતાર અને આ તે અંત છે અથવા તે માપ, જ્યાં અમે કરી આગામી પદાર્થ ઉમેરવા માંગો છો? AUDIENCE: [અશ્રાવ્ય] ANDI પેન્ગ: ચોક્કસ, તમે ઍડ કરવા માંગો છો તેના પર આધાર રાખીને તમે તેને લખ્યું છે. ક્યાં આ ખાલી છે કે ખાલી છે. તેથી તમે કદાચ તે ઍડ કરવા માંગો છો કારણ કે અહીં માપ is-- તો આ બધા સંપૂર્ણ હોય તો, તમે કરવા માંગો છો અધિકાર, અધિકાર તેને અહીં ઉમેરો કરવા માટે? અને તેથી કે, ખૂબ, ખૂબ, જ્યારે સરળ, નથી તદ્દન હંમેશા સાચી મુખ્ય તફાવત છે, કારણ કે એક કતાર અને સ્ટેક વચ્ચે કે કતાર કરી શકો છો છે ખરેખર આયોજિત કરી કે જેથી વડા ફેરફારો તમે કરવા માંગો છો તેના પર આધાર રાખીને તમારા કયૂ શરૂઆતમાં શરૂ કરવા માટે. અને પરિણામે, તમારા પૂંછડી પણ બદલી રહ્યું છે. અને તેથી પર એક નજર હમણાં આ કોડ. તમે ગાય્ઝ પણ કહેવામાં આવ્યું હતું તરીકે એન્ક્યૂ, ક્વિઝ પર લખો. કદાચ અમે શા માટે મારફતે વાત કરીશું જવાબ તે શું હતું. હું ખૂબ એક પર આ વાક્ય નથી ફિટ કરી શકે છે કોડ પરંતુ આવશ્યક આ ભાગ એક વાક્ય પર પ્રયત્ન કરીશું. 30 સેકન્ડ જેવા વિતાવે છે. એક નજર, અને શા માટે જુઓ આ તે છે કે જે રીતે છે. ખૂબ, ખૂબ સમાન સ્ટ્રક્ટ, ખૂબ, ખૂબ અગાઉના સમાન માળખું કદાચ સિવાય સ્ટેક કોડ એક વાક્ય. અને કોડ એક વાક્ય છે કે કાર્યક્ષમતા નક્કી કરે છે. અને તે ખરેખર અલગ સ્ટેક થી કતાર. કોઈપણ ઘણો પ્રયાસ કર્યો લેવા માંગો છો તમે છે શા માટે સમજાવીને અહીં આ જટિલ બાબત મળી? અમે પરત જોવા અમારા અદ્ભુત મિત્ર મોડ્યુલસ. તમે ગાય્ઝ ટૂંક સમયમાં આવશે પ્રોગ્રામિંગ ઓળખી, લગભગ કોઈપણ સમયે તમે કંઈક કરવાની જરૂર છે કંઈપણ આસપાસ લપેટી, મોડ્યુલસ તે કરવા માર્ગ હોઇ રહ્યું છે. તેથી, એ જાણીને કે કોઈને માંગો છો નથી કોડ કે વાક્ય સમજાવીને પ્રયાસ? હા, બધા જવાબો છે સ્વીકૃત અને આપનું સ્વાગત છે. પ્રેક્ષક: તમે મને વાત છે? ANDI પેન્ગ: યાહ. પ્રેક્ષક: ઓહ, ના માફ કરશો. ANDI પેન્ગ: બરાબર, તેથી ચાલો આ કોડ લઈ જવામાં. તેથી જ્યારે તમે પ્રયાસ કરી રહ્યા છો એક કતાર પર કંઈક ઉમેરવા માટે, વડા બને છે કે કોઈ પણ સંજોગોમાં અહીં હોઇ શકે છે, તે અમારા માટે ખૂબ જ સરળ છે માત્ર ઓવરને પર જવા માટે અધિકાર કંઈક દાખલ? પરંતુ કતાર સમગ્ર બિંદુ છે કે ખરેખર ગતિશીલ વડા જ્યાં પર આધાર રાખીને બદલી અમે અમારા ક્યૂ શરૂઆત હોઈ કરવા માંગો છો, અને, જેમ કે પૂંછડી તરીકે પણ બદલી રહ્યું છે. અને તેથી આ નથી હતી કે કલ્પના કતાર, પરંતુ તેના બદલે આ કતાર હતો. માતાનો વડા અહીં છે કહે છે. આપણે આપણા કતાર આ જેવો દેખાતો હતો કહે છે. જ્યાં અમે પાળી કરવા ઈચ્છતો હોય તો લીટી શરૂઆત છે, અમે વડા ખસેડી કહે દો આ રીતે અને અહીં માપો. હવે અમે કંઈક ઉમેરવા માંગો છો આ કતાર, પરંતુ તમે ગાય્ઝ જોઈ શકો છો, તે માત્ર જેથી સરળ નથી માપ પછી ગમે ઉમેરો પછી અમે બહાર ચલાવવા કારણ કે અમારા વાસ્તવિક એરે ના રિંગથી બંધાયા. અમે ખરેખર ઍડ કરવા માંગો છો જ્યાં અહીં છે. તે એક કતાર સુંદરતા છે તે દૃષ્ટિની, આપણને છે લીટી આ જેવા જાય જેવી લાગે છે, પરંતુ એ માહિતી બંધારણ માં સંગ્રહ કરવામાં આવે, તેઓ એક ચક્ર જેવી આપે છે. તે પ્રકારની આસપાસ આવરણમાં ફ્રન્ટ જ રીતે એક વાક્ય પણ લપેટી શકો છો કે આસપાસ ત્યાં તમે પર આધાર રાખીને હોઈ લીટી શરૂઆત કરવા માંગો છો. અને તેથી અમે લો તો અહીં નીચે જુઓ, ચાલો અમે બનાવવા માંગો છે કાર્ય એન્ક્યૂ કહેવાય છે. અમે તે q માં પૂર્ણાંક n ઉમેરવા માગે છે. Q.size અમે અમારી માહિતી કે કહી શકશો q-- તો અમારા queue.size નહી હોય તો માળખું ક્ષમતા અથવા તો સમાન તે ક્ષમતા કરતાં ઓછી છે q.strings અમારા ક્યૂ અંદર એરે છે. અમે સેટ જઈ રહ્યાં છો કે q.heads સમાન, જે અહીં છે, વત્તા q.size ક્ષમતા દ્વારા મોડ્યુલસ જે અહીં આસપાસ પાછા લપેટી. આ ઉદાહરણ ઈન્ડેક્સ તેથી વડા અધિકાર, 1 છે? કદ ઇન્ડેક્સ 0, 1, 2, 3, 4 છે. તેથી અમે 1 વત્તા 4 મોડ્યુલસ કરી શકો છો 5 છે, જે અમારી ક્ષમતા દ્વારા. શું આપે છે? ઇન્ડેક્સ શું છે કે આ બહાર આવે છે? પ્રેક્ષક: 0. ANDI પેન્ગ: 0, જે અહીં બને છે, અને તેથી અમે સમક્ષ રજુ કરવાનો પ્રયત્ન કરવા માંગો છો અહીં માં દાખલ કરવા માટે. અને તેથી આ સમીકરણ અહીં પ્રકારની માત્ર કોઈપણ નંબરો સાથે કામ કરે છે જ્યાં પર આધાર રાખીને તમારી વડા અને તમારા માપ છે. તમે શું તે ખબર હોય વસ્તુઓ તમે જાણો છો, છે બરાબર તમે દાખલ કરવા માંગો છો જ્યાં ગમે તમારા કતાર પછી છે. કે દરેકને અર્થમાં બનાવવા નથી? હું મગજના પ્રકારની ખબર સતામણી કરનાર ખાસ કરીને કારણ કે આ તમારા ક્વિઝ બાદ આવ્યો હતો. પરંતુ આસ્થાપૂર્વક દરેકને હવે સમજી શકે છે શા માટે આ ઉકેલ અથવા આ કાર્ય તે છે કે જે રીતે છે. કોઈપણ કે થોડી પર અસ્પષ્ટ? ઠીક છે. અને તેથી હવે, જો તમે આ dequeue કરવા માગે છે અમારા વડા સ્થળાંતર હશે જ્યાં છે અમે dequeue હતા, કારણ કે અમે ક્યૂ ઓવરને બંધ ન લો. અમે અધિકાર છે, વડા બોલ લેવા માંગો છો? તેથી પરિણામે, વડા બદલવા માટે ચાલે છે, જ્યારે તમે એન્ક્યૂ અને તે શા માટે છે, તમે ટ્રેક રાખવા માટે મળી છે જ્યાં તમારા માથા અને તમારા કદ દાખલ કરવા માટે સમર્થ થવા માટે છે યોગ્ય સ્થિતિ માં. અને તેથી તમે dequeue, ત્યારે હું પણ તે બહાર સ્યુડોકોડનો. જો તમે ઇચ્છો તો મફત લાગે આ બહાર કોડિંગ પ્રયાસ. તમે અધિકાર છે, વડા ખસેડવા માંગો છો? હું dequeue કરવા માગતા હતા, હું માથા ઉપર ખસેડશે. આ વડા હશે. અને અમારી વર્તમાન કદ કરશે બાદબાકી કારણ કે અમે લાંબા સમય સુધી એરે ચાર તત્વો હોય છે. અમે માત્ર ત્રણ છે, અને પછી અમે માંગો છો અંદર સંગ્રહિત કરવામાં આવી હતી ગમે પાછા ફરવા માટે વડા અમે આ લેવા માંગો છો કારણ કે સ્ટેક માટે ખૂબ જ સમાન કિંમત. જસ્ટ તમે લઈ રહ્યા છો એક અલગ સ્થળ પરથી, અને તમે તમારા નિર્દેશક પુનઃસોંપણી છે પરિણામે અલગ જગ્યાએ છે. તાર્કિક રીતે, દરેક અનુસરે છે? ગ્રેટ. ઠીક છે, તેથી અમે થોડી વાત કરવા જઈ રહ્યાં કડી થયેલ યાદીઓ વિશે ઊંડાણપૂર્વક વધુ તેઓ ખૂબ, ખૂબ મૂલ્યવાન આવશે કારણ કે આ અઠવાડિયે માતાનો કોર્સ તમારા માટે psets. લિંક યાદીઓ, તરીકે તમે ગાય્ઝ તેઓ બધા છે, યાદ કરી શકો છો ચોક્કસ ગાંઠો છે કે ગાંઠો છે એક કિંમત અને નિર્દેશક બંને કિંમતો કે જે એકસાથે કડી થયેલ હોય છે તે પોઇન્ટર છે. કેવી રીતે અને તેથી સ્ટ્રક્ટ અમે અહીં નોડ અમે બનાવવા છે, કે જે પૂર્ણાંક n હોય ગમે એક સ્ટોર અથવા શબ્દમાળા n કિંમત અથવા તમે કરવા માંગો છો ગમે ઘરનાં પરચૂરણ કામો સ્ટાર n એ, કૉલ કરો. નિર્દેશક છે, જે સ્ટ્રક્ટ નોડ તારો, તમે દરેક નોડ હોય માંગો છો, તમે તે હોય રહ્યા છીએ આગામી તરફ નિર્દેશક બિંદુ. તમે વડા પડશે છે કે એક કડી થયેલ યાદી બાકીના નિર્દેશ રહ્યું તેથી પર અને તેથી આગળ કિંમતો તમે છેવટે અંત સુધી પહોંચવા ત્યાં સુધી. અને આ છેલ્લા નોડ માત્ર છે એક નિર્દેશક ન કરવા જઈ રહી છે. તે નિર્દેશ કરવા જઈ રહ્યું છે નલ, અને તે જ્યારે છે તમે ફટકો કર્યું છે ખબર તમારા યાદીની લિંક ઓવરને અંતે છે જ્યારે તમારા છેલ્લાં નિર્દેશક કંઈપણ નિર્દેશ નથી. તેથી અમે વધુ એક બીટ જાઓ રહ્યા છીએ સંબંધિત ઊંડાઈ કેવી રીતે એક કદાચ કરશે એક કડી થયેલ યાદી શોધ. આ અમુક છે શું યાદ રાખો કડી થયેલ યાદીઓ ખામીઓ શોધ સંબંધિત ઝાકઝમાળ કડીઓ. ઝાકઝમાળ તમે કરી શકો છો દ્વિસંગી શોધ છે, પરંતુ શા માટે તમે એક કડી થયેલ યાદી છે કે ન કરી શકો? પ્રેક્ષક: તેઓ બધા સાથે જોડાયેલ કરી રહ્યાં છો કારણ કે, પરંતુ તમે તદ્દન જ્યાં ખબર નથી [અશ્રાવ્ય]. ANDI પેન્ગ: અરે વાહ, જેથી બરાબર યાદ કે જે એરે દીપ્તિ કે અમે હતા હકીકત એ હતી રેન્ડમ ઍક્સેસ મેમરી જ્યાં હું ઇન્ડેક્સ કિંમત ઇચ્છતા હોય તો છ, હું માત્ર ઈન્ડેક્સ છ કહી શકે મને તે કિંમત આપે છે. એરે છટણી કરવામાં આવે છે કારણ કે તે છે મેમરી એક સંલગ્ન અવકાશ માં એક જ જગ્યાએ છે, જ્યારે કડી થયેલ યાદીઓ પ્રકારની છે, રેન્ડમ આસપાસ બધા જોડાયા અને માત્ર રસ્તો તમે એક શોધી શકો છો તમે કહે છે કે એક નિર્દેશક મારફતે છે કે આગામી નોડ છે જ્યાં સરનામું. અને તેથી પરિણામે, માત્ર રસ્તો એક કડી થયેલ યાદી મારફતે શોધવા માટે રેખીય શોધ છે. હું બરાબર જ્યાં ખબર નથી કારણ કે આ કડી થયેલ યાદીમાં 12 કિંમત છે, હું સમગ્ર પસાર કરવા માટે હોય છે તે યાદીની લિંક એક પ્રથમ નોડ માટે વડા માંથી એક, બીજા નોડ માટે, ત્રીજા નોડ માટે, હું આખરે વિચાર સુધી નીચે બધી રીતે હું શોધી રહ્યો છું કે નોડ છે જ્યાં. અને તેથી આ અર્થમાં, શોધ એક કડી થયેલ યાદી પર હંમેશા n છે. તે હંમેશા n છે. તે રેખીય સમય હંમેશા છે. અને તેથી કોડ જેમાં અમે આ અમલ, અને આ તમે કારણ કે તમે ગાય્ઝ માટે એક બીટ નવું છે ગાય્ઝ ખરેખર વિશે અથવા ક્યારેય વાત કરી છે કેવી રીતે જોઇ પોઇન્ટર પોઇન્ટર મારફતે શોધવા, તેથી અમે મારફતે બતાવીશું આ માટે ખૂબ, ખૂબ જ ધીમે ધીમે. જેથી bool શોધ, અધિકાર, અમે માંગો છો કલ્પના દો કહેવાય કાર્ય બનાવવા માટે સાચું આપે છે કે શોધ તમે કડી અંદર કિંમત મળે તો યાદી, અને તે અન્યથા ખોટી આપે છે. નોડ સ્ટાર યાદી છે હાલમાં માત્ર નિર્દેશક તમારા કડી થયેલ યાદીમાં પ્રથમ વસ્તુ છે. પૂર્ણાંક n તમે છો કે જે કિંમત છે કે યાદી માટે શોધ. તેથી નોડ સ્ટાર નિર્દેશક યાદી સમકક્ષ હોય છે. કે અમે સુયોજિત કરી રહ્યાં છો એનો અર્થ એ થાય અને નિર્દેશક બનાવવા યાદીમાં અંદર કે પ્રથમ નોડ માટે. મારી સાથે દરેક વ્યક્તિને? અમે જાઓ હતા તેથી જો અહીં પાછા, હું હશે નિર્દેશ કે નિર્દેશક આરંભ વડા ગમે છે કે જે યાદી છે. અને પછી તમે અહીં નીચે વિચાર એકવાર નિર્દેશક સમાન નલ નથી, જેથી અમે છે જેમાં લૂપ છે સરકાઉ ત્યારબાદ હોઈ ચાલે શું કારણ કે અમારા યાદી બાકીના નિર્દેશક નલ સમકક્ષ જ્યારે થાય છે? અમે અહી ખબર છે કે AUDIENCE: [અશ્રાવ્ય] ANDI પેન્ગ: બરાબર છે, તેથી આપણે જાણીએ છીએ કે અમે અધિકાર યાદી ઓવરને પહોંચી ગયા છો? તમે અહીં પાછા જાઓ, દરેક નોડ અન્ય નોડ માટે નિર્દેશ કરતી હોવી જોઈએ અને તેથી પર અને તેથી આગળ તમે છેવટે હિટ સુધી તમારા યાદીની લિંક પૂંછડી, જે નિર્દેશક છે કે જે હમણાં જ કોઈ કરતાં ગમે ત્યાં અન્ય બિંદુ નથી. અને તેથી તમે મૂળભૂત ખબર છે કે તમારા યાદી હજી પણ ત્યાં જ છે નિર્દેશક સમાન નથી ત્યાં સુધી નલ તે નલ સમકક્ષ કારણ કે એક વખત, તમે કોઈ વધુ સામગ્રી છે કે ખબર. જેથી અમે છો કે જેમાં લૂપ છે વાસ્તવિક શોધ છે જઈ રહી છે. અને નિર્દેશક તમે જુઓ છો, તો ત્યાં તીર કાર્ય તે પ્રકારના? તેથી નિર્દેશક પોઇન્ટ જો એન, તો બરાબર એ બરાબર એ સમયે નિર્દેશક, તેથી તેનો અર્થ એ છે કે જો તમે છો કે નિર્દેશક દરેક ઓવરને પર શોધ નોડ કિંમત ખરેખર સમાન છે પછી તમે શોધી રહ્યાં છો તમે સાચા પરત કરવા માંગો છો. તેથી મૂળભૂત રીતે, તમે એક ગાંઠ પર છો, તો તે , તમે શોધી રહ્યા છો તે મૂલ્ય ધરાવે છે તમે થયા છો ખબર છે કે સફળતાપૂર્વક શોધ કરવાનો. નહિંતર, તમે સુયોજિત કરવા માંગો છો બીજા ગાંઠ પર તમારા નિર્દેશક. કે અહીં તે લીટી શું કરે છે છે. પોઇન્ટર આગામી નિર્દેશક સમકક્ષ હોય છે. કે કામ કરી રહ્યા છે કેવી રીતે દરેકને જુઓ છો? અને અનિવાર્યપણે તમે જઈ રહ્યાં છો માત્ર આ યાદીમાં સમગ્ર પસાર તમારા નિર્દેશક દરેક સમય સુધી રીસેટ તમે આખરે યાદી ઓવરને દબાવો. અને તમે ત્યાં કોઈ ખબર છે કે વધુ ગાંઠો, મારફતે શોધવા માટે અને પછી તમે ખોટા પાછા આવી શકો છો તમે જાણો છો, કારણ કે વેલ, ઓહ, હું શોધવા માટે સક્ષમ કરવામાં આવી છે તો યાદીમાં સમગ્ર મારફતે. આ ઉદાહરણમાં, તો હું ઇચ્છતા હોય તો 10 ની કિંમત જોવા માટે, અને હું વડા શરૂ થાય છે, અને હું નીચે બધી રીતે શોધવા અને હું આખરે, આ મળી છે, જે નલ નિર્દેશ કરે છે કે એક નિર્દેશક, હું નથી, ક્રેપ, હું 10 ધારી ખબર છે કે આ યાદી હું તેને શોધી શક્યા નથી કારણ કે. અને હું તેમને યાદીમાં ઓવરને અંતે છું. અને જે કિસ્સામાં તમે જાણો છો હું ખોટા પાછા જઈ રહ્યો છું. કે થોડો માટે ખાડો દો. આ એક ખૂબ સુંદર હશે તમારા pset માટે મહત્વપૂર્ણ છે. તે તર્ક કદાચ, ખૂબ જ સરળ છે વાક્યરચના અનુસાર માત્ર તેને અમલમાં. તમે ગાય્ઝ બનાવવા માંગો છો તમે સમજો કે તેની ખાતરી કરો. કૂલ. ઠીક છે, તેથી અમે કેવી રીતે હશે અધિકાર, ગાંઠો દાખલ, એક યાદી માં કારણ કે યાદ શું ફાયદા શું છે એક કડી થયેલ યાદી વિરુદ્ધ કર્યા સંગ્રહ દ્રષ્ટિએ ઝાકઝમાળ? પ્રેક્ષક: તે ગતિશીલ છે, તેથી તે સરળ છે રહ્યો ANDI પેન્ગ: બરાબર, તેથી તે ગતિશીલ છે, જે તેને વિસ્તૃત અને સંકોચી શકો છો કે જે થાય છે વપરાશકર્તા જરૂરિયાતો પર આધાર રાખીને. અને તેથી, આ અર્થમાં, અમે જરૂર નથી બિનજરૂરી મેમરી કચરો હું કારણ કે હું માંગો છો કેવી રીતે ઘણા કિંમતો ખબર ન હોય તો સ્ટોર કરવા માટે, તે મારા માટે અર્થમાં બનાવવા નથી ઝાકઝમાળ કારણ કે બનાવવા માટે હું 10 કિંમતો અત્યારે સંગ્રહ કરવા માંગો છો, તો અને હું 1000 ઝાકઝમાળ, કે બનાવવા વેડફાઇ જતી મેમરી ઘણો ફાળવી હતી. અમે એક કડી થયેલ ઉપયોગ કરવા માંગો છો શા માટે છે યાદી ગતિશીલ સમક્ષ રજુ કરવાનો પ્રયત્ન કરવા માટે બદલી અથવા અમારી કદ સંકોચો. અને જેથી નિવેશ બનાવે થોડી વધુ જટિલ. અમે રેન્ડમ તત્વો ઍક્સેસ કરી શકતા નથી કારણ કે અમે એક એરે કે જે રીતે. હું એક તત્વ સામેલ કરવા માંગો છો, તો સાતમી ઈન્ડેક્સ માં, હું હમણાં જ તે દાખલ કરી શકો છો સાતમી ઈન્ડેક્સ માં. એક કડી થયેલ યાદી પર છે, તે નથી તદ્દન સરળતાથી કામ કરે છે, અને તેથી અમે દાખલ કરવા ઇચ્છતા હોય તો યાદીની લિંક અહીં એક, દૃષ્ટિની, તે જોવા માટે ખૂબ જ સરળ છે. અમે હમણાં જ અધિકાર ત્યાં તે સામેલ કરવા માંગો છો જમણી યાદી શરૂઆતમાં, જમણી બાજુ વડા પછી. પરંતુ અમે હોય છે, જેમાં માર્ગ પુનઃસોંપણી કરવા પોઇંટરો એ બીટ ગૂંચળાવાળું છે અથવા, તાર્કિક, તે અર્થમાં બનાવે છે, પરંતુ તમે તેને હોય છે કે નહીં તેની ખાતરી કરવા માંગો છો સંપૂર્ણપણે નીચે કારણ કે તમે કરવા માંગો છો જો છેલ્લા વસ્તુ એક નિર્દેશક પુનઃસોંપણી છે અમે અહીં કરી રહ્યા છીએ તે રીતે. જો તમે ખોટો સંદર્ભ આ 1 માથા પરથી નિર્દેશક, પછી અચાનક તમામ તમારા યાદીની લિંક બાકીના તમે ખરેખર છે, કારણ કે ગુમાવી છે કામચલાઉ કંઈપણ બનાવી છે. 2 કે પર ધ્યાન છે. તમે પછી નિર્દેશક, પુનઃસોંપણી તો તમારા યાદી બાકીના તદ્દન ગુમાવી છે. તેથી જો તમે પ્રયત્ન કરવા માંગો છો અહીં ખૂબ, ખૂબ કાળજી પ્રથમ સોંપવા માટે તમે ગમે તે નિર્દેશક ત્યાં દાખલ કરવા માંગો છો તમે કરવા માંગો છો, અને પછી તમે તમારા યાદી બાકીના ડિરેફરન્સ કરી શકો છો. તેથી આ ત્યાં માટે લાગુ પડે છે તમે દાખલ કરવા માટે પ્રયાસ કરી રહ્યાં છો. તમે ખાતે દાખલ કરવા માંગો છો, તો વડા, તમે અહીં જવાબ આપવા માટે કરવા માંગો છો, તમે ઓછામાં દાખલ કરવા માંગો છો, તો અંતે, સાથે સાથે, અંત હું ધારી તમે માત્ર કરશે કોઈ નિર્દેશક હોય છે, પરંતુ તમે તમે નથી તેની ખાતરી કરવા માટે કરવા માંગો છો તમારા યાદી બાકીના ગુમાવી બેસે છે. તમે હંમેશા ખાતરી કરવા માંગો છો તમારા નવા નોડ પોઇન્ટ છે ગમે તરફ દાખલ કરવા માંગો છો, અને પછી તમે પર chaining ઉમેરી શકો છો. દરેક વ્યક્તિને સાફ? આ એટલા માટે થઈ રહ્યું છે વાસ્તવિક મુદ્દાઓ પૈકી એક. સૌથી મોટી સમસ્યા તમે તમારા pset પર હોય રહ્યા છીએ તમે બનાવવા માટે પ્રયાસ કરવા જઈ રહ્યાં છો છે એક કડી થયેલ યાદી અને સામેલ વસ્તુઓ પરંતુ પછી માત્ર ગુમાવી તમારા યાદીની લિંક બાકીના. અને તમારા જેવા હોઈ જઈ રહ્યાં છો, હું આ શું થઈ રહ્યું છે શા માટે ખબર નથી? અને તે મારફતે જવા માટે એક પીડા છે અને તમારા પોઇંટરો તમામ શોધો. અને હું આ pset પર તમે ખાતરી આપી, આ ગાંઠો લેખન અને ચિત્રકામ ખૂબ, ખૂબ મદદરૂપ થશે. તેથી જો તમે સંપૂર્ણપણે ટ્રૅક રાખી શકો છો તમારા બધા પોઇન્ટર છે જ્યાં, શું ખોટું થઈ રહ્યું છે તમારા બધા ગાંઠો છે, જ્યાં તમે ઍક્સેસ કરવા શું કરવાની જરૂર છે અથવા સામેલ અથવા કાઢી શકો અથવા તેમને કોઇ. સાથે સારા દરેક વ્યક્તિને? કૂલ. અમે કોડ જોવા માગતા હતા તેથી જો? ઓહ, મને ખબર નથી, તો અમે તેથી, the-- બરાબર જોઈ શકો છો ટોચ પર તે બધા એક કાર્ય છે અમે માંગો છો જ્યાં નામ આપવામાં આવ્યું શામેલ કડી થયેલ યાદી માં પૂર્ણાંક n દાખલ કરવા માટે. અમે આ દ્વારા લઈ જઈ રહ્યાં છો. તે કોડ ઘણો, નવી વાક્યરચના ઘણો છે. અમે બરાબર હશો. ટોચ જ્યારે પર જેથી અમે કંઈપણ બનાવવા માંગો છો અમે શું કરવું તે માટે જરૂર નથી, ખાસ કરીને જો તમે તે સ્ટેક પર સંગ્રહિત કરવામાં ન માંગતા હોવ પરંતુ ઢગલો? અમે અધિકાર malloc માટે જાઓ? તેથી અમે એક નિર્દેશક બનાવવા જઈ રહ્યાં છો. નોડ, નિર્દેશક, નવી સમકક્ષ નોડ માપ malloc અમે માંગો છો, કારણ કે નોડ બનાવવા માટે. અમે જથ્થો માંગો છો નોડ અપ લે છે કે મેમરી આ માટે ફાળવવામાં શકાય નવા નોડ બનાવટ. અને પછી અમે તપાસ જઈ રહ્યાં છો નવા સમકક્ષ નલ સમકક્ષ તો જુઓ. અમે શું કહ્યું યાદ રાખો? Malloc ગમે તમે, તમે હંમેશા શું કરવું જોઈએ? તમે હંમેશા જોવા માટે ચકાસો જોઈએ છે કે નહીં તે નલ છે. ઉદાહરણ તરીકે, જો તમારી ઓપરેટિંગ સિસ્ટમ સંપૂર્ણપણે પૂર્ણ કરવામાં આવી હતી તમે કોઈ વધુ મેમરી હોય તો બધા અને તમે malloc કરવાનો પ્રયાસ કરો, તે તમારા માટે નલ પરત ફરશે. અને તેથી તમે તેને વાપરવા માટે પ્રયત્ન કરો, તો તે માટે null પોઇન્ટ કરવામાં આવી હતી જ્યારે, તમે સમર્થ નથી જઈ રહ્યાં છો તે માહિતી ઍક્સેસ કરવા માટે. અને તેથી, જેમ કે, અમે બનાવવા માગતા હતા જ્યારે તમે mallocing કરી રહ્યાં છો કે નહીં તેની ખાતરી, તમે હંમેશા જોવા માટે જો ચકાસણી કરી રહ્યા છીએ તમે આપેલ છે કે જે મેમરી નલ છે. તે નથી, તો પછી અમે ખસેડી શકો છો અમારા કોડ બાકીના સાથે છે. તેથી અમે જઈ રહ્યાં છો નવા નોડ પ્રારંભ. અમે નવી N N બરાબર કરવા માટે જઈ રહ્યાં છો. અને પછી અમે કરવા જઈ રહ્યાં છો નવા પર નવા નિર્દેશક સુયોજિત નલ હમણાં અમે નથી કારણ કે તે નિર્દેશ કરવા માટે કંઈપણ કરવા માંગો છો. અમે કોઈ વિચાર જ્યાં છે તે તમને મૂકી રહ્યું છે અને પછી અમે કરવા માંગો છો, તો વડા તેને દાખલ કરો, પછી અમે ફરીથી સોંપી શકો છો વડા માટે નિર્દેશક. દરેક તર્ક અનુસરણ કરે જ્યાં તે ચાલી રહ્યું છે? અમે બધા કરી રહ્યાં નવી રહ્યા છે નોડ, નલ નિર્દેશક સુયોજિત અને પછી પુનઃસોંપણી તે માથા પર અમે તો અમે વડા તે સામેલ કરવા માંગો છો ખબર. અને પછી વડા રહ્યું છે કે નવા નોડ તરફ નિર્દેશ કરે છે. તે સાથે બરાબર દરેક વ્યક્તિને? તેથી તે બે પગલું પ્રક્રિયા છે. તમે પ્રથમ સોંપો મળી છે ગમે તમે બનાવી રહ્યા છો. આ કે નિર્દેશક સુયોજિત તમે સંદર્ભ છે, અને પછી કરી શકો છો ખોટો સંદર્ભ કાઇન્ડ પ્રથમ નિર્દેશક અને નવા નોડ તરફ નિર્દેશ કરે છે. તમે દાખલ કરવા માંગો છો ત્યાં, કે તર્ક સાચા પકડી રહ્યું છે. તે સોંપણી જેવા પ્રકારની છે કામચલાઉ ચલો. યાદ રાખો, તમે મળી છે તેની ખાતરી કરવા માટે કે જે તમને તમે જેઓ રહ્યાં છો, તો ટ્રેક ગુમાવી નથી. તમે છે કે નહીં તેની ખાતરી કરવા માંગો છો પ્રકારની રાખે છે કામચલાઉ ચલ જ્યાં તે વસ્તુ ટ્રેક કે જેથી સંગ્રહાયેલ છે તમે દરમિયાન કોઇ કિંમત ગુમાવી નથી તે સાથે આસપાસ ગડબડ જેવી. ઠીક છે, તેથી કોડ અહીં હશે. તમે ગાય્ઝ કલમ આવ્યા બાદ એક નજર. તે ત્યાં હશે. તેથી હું કેવી રીતે માનું અમે ઇચ્છતા હોય તો આ અલગ મધ્યમ અથવા અંત માં દાખલ કરવા માટે? કોઈને પણ આ છે તે એક એવો વિચાર હોય છે લોજિકલ સંદર્ભ તરીકે સ્યુડોકોડનો અમે ઇચ્છતા હોય તો અમે લેશે કે મધ્યમાં તેને દાખલ કરવા માટે? તેથી જો અમે આ સમયે તે દાખલ કરવા માટે ઇચ્છતા વડા, અમે બધા એક નવા નોડ બનાવવા છે. અમે તે નિર્દેશક સુયોજિત ગમે તે માથા પર નવા નોડ, અને પછી અમે વડા સેટ નવા નોડ માટે, અધિકાર? અમે મધ્યમ માં દાખલ કરવા ઈચ્છતો હોય તો યાદીમાં, અમે શું હશે? પ્રેક્ષક: તે હજુ પણ કરશે એક જ પ્રક્રિયા છે ના નિર્દેશક સોંપણી જેવી અને પછી, કે નિર્દેશક સોંપણી પરંતુ આપણે ત્યાં સ્થિત હશે. ANDI પેન્ગ: બરાબર, જેથી બરાબર તમે સિવાય એ જ પ્રક્રિયા જ્યાં બરાબર સ્થિત છે તમે કે નવા નિર્દેશક માં જવા માંગો છો, હું દાખલ કરવા માંગો છો, તેથી જો બરાબર યાદી કડી મધ્યમાં, ચાલો અમારા સંલગ્ન યાદી છે કહે છે. અમે તેને અહીં દાખલ કરવા માંગો છો, અમે નવા નોડ બનાવવા જઈ રહ્યાં છો. અમે malloc જઈ રહ્યાં છો. અમે નવા નોડ બનાવવા જઈ રહ્યાં છો. અમે સોંપવા માટે જઈ રહ્યાં છો અહીં આ નોડ નિર્દેશક. પરંતુ સમસ્યા એ છે કે અલગ વડા છે જ્યાં અમે બરાબર જાણતા હતા કે છે જ્યાં વડા છે. તે હક, પ્રથમ અધિકાર હતો? પરંતુ, અહીં આપણે ટ્રેક રાખવા માટે મળી છે જ્યાં અમે તેને દાખલ કરી રહ્યા છો. અમે દાખલ કરવામાં આવે છે, તો અમારા અહીં નોડ, અમે મળી છે તેની ખાતરી કરવા માટે કે જે આ નોડ અગાઉના એક નિર્દેશક reassigns કે એક છે. તેથી પછી તમે પ્રકારની હોય છે બે વસ્તુઓ સાચવી રાખે. તમે જ્યાં આ ટ્રેક રાખવા હોય તો નોડ હાલમાં માં દાખલ થાય છે. તમે પણ જ્યાં ટ્રેક રાખવા માટે હોય છે તમે જોઈ રહ્યા છો તે અગાઉના નોડ ત્યાં પણ હતી. સાથે સારા દરેક વ્યક્તિને? ઠીક છે. કેવી રીતે અંત માં દાખલ વિશે શું? હું ઇચ્છતા હોય તો હું અહીં તે ઉમેરવા માગે છે, એક યાદી ઓવરને માટે એક નવી નોડ ઉમેરવા માટે, હું જે કરી વિશે કેવી રીતે જવું શકે છે? પ્રેક્ષક: તેથી હાલમાં, છેલ્લા એક નલ પર ધ્યાન. ANDI પેન્ગ: યાહ. બરાબર છે, તેથી આ એક હાલમાં ખબર નિર્દેશ છે, અને તેથી હું આ અર્થમાં, તે છે, ધારી યાદી ઓવરને ઉમેરવા માટે ખૂબ જ સરળ છે. તમે કરવા હોય બધા તે સેટ કરેલી હોય નલ અને પછી તેજી સમાન. અધિકાર ત્યાં ખૂબ જ સરળ છે. ખૂબ સરળ. આ કરવા માટે ખૂબ જ સમાન તમે વડા છે, પરંતુ તાર્કિક પગલાંઓ છે તેની ખાતરી કરવા માંગો છો તમે આ કોઇ કરી તરફ લઇ તમે સાથે અનુસરી રહ્યાં છો. તે મધ્યમાં, ખૂબ જ સરળ છે તમારો કોડ, પર કેચ ઓહ, હું ઘણા પોઇન્ટર મળી છે. હું જ્યાં ખબર નથી કંઈપણ પોઇન્ટ છે. હું પણ હું પર છું, જે નોડ ખબર નથી. શું થઈ રહ્યું છે? એક ઊંડા શ્વાસ લો, નીચે શાંત, આરામ. તમારી સાથે લિંક યાદી દોરો. જો તમે કહી, હું જ્યાં બરાબર ખબર હું આ દાખલ કરવાની જરૂર છે અને હું મારા પુનઃસોંપણી કરવા બરાબર કેવી રીતે ખબર પોઇન્ટર, ખૂબ, ખૂબ સરળ ચિત્ર out-- ખૂબ, ખૂબ સરળ નથી તમારો કોડ ભૂલો ગુમાવી. તે સાથે બરાબર દરેક વ્યક્તિને? ઠીક છે. તેથી હું અમે હોય છે કે ખ્યાલ ધારી ખરેખર, હવે પહેલાં વિશે વાત કરી અને હું કદાચ તમે ધારી ખૂબ yet-- અનુભવી નહીં તે ઉન્નત concept-- પ્રકારની છે અમે ખરેખર એક માહિતી હોય છે માળખું સમયમાં બમણું કડી થયેલ યાદી કહેવાય છે. તમે ગાય્ઝ જોઈ શકો છો તેથી, અમે બધા કરી રહ્યાં રહ્યા છે એક વાસ્તવિક મૂલ્ય, એક વધારાનું અમારા ગાંઠો દરેક પર નિર્દેશક તે પણ અગાઉના નોડ માટે નિર્દેશ કરે છે. તેથી માત્ર અમે અમારા હોય ગાંઠો આગામી એક નિર્દેશ કરે છે. તેઓ પણ અગાઉના એક નિર્દેશ કરે છે. હું હમણાં આ બે અવગણો જાઉં છું. તેથી તો પછી તમે એક સાંકળ હોય છે કે બંને રીતે ખસેડી શકો છો, અને પછી તે થોડી સરળ છે તાર્કિક સાથે અનુસરો. અહીં જેવા, તેના બદલે ઓહ, રાખવામાં, હું આ નોડ છે કે ખબર હોય છે હું પુનઃસોંપણી કરવા માટે હોય છે એક, હું હમણાં જ અહીં જઈ શકે ફક્ત અગાઉના ખેંચો. પછી હું બરાબર ખબર છે કે જ્યાં છે, અને પછી તમે આ પસાર કરવાની જરૂર નથી આ યાદીની લિંક સમગ્ર. તેને થોડી સરળ છે. પરંતુ જેમ કે, તમે સમયમાં બમણું છે પોઇન્ટર જથ્થો કે મેમરી ડબલ રકમ છે. તે ટ્રેક રાખવા માટે પોઇન્ટર ઘણો છે. તે થોડી વધુ જટિલ છે, પરંતુ તે છે વપરાશકર્તા મૈત્રીપૂર્ણ આધાર રાખીને થોડી વધુ તમે પરિપૂર્ણ કરવા માટે પ્રયાસ કરી રહ્યા છો તેના પર. તેથી માહિતી આ પ્રકારના માળખું સંપૂર્ણપણે અસ્તિત્વમાં અને માળખું ખૂબ, ખૂબ છે તમે આવી રહી બધા સિવાય સરળ, તેના બદલે આગામી માત્ર એક નિર્દેશક, તમે પણ અગાઉના એક નિર્દેશક છે. તે બધા તફાવત હતો છે. સાથે સારા દરેક વ્યક્તિને? કૂલ. બધા હક છે, તેથી હવે હું છું ખરેખર કદાચ પસાર કરવા માટે 15 થી 20 મિનિટ અથવા બલ્ક જેવા વિભાગમાં સમય બાકીના હેશ કોષ્ટકો વિશે વાત. તમે કેવી રીતે ગાય્સ ઘણા Pset5 સ્પેક વાંચી છે? બધા હક છે, સારી. કે જે સામાન્ય રીતે 50% કરતા વધારે છે. ઠીક છે. તમે ગાય્ઝ જોશો તો, તમે Pset5 પડકાર છો એક શબ્દકોશ અમલ કરવા માટે પ્રયત્ન કરશે તમે 140.000 શબ્દો પર લોડ જ્યાં અમે અને જોડણી તપાસ તમે આપે છે જે લખાણ બધા સામે. અમે તમને રેન્ડમ આપી શકશો સાહિત્ય ટુકડાઓ. અમે તમને ઓડીસી આપી શકશો. અમે તમને ઇલિયડ આપી શકશો. અમે તમને ઓસ્ટિન પાવર્સ આપી શકશો. અને તમારા પડકાર જોડણી કરવા માટે પ્રયત્ન કરશે બધા દરેક એક શબ્દ તે શબ્દકોશો અનિવાર્યપણે અમારા જોડણી-પરીક્ષક સાથે. અને તેથી થોડા ભાગો છે આ pset બનાવવા, પ્રથમ તમે કરવા માંગો છો ખરેખર લોડ કરવા માટે સક્ષમ માં તમામ શબ્દો તમારા શબ્દકોશ, અને પછી તમે સમક્ષ રજુ કરવાનો પ્રયત્ન કરવા માંગો છો તેમને તમામ તપાસ જોડણી. અને તેથી, જેમ કે તમને જરૂર જઈ રહ્યાં છો આ ઝડપી કરી શકો છો કે એ માહિતી બંધારણ અને અસરકારક રીતે અને ગતિશીલ. તેથી હું સરળ ધારવું આ કરવા માટે માર્ગ છે, તમે કદાચ અધિકાર, એક એરે બનાવો છો? સંગ્રહ આ સૌથી સરળ માર્ગ તમે 140000 શબ્દો ઝાકઝમાળ બનાવી શકો છો અને માત્ર ત્યાં તેમને બધા મૂકો અને પછી દ્વિસંગી શોધ દ્વારા તેમને પસાર અથવા પસંદગી દ્વારા અથવા not-- માફ કરશો કે વર્ગીકરણ છે. તમે તેમને સૉર્ટ અને પછી તેમને પસાર કરી શકો છો દ્વિસંગી શોધ અથવા ફક્ત રેખીય શોધ અને માત્ર અંતિમ શબ્દો છે, પરંતુ તે મેમરી એક વિશાળ જથ્થો લે છે અને તે ખૂબ જ કાર્યક્ષમ નથી. અને તેથી અમે શરૂ કરવા જઈ રહ્યાં છો બનાવવાના માર્ગો વિશે વાત અમારી ચાલી સમય વધુ કાર્યક્ષમ. અને અમારા ધ્યેય વિચાર છે સતત સમય જ્યાં તે લગભગ એરે, જ્યાં જેવી છે તમે તત્કાલ વપરાશ હોય છે. હું કાંઇ શોધવા માટે ઈચ્છતો હોય તો, હું માત્ર સમક્ષ રજુ કરવાનો પ્રયત્ન કરવા માંગો છો બૂમ બરાબર તે શોધવા માટે, અને તે બહાર ખેંચી. અને તેથી એક માળખું કે જેમાં અમે ખૂબ જ નજીક બની આવશે સતત ઍક્સેસ કરવા માટે સક્ષમ હોઈ સમય, આ પવિત્ર ગ્રેઇલ સતત પ્રોગ્રામિંગ માં સમય હેશ ટેબલ કહેવામાં આવે છે. અને તેથી ડેવિડ અગાઉ ઉલ્લેખ કર્યો છે [અશ્રાવ્ય] વ્યાખ્યાન માં થોડો, પરંતુ અમે ખરેખર જઈ રહ્યાં છો ઊંડા આ અઠવાડિયે ડાઇવ સંબંધિત છે કે એક ભાગ પર કેવી રીતે હેશ ટેબલ કામ કરે છે. કે જે રીતે તેથી હેશ ટેબલ કામ કરે છે, ઉદાહરણ તરીકે, હું શબ્દો એક ટોળું સંગ્રહ કરવા ઇચ્છતા હોય તો, એક ઇંગલિશ ભાષા શબ્દો ટોળું, હું સૈદ્ધાંતિક મૂકી શકે કેળા, સફરજન, કિવિ, કેરી, જોડી અને બધા માત્ર એક એરે પર ટેટી. તેઓ બધા ફિટ કરી શકે છે અને શોધી શકાય. તે પીડા પ્રકારની હશો અને વપરાશ મારફતે શોધવા, પરંતુ આ કરવાની સરળ રીત છે અમે એક માળખું ખરેખર બનાવી શકો છો કે અમે હેશ જ્યાં હેશ ટેબલ કહેવાય છે. અમે મારફતે અમારા કીઓ બધા રન હેશ વિધેય, એક સમીકરણ, કે તેમને બધા કરે છે નીચેની અમુક પ્રકારના પછી અમે પર સ્ટોર કરી શકો છો કે કડી થયેલ યાદી આવશ્યકપણે એક એરે. અને તેથી અહીં અમે ઇચ્છતા હોય તો ઇંગલિશ શબ્દો સંગ્રહવા માટે, અમે સંભવિત માત્ર કરી શકે છે, હું નથી ખબર છે, તમામ પ્રથમ અક્ષરો ચાલુ સંખ્યાબંધ અમુક પ્રકારના માં. અને તેથી, ઉદાહરણ તરીકે, જો હું ઈચ્છતો એક apple-- પર્યાય તરીકે અથવા 0 ઇન્ડેક્સ સાથે, અને બી, 1 પર્યાય તરીકે અમે 26 પ્રવેશો હોઈ શકે છે કે જે હમણાં જ સ્ટોર કરી શકો છો આ અક્ષરો તમામ અમે સાથે શરૂ કરી શકશો કે આલ્ફાબેટ. અને પછી અમે કરી શકો છો 0 અનુક્રમણિકા પર એપલ. અમે ઇન્ડેક્સ ખાતે બનાના હોઈ શકે છે 1, 2 અનુક્રમણિકા પર ટેટી, અને તેથી પર અને તેથી આગળ. અને તેથી હું શોધવા માટે ઇચ્છતા હોય તો મારા હેશ ટેબલ અને વપરાશ સફરજન, હું સફરજન સાથે શરૂ થાય છે ખબર એક, અને હું બરાબર ખબર તે હોઈ શકે છે અને હેશ જ જોઈએ કે જે 0 અનુક્રમણિકા કારણ કે ટેબલ કાર્ય અગાઉ આઈડી. મને ખબર નથી, તેથી અમે છે વપરાશકર્તા કાર્યક્રમ જ્યાં તમારી સાથે ચાર્જ કરવામાં આવશે આપખુદ નથી arbitrarily--, વિચારપૂર્વક કરવાનો પ્રયાસ સાથે સારી સમીકરણો લાગે ફેલાવો કરવાનો પ્રયત્ન કરવા માટે તમારા મૂલ્યો બધા બહાર એક રીતે તેઓ સરળતાથી ઍક્સેસ કરી શકો છો પાછળથી તે સાથે સમીકરણ જેવી તમે કે, તમારી જાતને ખબર. હું જવા ઇચ્છતા હોય તો અર્થમાં તેથી કેરી, હું ઓહ, તે મીટર સાથે શરૂ થાય છે, ખબર છે. તે 12 ની અનુક્રમણિકા પર હોવા જ જોઈએ. હું કાંઇ મારફતે શોધવા માટે નથી. હું માત્ર પર જાઓ શકે છે exactly-- મને ખબર અને 12 ઇન્ડેક્સ છે કે જે બહાર ખેંચી. કેવી રીતે પર દરેક વ્યક્તિને સ્પષ્ટ હેશ ટેબલ કાર્ય કામ કરે છે? તે માત્ર એક વધુ જટિલ એરે પ્રકારની છે. તે છે બધા છે. ઠીક છે. તેથી અમે માં આઉટ ધારી આ મુદ્દો શું તમે ઘણી વસ્તુઓ હોય તો શું થાય છે કે તમે એ જ ઈન્ડેક્સ આપી? તેથી, તે અમારા કાર્ય કહે છે હતી કે પ્રથમ અક્ષર લઇ હતી અને માં કે ચાલુ 0 અનુક્રમણિકા 25 દ્વારા સંબંધિત. જો કે સંપૂર્ણપણે દંડ છે તમે માત્ર દરેક એક છે. પરંતુ બીજા તમે શરૂ વધુ કર્યા, તમે છો અથડામણ કહેવાય છે તે છે જવું. હું દાખલ કરવા માટે પ્રયત્ન કરો, તો હેશ માં દફનાવી તેથી પહેલાથી જ તેના પર બનાના છે કે ટેબલ, શું થાય છે જ્યારે ચાલી રહ્યું છે તમે તે દાખલ કરવા માટે પ્રયાસ? ખરાબ વસ્તુઓ કારણ કે કેળાના પહેલેથી જ ઈન્ડેક્સ હાજર તમે તેને અત્યારે સંગ્રહ કરવા માંગો છે. બેરી પ્રકારની હું શું કરી શકું, હેં, જેવી છે? હું જાઓ જ્યાં ખબર નથી. હું આ કેવી રીતે ઉકેલવા શકું? અને તેથી તમે ગાય્સ કરશે પ્રકારની અમે આ મુશ્કેલ બાબત કરી જુઓ જ્યાં અમે પ્રકારની ખરેખર કરી શકો છો અમારા એરે માં કડી થયેલ યાદી બનાવો. અને તેથી સૌથી સરળ માર્ગ આ વિશે વિચારો, બધા હેશ ટેબલ એક કડી થયેલ યાદીઓ દર્શાવે છે. અને તેથી, તે અર્થમાં, તમારી પાસે પોઇન્ટર આ સુંદર એરે, અને પછી દરેક નિર્દેશક તે કિંમત છે, કે જે ઇન્ડેક્સ, ખરેખર અન્ય વસ્તુઓ માટે નિર્દેશ કરી શકો છો. અને તેથી તમે આ બધા અલગ છે એક મોટી એરે બંધ આવતા સાંકળો. અને તેથી અહીં, હું તો બેરી દાખલ કરવા માટે માગતા હતા, હું ઠીક છે, હું ઇનપુટ જાઉં છું, ખબર તે મારા હેશ વિધેય દ્વારા. હું ઇન્ડેક્સ સાથે અંત જાઉં છું 1, અને પછી હું હોય કરવાનો પ્રયત્ન જાઉં છું માત્ર આ એક નાની ઉપગણ જાયન્ટ 140000 શબ્દ શબ્દકોશ ઓનલાઇન. અને પછી હું ફક્ત જોવા કરી શકો છો કે 1/26 દ્વારા. અને તેથી તે પછી હું માત્ર દાખલ કરી શકો છો પહેલાં અથવા બનાના પછી ક્યાં બેરી આ બાબતે? પછી, અધિકાર? અને તેથી તમે કરવા માંગો છો જઈ રહ્યાં છો બનાના પછી આ નોડ દાખલ કરો, અને તેથી તમે દાખલ કરવા માટે જઈ રહ્યાં છો તે યાદીની લિંક ની પૂંછડી છે. હું પાછા જાઓ જાઉં છું આ અગાઉના સ્લાઇડ, તેથી જો તમે ગાય્સ જુઓ કે કેવી રીતે કરી શકો છો હેશ વિધેય કામ કરે છે. તેથી હેશ વિધેય આ સમીકરણ છે તમે તમારા ઈનપુટ કાઇન્ડ ચલાવી રહ્યા છો કે વિચાર ગમે ઈન્ડેક્સ દ્વારા તમે નોંધાયો સોંપી કરવા માંગો છો. અને તેથી, આ ઉદાહરણમાં, બધા અમે ઇચ્છતા કરવા માટે, પ્રથમ અક્ષર લઇ હતી અમે પછી ઇન્ડેક્સ માં કે ચાલુ અમારા હેશ વિધેય કે સ્ટોર કરી શકો છો. અમે અહીં કરી રહ્યા છીએ બધા આપણે છીએ છે પ્રથમ અક્ષર રૂપાંતર. તેથી keykey [0] માત્ર પ્રથમ અક્ષર ગમે શબ્દમાળા અમે આવી રહી છે, અમે માં પસાર કરી રહ્યાં. અમે ઉપર કે રૂપાંતર, અને કરી રહ્યાં છો અમે મોટા એ દ્વારા બાદબાકી કરી રહ્યાં છો આમ કરવાથી છે કે બધા અમને એક નંબર આપે છે જેમાં અમે અમારી કિંમતો પર હેશ કરી શકો છો. અને પછી અમે જઈ રહ્યાં છો હેશ મોડ્યુલસ માપ પરત. ખૂબ, ખૂબ કાળજી રાખો થીયરી પ્રમાણે, અહીં, કારણ કે તમારા હેશ કિંમત અનંત હોઈ શકે છે. તે માત્ર પર અને અને પર જાઓ શકે છે. તે ખરેખર કેટલાક હોઈ શકે છે ખરેખર વિશાળ કિંમત પરંતુ તમારા હેશ ટેબલ કારણ કે તમે બનાવેલ માત્ર 26 નિર્દેશિકાઓની છે, તમે ખાતરી કરો કરવા માંગો છો તમારા modulusing કે જેથી તમે તે જ છે run-- નથી તમારા queue-- તરીકે વસ્તુ જેથી તમે બંધ સ્કોર નથી કે તમારા હેશ વિધેય નીચે. તમે આસપાસ તે પાછા લપેટી કરવા માંગો છો [અશ્રાવ્ય] જ્યારે આ જ રીતે તમે ખૂબ જ જેવી હતી ખૂબ જ મોટા અક્ષર, તમે કે નહિં માંગો હતી માત્ર ઓવરને રન નોંધાયો નહીં. અહીં જ વસ્તુ તમે ખાતરી કરો કરવા માંગો છો તે વીંટાળવવાની દ્વારા ઓવરને બોલ ચાલતી નથી આસપાસ ટેબલ ટોચ પર. તેથી આ માત્ર એક ખૂબ જ સરળ હેશ વિધેય. હતી કે તમામ લેવા પ્રથમ હતો ગમે અમારા ઇનપુટ પત્ર હતો અને ઇન્ડેક્સ માં કે ચાલુ કે અમે અમારા હેશ કોષ્ટક માં મૂકી શકે છે. અરે વાહ, અને તેથી હું પહેલાં જણાવ્યું હતું કે અમે અથડામણમાં ઉકેલવા કે જે રીતે અમારા હેશ કોષ્ટકો આવી રહી છે, અમે chaining, શું કૉલ કરો. જો તમે બહુવિધ દાખલ કરવા માટે પ્રયત્ન કરો, તો તેથી આ જ વસ્તુ સાથે શરૂ શબ્દો, તમે એક હેશ કિંમત હોય છે જઈ રહ્યાં છો. Avocados અને સફરજન, તમે કરેલા જો અમારા હેશ વિધેય મારફતે ચાલે છે, તમે આપી રહ્યું છે એ જ નંબર, 0 સંખ્યા. અને તેથી આ રીતે અમે તે છે ઉકેલવા અમે ખરેખર પ્રકારની તેમને લિંક કરી શકો છો કે સાથે કડી થયેલ યાદીઓ મારફતે. અને તેથી આ અર્થમાં, તમે ગાય્ઝ પ્રકારની જોઈ શકો છો કેવી રીતે માહિતી માળખાં કે અમે અગાઉ સુયોજિત કરવામાં આવ્યા છે એક રેઇઝન કડી થયેલ યાદી પ્રકારની જેમ એક માં મળીને આવી શકે છે. અને પછી તમે અત્યાર સુધી બનાવી શકો છો વધુ કાર્યક્ષમ માહિતી માળખાં કે મોટા પ્રમાણમાં નિયંત્રિત કરી શકો છો માહિતી, કે ગતિશીલ આધાર રાખીને માપ બદલો તમારી જરૂરિયાતો પર. દરેક વ્યક્તિને સાફ? સ્પષ્ટ ના દરેક પ્રકારની અહીં શું થાય છે? હું insert-- ઇચ્છતા હોય તો એક શું છે મને ખબર નથી, સાથે શરૂ થાય છે ફળ, બેરી કરતાં અન્ય બી, બનાના. પ્રેક્ષક: બ્લેકબેરી છે. ANDI પેન્ગ: બ્લેકબેરી, બ્લેકબેરી છે. જ્યાં બ્લેકબેરી અહીં જાઓ નથી? વેલ, અમે ખરેખર સૉર્ટ નથી આ હજુ સુધી, પરંતુ સૈદ્ધાંતિક અમે આ છે ઇચ્છતા હોય તો મૂળાક્ષર ક્રમમાં, જ્યાં જાઓ બ્લેકબેરી જોઈએ? AUDIENCE: [અશ્રાવ્ય] ANDI પેન્ગ: બરાબર, અહીં પછી, અધિકાર? પરંતુ તે ખૂબ જ મુશ્કેલ છે, કારણ કે reorder-- હું તે તમે ગાય્ઝ પર છે ધારી. તમે ગાય્ઝ તદ્દન કરી શકો છો તમે ઇચ્છો ગમે અમલ. વધુ કાર્યક્ષમ રીતે કદાચ આ કરી તમારી સાથે લિંક સૉર્ટ હશે મૂળાક્ષર ક્રમમાં યાદી અને તેથી તમે છો ત્યારે વસ્તુઓ દાખલ, તમે કરવા માંગો છો તેમને સામેલ કરવા માટે ખાતરી કરો મૂળાક્ષર ક્રમમાં તેથી તે પછી તમે છો ત્યારે તેમને શોધવા માટે પ્રયાસ કરી, તમે બધું પસાર કરવાની જરૂર નથી. તમે બરાબર જ્યાં ખબર તે છે, અને તે સરળ છે. પરંતુ તમે પ્રકારની હોય તો વસ્તુઓ અવ્યવસ્થિત જોડાયા તમે હજુ પણ હોય છે જઈ રહ્યાં છો રસ્તે તે પસાર કરવા માટે. અને તેથી હું ઇચ્છતા હોય તો માત્ર બ્લેકબેરી અહીં દાખલ અને હું શોધવા માટે ઇચ્છતા તે હું ઓહ, ખબર છે, બ્લેકબેરી 1 ઇન્ડેક્સ સાથે શરૂ કરવા માટે, જેથી હું જ જોઈએ તત્કાલ માત્ર 1 શોધવા ખબર. અને પછી હું પ્રકારની કરી શકો છો આ કડી થયેલ યાદી પસાર હું બ્લેકબેરી વિચાર ત્યાં સુધી, અને હા then--? પ્રેક્ષક: તમે create-- કરવાનો પ્રયાસ કરી રહ્યાં છો, તો આ એક ખૂબ જ સરળ હેશ છે જેમ હું ધારી કાર્ય. અને આપણે શું કરવા ઇચ્છતા હોય તો કે જેમ અનેક સ્તરો, ઠીક છે, અમે માં અલગ કરવા માંગો છો બધા મૂળાક્ષર અક્ષરો જેવા અને પછી ફરીથી બીજા સેટ કરવા માંગો કે અંદર મૂળાક્ષર અક્ષરો છે, અમે હેશ જેમ મૂકે છે હેશ કોષ્ટકમાં ટેબલ, અથવા કાર્ય અંદર એક કાર્ય જેવું? અથવા that-- છે ANDI પેન્ગ: તમારા હેશ તેથી તમારા હેશ ટેબલ function-- તમે તેને કરવા માંગો છો તરીકે મોટી હોઈ શકે છે. તેથી આ અર્થમાં, મેં વિચાર્યું તે ખૂબ જ છે, ખૂબ જ સરળ હતું મારા માટે સરળ ફક્ત સૉર્ટ આધારિત પ્રથમ શબ્દના અક્ષરો છે. અને તેથી જ 26 વિકલ્પો છે. હું માત્ર 26 વિકલ્પો મેળવી શકો છો 25 0, કારણ કે તેઓ કરી શકો છો એક થી ઝેડ માટે શરૂ પરંતુ જો તમે ઇચ્છતા કદાચ, વધુ જટિલતા ઉમેરવા અથવા ઝડપી સમય ચલાવો તમારા હેશ ટેબલ, તમે એકદમ વસ્તુઓ તમામ પ્રકારના કરી શકો છો. તમે તમારા પોતાના બનાવી શકે છે તમે આપે છે સમીકરણ વધુ વિતરણ તમારા શબ્દો, તો પછી તમે શોધવા જ્યારે તે ઝડપી હોઈ રહ્યું છે. તે તદ્દન તમે ગાય્ઝ પર છે તમે કેવી રીતે અમલ કરવા માંગો છો. માત્ર ડોલથી તરીકે તે વિચારો. મારી પાસે કરવા ઈચ્છતો હોય તો 26 buckets, હું જાઉં છું તે buckets માં વસ્તુઓ સૉર્ટ. પરંતુ હું એક ટોળું હોય જાઉં છું દરેક ડોલ સામગ્રી, તમે તેને કરવા માંગો છો, તેથી જો ઝડપી અને વધુ કાર્યક્ષમ, મને સો ડોલથી હોય છે. પરંતુ તે પછી તમે બહાર આકૃતિ હોય છે તેઓ છે કે જેથી રીતે વસ્તુઓ સૉર્ટ યોગ્ય ડોલ તેઓ પ્રયત્ન કરીશું. પરંતુ તે પછી જ્યારે ખરેખર તમે કે ડોલ જોવા માંગો છો, કારણ કે ત્યાં તે ઘણો ઝડપી છે દરેક ડોલ ઓછી સામગ્રી. અને તેથી, અરે વાહ, કે ખરેખર છે Pset5 તમે ગાય્સ માટે યુક્તિ તમે રહેશો છે માત્ર બનાવવા માટે પડકાર સૌથી કાર્યક્ષમ ગમે છે તમે વિચાર કરી શકો છો કાર્ય પ્રયત્ન સંગ્રહ અને આ કિંમતો તપાસો સમક્ષ રજુ કરવાનો. ટોટલી તમે ગાય્ઝ સુધી તેમ છતાં તમે તેને કરવા માંગો છો, પરંતુ તે ખરેખર સારા બિંદુ છે. તે તર્ક પ્રકારની તમે વિશે વિચારવાનો શરૂ કરવા માંગો છો વેલ, શા માટે હું વધુ ડોલથી બનાવતા નથી, છે. અને પછી હું શોધવા માટે છે ઓછી વસ્તુઓ, અને પછી કદાચ હું એક અલગ હેશ વિધેય હોય છે. અરે વાહ, આ કરવા માટે માર્ગો ઘણો છે pset, કેટલાક અન્ય લોકો કરતા ઝડપી છે. હું તદ્દન માત્ર કેવી રીતે જોવા જાઉં છું ઝડપી સૌથી ઝડપી તમે ગાય્ઝ કરશે હતી તમારા કાર્યો કામ મેળવવા માટે સક્ષમ હોય છે. ઠીક છે, દરેકને સારા પર સાંકળ અને હેશ કોષ્ટકો? તે ખૂબ જ સરળ જેવા ખરેખર છે તમે તે વિશે ખ્યાલ વિચાર કરો. તે બધા અલગ છે ગમે તમારી ઇનપુટ્સ buckets માં છે, તેમને સૉર્ટ કરો, અને પછી શોધ સાથે ત્યાં સંકળાયેલ છે કે યાદી આપે છે. કૂલ. બધા હક છે, હવે અમે એક અલગ પ્રકારની હોય છે માહિતી માળખું એક વૃક્ષ કહેવાય છે કે. પર જાઓ અને પ્રયત્નોમાં વિશે વાત જે ભિન્ન છે પરંતુ આ જ શ્રેણી માં. આવશ્યકપણે, બધા એક વૃક્ષ બદલે છે ના રેખીય રીતે માહિતી આયોજન હેશ ટેબલ તમે does-- કે , તે ઉપર અને નીચે મળી છે ખબર અને પછી તમે પ્રકારની તેને એક બંધ લિંક વૃક્ષ, તમે રુટ કૉલ જે ટોચ છે અને પછી તે બધા તેની આસપાસ પાંદડા છે. અને તેથી તમે બધા અહીં છે માત્ર ટોચ નોડ છે કે અન્ય ગાંઠો પોઇન્ટ કે નિર્દેશ વધુ ગાંઠો, અને તેથી પર અને તેથી આગળ. અને તેથી તમે માત્ર વિભાજન શાખાઓ હોય છે. તે આયોજન માત્ર એક અલગ રીત છે માહિતી, અને અમે તેને એક વૃક્ષ કૉલ કારણ કે, તમે ગાય્ઝ તે માત્ર છે just-- એક વૃક્ષ જેવો માટે બહાર મોડલિંગ કર્યું હતું. અમે વૃક્ષો કૉલ શા માટે છે. હેશ ટેબલ ટેબલ જેવો દેખાય છે. એક વૃક્ષ માત્ર એક વૃક્ષ જેવો દેખાય છે. તે બધા એક અલગ છે ગાંઠો આયોજન માર્ગ તમારી જરૂરિયાતો શું છે તેના પર આધાર રાખીને. તેથી જો તમે રુટ હોય છે અને પછી તમે પાંદડા હોય છે. જે રીતે અમે ખાસ કરીને કરી શકો છો તે બાઈનરી વૃક્ષ છે વિશે વિચારો, દ્વિસંગી વૃક્ષ માત્ર એક છે એક વૃક્ષ ચોક્કસ પ્રકાર જ્યાં દરેક નોડ માત્ર પોઇન્ટ માટે, મેક્સ પર, અન્ય બે ગાંઠો. અને તેથી અહીં તમે અલગ છે તમારા વૃક્ષ માં સમપ્રમાણતા તે સરળ પ્રકારની જોવા માટે બનાવે છે કિંમતો શું પછી તમે કારણ કે છે હંમેશા ડાબી કે અધિકાર છે. ડાબા ત્રીજા જેવા ક્યારેય છે ડાબે અથવા ડાબેથી ચોથા. તે તમને એક ડાબી અને અધિકાર છે માત્ર છે અને તમે તે બે ક્યાં શોધી શકો છો. અને તેથી આ શા માટે ઉપયોગી છે? આ છે કે જે રીતે તમે જોઈ રહ્યાં છો, તો ઉપયોગી છે અધિકાર, મૂલ્યો મારફતે શોધવા માટે? તેના બદલે બાઈનરી અમલીકરણ કરતાં એક ભૂલ એરે શોધ તમે ગાંઠો દાખલ કરવા માટે સક્ષમ કરવા માગતા હોય તો અને ઇચ્છા પર અને એ પણ ગાંઠો દૂર લઇ શોધ સાચવવા દ્વિસંગી શોધ ક્ષમતા. તેથી આ રીતે, અમે પ્રકારની છો જ્યારે અમે યાદ tricking-- કડી થયેલ યાદીઓ દ્વિસંગી શોધ કરી શકો છો નથી? અમે પ્રકારની માહિતી માળખું બનાવી રહ્યાં છો યુક્તિઓ કામ માં કે. અને તેથી કડી થયેલ યાદીઓ, રેખીય છે તેઓ માત્ર અન્ય પછી એક કડી. અમે પ્રકારની હોઈ શકે છે પોઇન્ટર વિવિધ પ્રકારની વિવિધ ગાંઠો કે બિંદુ શોધ સાથે મદદ કરી શકે છે. અને તેથી અહીં, જો હું કરવા માંગતો દ્વિસંગી શોધ વૃક્ષ છે, મને ખબર છે મારા મધ્યમ કે 55 હોય તો. હું માત્ર કે બનાવવા જઈ રહ્યો છું મારા મધ્યમ, મારા રુટ તરીકે, અને પછી હું પાસે જઈ રહ્યો છું કિંમતો તે બંધ રજૂઆત કરે છે. તેથી અહીં, હું શોધવા માટે જઇ રહ્યો છું તો 66 ની કિંમત, હું 55 ખાતે શરૂ કરી શકો છો. તે 55 કરતાં 66 વધારે છે? હા તે છે, તેથી હું શોધવા Mus ખબર હું એ આ વૃક્ષ જમણી નિર્દેશક. હું 77 પર જાઓ. ઠીક છે, કરતાં ઓછી અથવા 77 કરતા વધારે 66 છે? ઓહ, તે કરતાં ઓછી છે, તેથી તમે જાણો છો, કે ડાબી નોડ હોઈ શકે છે. અને તેથી અહીં અમે પ્રકારની સાચવીને કરી રહ્યાં છો એરે વિશે મહાન વસ્તુઓ તમામ, જેથી ગતિશીલ માપ બદલવાની જેવા વસ્તુઓ હોવા દાખલ કરો અને ઇચ્છા પર કાઢી નાખવા માટે સક્ષમ, નિશ્ચિત વિશે ચિંતા કર્યા વગર જગ્યા રકમ. અમે હજુ પણ તમામ સાચવવા તે અદ્ભુત વસ્તુઓ પણ જાળવી રાખવા માટે સક્ષમ હોવા પ્રવેશ અને દ્વિસંગી શોધ સમય શોધ અમે અગાઉ જ હતા કે એક શબ્દસમૂહ વિચાર કરવાનો. કૂલ માહિતી માળખું પ્રકારની જટિલ, નોડ અમલ. તમે તે બધા જોઈ શકો છો આ નોડ સ્ટ્રક્ટ છે જો તમે ડાબી હોય છે અને જમણી નિર્દેશક. તે છે બધા છે. તેથી તેના બદલે માત્ર કરતાં એક એક્સ અથવા પહેલાંની હોય છે. પછી તમે ડાબે અથવા જમણી, અને તમે પ્રકારની તેમને મળીને લિંક કરી શકો છો જો તમે આમ પસંદ કરો. ઠીક છે, અમે ખરેખર જઈ રહ્યાં છો માત્ર થોડી મિનિટો લે છે. તેથી અમે અહીં પાછા જાઓ જઈ રહ્યાં છો. હું અગાઉ જણાવ્યું હતું કે, હું પ્રકારની સમજાવી અમે કેવી રીતે પાછળ તર્ક આ દ્વારા શોધ કરશે. અમે પ્રયાસ કરવા જઈ રહ્યાં છો આ બહાર pseudocoding જોવા માટે અમે પ્રકારની આ અરજી કરી શકો છો જો દ્વિસંગી શોધ જ તર્ક માહિતી માળખું વિવિધ પ્રકાર છે. તમે ગાય્સ એક દંપતી જેવા લેવા માંગતા હોય તો મિનિટ ફક્ત આ વિશે વિચારો. ઠીક છે. બધા હક, હું જાઉં છું ખરેખર માત્ર તમે કોઈ the-- આપે છે, અમે પ્રથમ સ્યુડોકોડનો વિશે વાત કરીશું. તેથી કોઈને માંગો છો નથી ઘણો પ્રયાસ શું આપવા તમે ત્યારે શું કરવા માંગો છો પ્રથમ વસ્તુ તમે શોધ છે બહાર શરૂ કરી રહ્યાં છો? અમે શોધી રહ્યાં છો, તો 66 ની કિંમત શું છે અમે તો શું કરવા માંગો છો પ્રથમ વસ્તુ અમે આ વૃક્ષ શોધ બાઈનરી કરવા માંગો છો? પ્રેક્ષક: તમે યોગ્ય જોવા માંગો છો અને [અશ્રાવ્ય] ડાબી જોવા અને જુઓ મોટી સંખ્યા. ANDI પેન્ગ: અરે વાહ, બરાબર. તેથી જો તમે તમારો રુટ જોવા જઈ રહ્યાં છો. તમે કહી શકો છો ઘણી બધી રીતો છે તે તમારા પેરેંટ નોડ લોકો કહે છે. હું કારણ કે રુટ કહેવું માંગો કે વૃક્ષની રુટ જેવું છે. તમે જોવા માટે જઈ રહ્યાં છો તમારા રુટ નોડ, અને તમે છો જોવા જઈ 66 વધારે છે કરતા વધુ કે ઓછા 55. અને તે સારી રીતે, તે છે, કરતાં વધારે છે, તો કરતાં વધારે છે, જ્યાં અમે જોવા માટે કરવા માંગો છો? જ્યાં અમે અધિકાર છે, હવે શોધ કરવા માંગો છો? અમે શોધ કરવા માંગો છો આ વૃક્ષ જમણી અડધા. તેથી અમે હોય છે, સરળ, એક જમણી નિર્દેશ કરે છે કે નિર્દેશક. અને તેથી તે પછી અમે સેટ કરી શકો છો અમારા નવા રુટ 77 હોય છે. અમે હમણાં જ ત્યાં જઈ શકો છો નિર્દેશક પોઇન્ટ છે. વેલ, ઓહ, અહીં અમે શરૂ કરી રહ્યાં છો 77 ખાતે, અને અમે હમણાં કરી શકો છો પુનરાવર્તિત ફરીથી અને ફરીથી આવું. આ રીતે, તમે પ્રકારની એક કાર્ય છે. તમે તે શોધ એક માર્ગ છે માત્ર અને ઉપર અને ઉપર પર પુનરાવર્તન કરી શકો છો, તમે જોવા માંગો છો તેના પર આધાર રાખીને તમે આખરે કિંમત વિચાર ત્યાં સુધી તમે શોધી રહ્યાં છે. અર્થમાં બનાવવા? હું તમને વાસ્તવિક બતાવવા માટે વિશે છું કોડ છે, અને તે કોડ ઘણો છે. કોઈ જરૂર બહાર ફ્રીક છે. અમે તે મારફતે વાત કરીશું. ખરેખર, નં. કે જે હમણાં જ સ્યુડોકોડનો હતી. ઠીક છે, કે જે માત્ર સ્યુડોકોડનો હતી જે થોડી જટિલ છે, પરંતુ તે તદ્દન દંડ છે. અહીં દરેક વ્યક્તિને સાથે પગલે? રુટ નલ છે, તો પાછા ફરો ખોટા કે કારણ કે તેનો અર્થ તમે પણ ત્યાં કંઈ નથી. રુટ n તેથી જો કિંમત છે, તો તે તમે જોઈ રહ્યાં છો, એક બને છે, પછી તમે સાચા પાછા જઈ રહ્યાં છો તમે જાણો છો કારણ કે તમે તેને જોવા મળે છે. પરંતુ તેનું મૂલ્ય ઓછું હોય તો n ના રુટ કરતાં, તમે છો ડાબી શોધવા માટે જઈ બાળક કે ડાબી પર્ણ, તમે તેને કૉલ કરવા માંગો છો. અને કિંમત રુટ કરતાં વધારે હોય છે, તમે યોગ્ય વૃક્ષ શોધવા માટે જઈ રહ્યાં છો, પછી માત્ર કાર્ય ચલાવો શોધ મારફતે ફરી. અને રુટ નલ છે, કે જે જો તમે અંત સુધી પહોંચી ગયા છો છે? કે કોઈ તમારી પાસે એનો અર્થ એ થાય વધુ વધુ પાંદડા શોધવા માટે, પછી તમે હું, ઓહ, ખબર તે અહીં નથી ધારી હું મારફતે જોવામાં કર્યું છે કારણ કે પછી અને તે અહીં નથી સમગ્ર બાબત, તે માત્ર અહીં ન હોઈ શકે છે. કે દરેકને અર્થમાં બનાવવા નથી? તેથી તે સાચવીને દ્વિસંગી શોધ જેવી છે કડી થયેલ યાદીઓ ક્ષમતાઓ. સરસ, અને તેથી બીજા પ્રકાર માહિતી માળખું તમે ગાય્ઝ તમારા pset પર અમલ કરવાનો પ્રયાસ કરી શકો છો, જો તમે માત્ર એક પદ્ધતિ પસંદ કરો છે. પરંતુ કદાચ એક વૈકલ્પિક પદ્ધતિ હેશ ટેબલ અમે એક trie કૉલ છે. છે બધા એક trie છે વૃક્ષ ચોક્કસ પ્રકારની છે કે જે અન્ય કિંમતો પર જવા કિંમતો કે જે છે. તેથી તેના બદલે એક બાઈનરી કર્યા અર્થમાં વૃક્ષ માત્ર એક કે વસ્તુ બે નિર્દેશ કરી શકો છો, તમે કરી શકો છો ઘણી વસ્તુઓ માટે એક વસ્તુ બિંદુ. તમે અનિવાર્યપણે એરે છે જે તમે સ્ટોર અંદર અન્ય એરે માટે નિર્દેશ કે પોઇન્ટર. તેથી અમે કેવી રીતે નોડ એક trie વ્યાખ્યાયિત કરશે અમે હોય માંગો છો બુલિયન, સી શબ્દ છે, અધિકાર? તેથી આ નોડ બુલિયન છે સાચું અથવા ખોટું જેવી ના વડા પર સૌ પ્રથમ કે એરે, આ એક શબ્દ છે? બીજું, તમે પોઇંટરો કરવા માંગો છો ગમે તેમને બાકીના છે. થોડી જટિલ છે, થોડી અમૂર્ત, પરંતુ હું શું કે બધા અર્થ સમજાવશે. તેથી અહીં ટોચ પર, તમે તો એક એરે પહેલાથી જ જણાવ્યું છે, તમે બુલિયન હોય છે, જ્યાં નોડ આ બોલ પર સંગ્રહિત કિંમત કે તમે આ એક શબ્દ છે કહે છે? આ એક શબ્દ છે? અને પછી તમે હોય છે તમારા એરે બાકીના કે ખરેખર સંગ્રહ તમામ તે હોઈ શકે છે શું શક્યતાઓ. તેથી, ઉદાહરણ તરીકે, જેમ ટોચ પર તમારી પાસે સાચું કે કહે છે કે પ્રથમ વસ્તુ ખોટા, હા અથવા ના, આ શબ્દ છે. અને પછી તમે 26 મારફતે 0 છે તમે સ્ટોર કરી શકો છો કે જે અક્ષરો. હું અહીં શોધવા માટે ઈચ્છતો હોય તો બેટ માટે, હું ટોચ પર જાઓ અને હું બી શોધવા બી જોવા મારા એરે, અને તેથી મને ખબર છે, ઠીક છે, બી એક શબ્દ છે? બી જેથી આમ, એક શબ્દ નથી હું શોધ રાખવા જ જોઈએ. હું બી માંથી જાઓ, અને હું જોવા બી તરફ નિર્દેશ કરે છે કે નિર્દેશક અને હું માહિતી અન્ય એરે જોવા અમે પહેલાં હતી તેવી જ માળખું. અને, ઓહ આગામી અહીં [અશ્રાવ્ય] માં અક્ષર એ છે તેથી અમે તે એરે માં જુઓ. અમે આઠમા કિંમત શોધવા, અને પછી અમે ઓહ, જોવા માટે જુઓ અરે, એક શબ્દ છે, બી એક શબ્દ છે? તે શબ્દ નથી. અમે શોધી રાખવા મળી છે. અને તેથી તે પછી અમે જ્યાં જુઓ એક પોઈન્ટ નિર્દેશક, અને તે અન્ય રીતે નિર્દેશ જે અમે વધુ કિંમત સંગ્રહિત છે. અને છેવટે, અમે વિચાર એક શબ્દ છે, જે બી એ ટી. અને તેથી આગામી સમય તમે જુઓ, તમે જઈ રહ્યાં છો હા, તે ચેક છે, આ બુલિયન કાર્ય સાચું છે. અને તેથી અર્થમાં અમે પ્રકારની છો એરે સાથે વૃક્ષ હોય છે. તેથી પછી તમે પ્રકારની નીચે શોધી શકો છો. તેના બદલે એક કાર્ય હેશીંગ કરતાં યાદીની લિંક દ્વારા કિંમતો સોંપણી, તમે માત્ર એક અમલ કરી શકે છે downwords શોધે છે કે trie. ખરેખર, ખરેખર સામગ્રી જટીલ. હું જેવી છું કારણ કે વિશે વિચારો કરવા માટે સરળ નથી ઘણા માહિતી માળખાં બહાર spitting તમે, પરંતુ પ્રકારની દરેક કરે છે આ તર્ક કેવી રીતે કામ કરે? ઠંડી, ઠીક. તેથી બી એ ટી, અને પછી તમે શોધવા માટે જઈ રહ્યાં છો. તમે જઈ રહ્યાં છો આગામી સમય ઓહ, અરે, તે સાચું છે, તે જોવા માટે, આમ હું આ એક શબ્દ જ હોવી જોઈએ ખબર. ઝૂ માટે જ વસ્તુ. તેથી અહીં વાત છે, તો હમણાં અમે હમણાં, ઝૂ શોધવા માટે માગતા હતા, હાલમાં ઝૂ નથી અમારા શબ્દકોશ શબ્દ કારણ કે તમે ગાય્ઝ, જોઈ શકો છો અમે એક બુલિયન છે કે પ્રથમ સ્થાને સાચું આપશે ઝૂમ ઓવરને અંતે છે. અમે ઝેડ-ઓ-ઓ-એમ છે. અને તેથી અહીં, અમે ખરેખર ન હોય અમારા શબ્દકોશ શબ્દ, પ્રાણી સંગ્રહાલય, આ ચેક બોક્સ ચકાસાયેલ નથી. તેથી કમ્પ્યુટર નથી ઝૂ શબ્દ છે ખબર છે કે કારણ કે અમે કર્યો છે કે માર્ગ માત્ર એક મોટું અહીં, તે સંગ્રહિત ખરેખર એક બુલિયન કિંમત છે એ વાત સાચી ચાલુ કરવામાં આવી છે. અમે દાખલ કરવા માંગો છો, તો શબ્દ ઝૂ અમારા શબ્દકોશ માં, અમે તે કરી વિશે કેવી રીતે જાઓ છો? અમે ખાતરી કરવા માટે શું કરવું છે શું અમારા કમ્પ્યુટર Z-ઓ-ઓ એક શબ્દ છે કે જે જાણે છે અને પ્રથમ શબ્દ Z-ઓ-ઓ-એમ છે? AUDIENCE: [અશ્રાવ્ય] ANDI પેન્ગ: બરાબર, અમે આ છે કે જે ખાતરી કરવા માંગો છો અહીં, કે બુલિયન કિંમત છે તે સાચું છે કે આ બોલ પર ચકાસાયેલ. Z-ઓ-ઓ, પછી અમે તે ચકાસવા માટે જઈ રહ્યાં છો, તેથી અમે બરાબર, હેય, ઝૂ એક શબ્દ છે ખબર. હું કહી જાઉં છું તે શબ્દ તેથી આપણે કે કમ્પ્યુટર , જ્યારે કમ્પ્યુટર ચકાસે છે કે જે તે ઝૂ એક શબ્દ છે કે જાણે છે. આ બધા માહિતી યાદ કારણ માળખાં, તે અમારા માટે ખૂબ જ સરળ છે ઓહ, બેટ એક શબ્દ છે, કહે છે. ઝૂ શબ્દ છે. મોટું એક શબ્દ છે. પરંતુ તમે તેને મકાન રહ્યા છો, ત્યારે કમ્પ્યુટર કોઈ વિચાર છે. તેથી જો તમે તે બરાબર કહી છે કયા બિંદુ પર આ એક શબ્દ છે? શું બિંદુએ એક શબ્દ નથી? અને શું બિંદુએ હું શું વસ્તુઓ શોધવા માટે જરૂર છે, અને શું બિંદુએ હું આગામી જવા માટે જરૂર છે? કે સ્પષ્ટ દરેક વ્યક્તિને? કૂલ. અને તેથી તે પછી આવે છે સમસ્યા અમે કેવી રીતે કરશે કંઈક દાખલ વિશે જાઓ કે ત્યાં ખરેખર નથી? તેથી આપણે માત્ર અમે સામેલ કરવા માંગુ છુ અમારા trie માં શબ્દ, સ્નાન. તમે ગાય્ઝ હાલમાં જેમ જોઈ શકો છો આપણે હવે હોય છે, બી એ ટી અને આ નવી માહિતી માળખું એક સુઘીમાંઃ ત્યાં હતી કે અમે ધારે કારણ કે નલ પર ધ્યાન ઓહ, બી એ ટી પછી ત્યાં કોઈ શબ્દો છે, કે જે, શા માટે અમે રાખવા જરૂર નથી કે ટી ​​પછી વસ્તુઓ કર્યા અમે તમને હોય તો પણ આ સમસ્યા ઊભી થાય છે પછી આવે છે કે એક શબ્દ છે કરવા માંગો છો ટી માતાનો. તમે સ્નાન હોય, તો તમે છો એચ અધિકાર માંગો છો જઈ રહી છે. અને તેથી અમે તે કરવા જઇ રહ્યા છો માર્ગ છે અમે એક અલગ નોડ બનાવવા જઈ રહ્યાં છો. અમે ગમે રકમ ફાળવવાનો નથી કરી રહ્યાં છો આ નવી એરે માટે મેમરી, અને અમે પોઇન્ટર પુનઃસોંપણી કરવા જઈ રહ્યાં છો. અમે સોંપવા માટે જઈ રહ્યાં છો એચ, સૌ પ્રથમ, આ નલ, અમે છુટકારો મેળવવા માટે જઈ રહ્યાં છો. અમે હોય રહ્યા છીએ એચ બિંદુ નીચે. અમે એક એચ જુઓ તો, અમે તેને કરવા માંગો છો બીજે ક્યાંક જાઓ. અહીં, અમે પછી હા બંધ કરી શકો છો. અમે ટી પછી એચ દબાવો, ઓહ, પછી અમે આ એક શબ્દ છે ખબર છે કે. બુલિયન સાચું પાછા જઈ રહ્યું છે. દરેક વ્યક્તિને થયું કે કેવી રીતે સાફ? ઠીક છે. તેથી અનિવાર્યપણે, તમામ આ માહિતી બંધારણોની આજે આપણે ઉપર ગયા કર્યું છે, હું કર્યું ખરેખર, ખરેખર ઝડપથી તેમને ઉપર ગયો અને ખૂબ માં વિગતવાર, અને તે બરાબર છે. તમે ગડબડ શરૂ એકવાર તેની સાથે, તમે રહેશો જ્યાં રાખવામાં બધા પોઇન્ટર છે શું થઈ રહ્યું છે તમારા માહિતી માળખાં, વગેરે એટ. તેઓ ખૂબ જ ઉપયોગી હશો અને તે તમે નક્કી કરો ગાય્ઝ તદ્દન બહાર આકૃતિ કેવી રીતે તમે વસ્તુઓ અમલ કરવા માંગો છો. અને તેથી pset4 છે, 5-- ઓહ, તે ખોટી છે. Pset5 ખોટી જોડણી છે. હું પહેલાં જણાવ્યું હતું કે, તમે એક વાર માટે જઈ રહ્યાં છો ફરીથી, અમારી પાસેથી સ્રોત કોડ ડાઉનલોડ કરો. ત્રણ મુખ્ય હોઈ રહ્યું છે વસ્તુઓ તમે ડાઉનલોડ કરી શકશો. તમે શબ્દકોશ ડાઉનલોડ પડશે KERS, અને પાઠો. તે તમામ બાબતો છે ક્યાં શબ્દો શબ્દકોશ અમે તમને ચેક કરવા માંગો છો કે અથવા માહિતી ટેસ્ટ અમે તમને જોડણી કરવા માંગો છો છે. અને તેથી શબ્દકોશ અમે તમને જતા હોય છે આપી જો અમે માંગો છો તે વાસ્તવિક શબ્દો આપવા માટે તમે જ તે રીતે કોઈક સંગ્રહવા માટે ઝાકઝમાળ કરતાં વધુ કાર્યક્ષમ. અને પછી પાઠો છે અમે છો માટે શું હોવું રહ્યું તમે પૂછવા તેની ખાતરી કરવા માટે તપાસ જોડણી બધા જ શબ્દો વાસ્તવિક શબ્દો છે. અને તેથી ત્રણ બ્લોકો અમે તમને આપી શકશો કે કાર્યક્રમો dictionary.c કહેવામાં આવે છે, dictionary.h, અને speller.c. અને તેથી તમામ dictionary.c છે કરે છે શું તમે અમલ કરવા પૂછવામાં કરી રહ્યાં છો. તે શબ્દો લોડ કરે છે. તે ચકાસે છે તેમને જોડણી છે, અને તે ખાતરી કરે છે કે બધું યોગ્ય રીતે દાખલ કરવામાં આવે છે. diction.h ફક્ત લાઇબ્રેરીનું ફાઇલ છે તે બધા કાર્યો જાહેર. અને speller.c, અમે તમને આપી રહ્યા છીએ. તમે તેને કોઈપણ સુધારવા માટે જરૂર નથી. બધા speller.c છે કે લાગે છે, લોડ તે ઝડપ ચકાસે છે, કેવી રીતે ગમે બેન્ચમાર્ક પરીક્ષણ ઝડપથી તમે વસ્તુઓ કરવા માટે સમર્થ છો. તે સ્પેલર છે. માત્ર તેની સાથે વાસણ નથી, પરંતુ બનાવવા ખાતરી કરો કે તમે તે શું કરી રહ્યો છે સમજે છે. અમે એક કાર્ય કહેવાય getrusage ઉપયોગ કરે છે તમારી જોડણી કામગીરી પરીક્ષણ તપાસનાર. બધા મૂળભૂત રીતે તે કસોટી છે કરે છે તમારી શબ્દકોશ બધું સમય, જેથી તમે તેને સમજી તેની ખાતરી કરો. તેની સાથે વાસણ નથી કાળજી રાખો કે બીજું વસ્તુઓ યોગ્ય રીતે ચલાવવા નહીં. અને આ પડકાર બલ્ક માટે છે તમે ગાય્ઝ ખરેખર dictionary.c સુધારવા માટે. અમે તમને આપવા માટે જઈ રહ્યાં છો એક શબ્દકોશ 140000 શબ્દો. અમે તમને એક ટેક્સ્ટ આપવા જઈ રહ્યાં છો તે શબ્દો છે કે ફાઇલ, અને અમે તમને આયોજન સમક્ષ રજુ કરવાનો પ્રયત્ન કરવા માંગો છો હેશ કોષ્ટક અથવા એક trie માં તેમને અમે જોડણી કરવા માટે તમને પૂછે છે કારણ કે જ્યારે તમે જોડણી હો તો કલ્પના check-- હોમરની ઓડીસી જેવા ચકાસણી. આ વિશાળ, વિશાળ ટેસ્ટ જેવું છે. દરેક એક તો કલ્પના શબ્દ તમે જોવા માટે હતી 140000 કિંમતો ઝાકઝમાળ દ્વારા. કે કાયમ માટે લઇ શકે છે તમારા મશીન ચલાવવા માટે. અમે અમારા આયોજન કરવા માંગો છો શા માટે છે વધુ કાર્યક્ષમ માહિતી માળખાં માં માહિતી આવા હેશ કોષ્ટક અથવા એક trie છે. અને પછી તમે ગાય્ઝ પ્રકારની કરી શકો છો તમે વપરાશ શોધ જ્યારે વસ્તુઓ વધુ સરળતાથી અને વધુ ઝડપથી. અને તેથી અથડામણમાં ઉકેલવા માટે ખૂબ કાળજી રાખો. તમે એક ટોળું વિચાર જઈ રહ્યાં છો એ સાથે શરૂ શબ્દો તમે એક ટોળું શબ્દો વિચાર જઈ રહ્યાં છો કે તમે ઉપર બી સાથે શરૂ તમે કરવા માંગો છો કેવી રીતે ગાય્સ તેને ઉકેલવા. કદાચ વધુ છે કાર્યક્ષમ હેશ વિધેય માત્ર પ્રથમ અક્ષર કરતાં કંઈક છે, અને તેથી તે તમે નક્કી કરો ગાય્ઝ પ્રકારની ગમે તમે ઇચ્છો કરવું. કદાચ તમે ઍડ કરવા માંગો છો એકસાથે બધા અક્ષરો. કદાચ તમે વિચિત્ર વસ્તુઓ ગમે કરવા માંગો છો અક્ષરો નંબર અમને એકાઉન્ટ માટે, ગમે તે. તમે કરવા માંગો છો તમે કેવી રીતે ગાય્સ માટે વસ્ત્ર. તમે છો, તો એક હેશ ટેબલ કરવા માંગો છો તદ્દન અપ તમે, એક trie પ્રયાસ કરવા માંગો છો. હું સમય કે આગળ તમે ચેતવણી આવશે trie સામાન્ય રીતે થોડી વધુ મુશ્કેલ છે ઘણો છે માત્ર કારણ કે વધુ પોઇન્ટર સાચવી રાખે છે. પરંતુ તદ્દન તમે ગાય્ઝ સુધી. તે અત્યાર સુધી વધુ કાર્યક્ષમ છે મોટા ભાગના કિસ્સાઓમાં. તમે ખરેખર રાખવા કરવાનો પ્રયત્ન કરવા માંગો છો તમારા પોઇંટરો તમામ ટ્રેક. જેવી જ વસ્તુ કરવા હું અહીં કરી હતી. જ્યારે તમે દાખલ કરવા માટે પ્રયાસ કરી રહ્યાં છો હેશ કોષ્ટક માં મૂલ્યો અથવા કાઢી શકો છો, તમે છો કે નહીં તેની ખાતરી ખરેખર રાખવામાં બધું છે કારણ કે જ્યાં તે હું છું તો ખરેખર સરળ છે શબ્દ એન્ડી જેવા દાખલ કરવા માટે પ્રયાસ કરે છે. માત્ર કે એ કહે છે વાસ્તવિક શબ્દ, શબ્દ, એન્ડી, એક શબ્દો એક વિશાળ યાદી માં. હું માત્ર પુનઃસોંપણી થાય છે, તો એક નિર્દેશક ખોટું અરે, સમગ્ર ત્યાં જાય છે મારા યાદીની લિંક બાકીના. હવે માત્ર શબ્દ હું છે એન્ડી છે, અને હવે આ અન્ય બધા જ શબ્દો શબ્દકોશ જતું રહ્યું છે. અને તેથી તમે તેની ખાતરી કરવા માટે કરવા માંગો છો તમારા પોઇંટરો તમામ ટ્રેક રાખવા અથવા તો તમે વિચાર જઈ રહ્યાં છો તમારો કોડ વિશાળ સમસ્યાઓ. પગલું દ્વારા પગલું કાળજીપૂર્વક વસ્તુઓ બહાર દોરો. તેને લાગે છે કે તે ખૂબ સરળ બનાવે છે. અને છેલ્લે, તમે કરવાનો પ્રયત્ન કરવા માંગો છો તમારા કાર્યક્રમ તમારા પ્રદર્શન પરીક્ષણ મોટા બોર્ડ પર. તમે ગાય્ઝ લેવા તો હમણાં CS50 જોવા, અમે મોટા બોર્ડ કહેવાય છે તે છે. તે ઝડપથી સ્કોર શીટ છે CS50 બધી ચકાસણી વખત જોડણી હમણાં, હું 10 જેવી ટોચની લાગે વખત હું તેમને આઠ સ્ટાફ લાગે છે. અમે ખરેખર તમે ગાય્સ અમને હરાવ્યું કરવા માંગો છો. અમને બધા અમલ કરવા માટે પ્રયાસ કરી રહ્યા હતા શક્ય ઝડપી કોડ. અમે તમને ગાય્ઝ પડકાર પ્રયાસ કરવા માંગો છો અમેરિકા અને આપણા બધા કરતાં વધુ ઝડપથી અમલ કરી શકો છો. અને તેથી આ ખરેખર છે અમે રહ્યાં છો તે પ્રથમ સમય તમે ગાય્ઝ પૂછવા pset કરવું કે તમે ખરેખર ગમે પદ્ધતિ શું કરી શકો છો તમે ઇચ્છો. હું હંમેશા આ વધુ સમાન છે, કહે છે એક વાસ્તવિક જીવનના ઉકેલ માટે, અધિકાર? હું અરે, હું તમને આ કરવા માટે જરૂર છે, કહે છે. મારા માટે આ કરે છે કે કાર્યક્રમ બનાવો. તમે કરવા માંગો છો, જો કે તે શું. હું માત્ર હું ઝડપી કરવા માંગો છો. કે આ સપ્તાહ માટે તમારા પડકાર છે. તમે ગાય્ઝ, અમે જઈ રહ્યાં છો તમે એક કાર્ય આપે છે. અમે તમને એક પડકાર આપવા જઈ રહ્યાં છો. અને પછી તે તમને ગાય્ઝ માટે છે સંપૂર્ણપણે માત્ર બહાર આકૃતિ ઝડપી અને શું સૌથી છે કાર્યક્ષમ રીતે આ અમલ કરવા. અરે વાહ? પ્રેક્ષક: અમે જો માન્ય છે ઝડપી રીતે સંશોધન કરવા માગતા હતા અમે કરી શકો છો, ઓનલાઇન હેશ કોષ્ટકો કરવું કે અને કોઈના કોડ દાખવી? ANDI પેન્ગ: અરે વાહ, સંપૂર્ણપણે દંડ. તેથી જો તમે ગાય્સ વાંચી તો સ્પેક, એક રેખા છે તમે ગાય્ઝ કહે છે કે સ્પેક માં હેશ સંશોધન તદ્દન મફત છે શું છે કેટલીક કાર્યો ઝડપી હેશ કાર્યો તરીકે મારફતે વસ્તુઓ ચલાવવા માટે તમે તે કોડ દાખવી તરીકે લાંબા સમય સુધી. તેથી કેટલાક લોકો પહેલેથી જ છે ઝડપી રીતે બહાર figured ઝડપી છે, જોડણી ચેકર્સ કરી માહિતી સ્ટોર માર્ગો. ટોટલી તમે ગાય્ઝ સુધી જો તમે અધિકાર, કે જે હમણાં જ લેવા માંગો છો? તમે દર્શાવીને રહ્યાં છો તેની ખાતરી કરો. પડકાર અહીં ખરેખર અમે પરીક્ષણ કરવાનો પ્રયાસ કરી રહ્યાં છો કે જે તમે જાણો છો કે નહીં તેની ખાતરી કર્યા છે તમારી રીતે આસપાસ પોઇન્ટર. જ્યાં સુધી તમે અમલીકરણ તરીકે વાસ્તવિક હેશ વિધેય અને જેવા સાથે આવતા ગણિત તે કરવા માટે, તમે ગાય્ઝ સંશોધન કરી શકો છો ગમે પદ્ધતિઓ ઓનલાઇન તમે ગાય્ઝ માંગો છો. અરે વાહ? પ્રેક્ષક: અમે હમણાં જ દાખવી શકે છે [અશ્રાવ્ય] ઉપયોગ કરીને? ANDI પેન્ગ: યાહ. તમે કરી શકો છો ફક્ત તમારી ટિપ્પણી, તમે, ઓહ, જેમ દાખવી શકો છો Yada પરથી લેવામાં Yada, Yada, હેશ વિધેય. કોઈને કોઈ પ્રશ્ન છે? અમે ખરેખર breezed આજે વિભાગ દ્વારા. હું અહીં હશે તેમજ પ્રશ્નોના જવાબ. પણ, હું જણાવ્યું હતું કે, ઓફિસ કલાક આજની રાત કે સાંજ અને આવતી કાલે. આ અઠવાડિયે ખરેખર છે સ્પેક સુપર સરળ અને વાંચવા માટે સુપર નહીં. હું માત્ર એક નજર લેતી સૂચવે કરશે તે આ સમગ્ર મારફતે વાંચો. અને Zamyla ખરેખર લઈ જશે કાર્યો દરેક મારફતે તમે અમલીકરણની જરૂર છે, અને તેથી તે છે કેવી રીતે બધું કરવા માટે ખૂબ, ખૂબ સ્પષ્ટ છે. જસ્ટ ખાતરી કરો કે તમે છો બનાવવા માટે પોઇન્ટર રાખવામાં. આ એક ખૂબ જ પડકારરૂપ pset છે. તે જેવી છે, કારણ પડકારરૂપ નથી ઓહ, આ ખ્યાલો તેથી વધુ છે મુશ્કેલ છે, અથવા જો તમે જાણવા મળે છે જે રીતે ખૂબ જ નવી વાક્યરચના તમે છેલ્લા pset માટે કર્યું છે. આ pset મુશ્કેલ છે, કારણ કે ઘણા પોઇન્ટર છે, અને પછી એક વખત તે માટે ખૂબ, ખૂબ સરળ છે તમે નથી કરવાનો પ્રયત્ન તમારો કોડ માં ભૂલ છે કે ભૂલ છે કે જ્યાં શોધવા માટે. અને તેથી સંપૂર્ણ અને તમે ઘોર વિશ્વાસ ગાય્ઝ અમારા [અશ્રાવ્ય] હરાવ્યું કરવાનો પ્રયત્ન કરવા માટે જોડણી. હું ખરેખર નથી કોઇ લખવામાં ખાણ છે હજુ સુધી, પરંતુ હું ખાણ લખવા માટે વિશે છું. તમે લખી રહ્યાં તેથી જ્યારે તમારામાં, હું ખાણ લખવા પડશે. હું બનાવવા માટે પ્રયાસ કરવા જઈ રહ્યો છું ખાણ ઝડપી તમારામાં કરતાં. અમે સૌથી ઝડપી એક છે જે જોવા મળશે. અને હા, હું તમામ જોશો અહીં મંગળવારે તમે ગાય્સ. હું pset વર્કશોપ જેવા પ્રકારની સ્કોર આવશે. વિભાગો આ બધા સપ્તાહે pset વર્કશોપ છે તેથી જો તમે ગાય્સ તકો ઘણાં હોય છે મદદ માટે, ઓફિસ કલાકો હંમેશા તરીકે, અને હું ખરેખર આગળ જુઓ તમારા ગાય્ઝ 'કોડ તમામ વાંચી. હું અહીં જો તમે ક્વેસ્ચન હોય ગાય્ઝ તે વિચાર આવવા માંગો છો. કે બધા છે.