[Powered by Google Translate] [6 વિભાગ ઓછુ: સાધારણ] [Nate Hardison] [હાર્વર્ડ યુનિવર્સિટી] [આ CS50 છે.] [CS50.TV] અધિકાર છે. 6 વિભાગમાં આપનું સ્વાગત છે. આ અઠવાડિયે, અમે માહિતી માળખાં વિશે વાત કરી વિભાગમાં જઈ રહ્યાં છો, મુખ્યત્વે કારણ કે આ સપ્તાહ સમસ્યા spellr પર સેટ વિવિધ માહિતી બંધારણ સંશોધન સંપૂર્ણ જથ્થો કરે છે. ત્યાં અલગ અલગ રીતે તમે આ સમસ્યા સેટ સાથે જઈ શકે છે સમૂહ છે, અને વધુ માહિતી માળખાં તમારા વિશે જાણવું વધુ રસપ્રદ વસ્તુઓ તમે કરી શકો છો. તેથી આપણે શરૂ કરો. પ્રથમ અમે રન ટાઇમ સ્ટેકનું વિશે વાત જઈ રહ્યાં છો, સ્ટેક અને કતાર માહિતી માળખાં કે અમે વિશે વાત જઈ રહ્યાં છો. રન ટાઇમ સ્ટેકનું અને ક્યુને ખરેખર મદદરૂપ છે જ્યારે અમે ગ્રાફ વિશે વાત શરૂ કરવા માટે, જે અમે આમ અધિકાર ખૂબ હવે નથી રહ્યા છીએ. પરંતુ તેઓ ખરેખર એક મોટી સીએસ મૂળભૂત માહિતી બંધારણોની સમજી શકો છો. સમસ્યા સેટ સ્પષ્ટીકરણમાં વર્ણન, જો તમે તેને ખેંચી અપ સમાન તરીકે, રન ટાઇમ સ્ટેકનું વિશે વાત કરે છે ડાઇનિંગ ટ્રે ના ખૂંટો કે તમે ડાઇનિંગ હોલ ખાતે કાફેટેરિયા હોય જ્યાં જ્યારે ડાઇનિંગ સ્ટાફ આવે છે અને ડાઇનિંગ ટ્રે મૂકે બહાર પછી તેઓ તેમને સાફ કરી લો, તેઓ એક બીજા ઉપર ગંજી. અને પછી જ્યારે બાળકો માટે ખોરાક વિચાર આવે છે, તેઓ ટ્રેમાં ખેંચવાનો બોલ, પ્રથમ ટોચ એક, પછી તેને નીચે એક, પછી કે નીચે એક. તેથી, અસર માં, પ્રથમ ટ્રે કે ડાઇનિંગ સ્ટાફ નીચે મૂકવામાં છેલ્લા એક કે બોલ લેવામાં નહીં આવે છે. છેલ્લા એક કે ડાઇનિંગ સ્ટાફ પર મૂકી પ્રથમ એક કે બોલ રાત્રિભોજન માટે લેવામાં નહીં આવે છે. સમસ્યા એ સેટ સ્પેક, જે તમે જો તમે પહેલાથી જ નથી ડાઉનલોડ કરી શકો છો, અમે સ્ટેક માહિતી આ પ્રકારની સ્ટ્રક્ટ મદદથી stucture મોડેલીંગ વિશે વાત કરો. તેથી આપણે શું અહીં મળી છે, આ શું વ્યાખ્યાન માં રજૂ કરવામાં આવ્યો હતો સમાન છે, વ્યાખ્યાન સિવાય અમે ints તરીકે ઘરનાં પરચૂરણ કામો * ઓ વિરોધ સાથે આ પ્રસ્તુત કર્યું. આ સ્ટેક કે સ્ટોર્સ શું હોવું રહ્યું છે? ડેનિયલ? અમે શું આ સ્ટેક માં સંગ્રહિત થાય છે? [ડીએલ] સ્ટ્રીંગ્સ? >> અમે આ સ્ટેક માં શબ્દમાળાઓ સ્ટોર છે બરાબર. બધા તમે જરૂર ક્રમમાં સ્ટેક બનાવવા ઝાકઝમાળ છે ચોક્કસ ક્ષમતા, આ કિસ્સામાં જે, ક્ષમતા માટે તમામ કેપ્સ શકે છે કારણ કે તે સતત છે રહ્યું છે. અને પછી એરે માટે વધુમાં, બધા અમે ટ્રૅક કરવાની જરૂર એરે ની વર્તમાન માપ છે. એક અહીં નોંધ કરો કે ઠંડી પ્રકારની છે વસ્તુ છે કે અમે બીજી માહિતી માળખું, એરે શીર્ષ પર મુક્યા માહિતી માળખું બનાવી રહ્યાં છો. ત્યાં અલગ રન ટાઇમ સ્ટેકનું અમલ માર્ગો છે. અમે તેને તદ્દન હજી પરંતુ આસ્થાપૂર્વક તે સંલગ્ન યાદી સમસ્યાઓ કરી પછી, શું કરશે, તમે જોશો કે તમે કેવી રીતે સરળતાથી કડી થયેલ યાદી ટોચ પર એક તેમજ સ્ટેક અમલ કરી શકે છે. પરંતુ હવે માટે, અમે એરે વળગી પડશે. તેથી ફરી, બધા અમે જરૂર ઝાકઝમાળ છે અને અમે માત્ર એરે માપ ટ્રેક કરવાની જરૂર છે. [સેમ] માફ કરશો, તો તે શા માટે છે કે તમે કહ્યું હતું કે, આ સ્ટેક શબ્દમાળાઓ ટોચ પર છે? મને એવું લાગે છે જેમ શબ્દમાળાઓ સ્ટેક અંદર હોય છે. [Hardison] યાહ. અમે બનાવી રહ્યા છીએ, અમે અમારા એરે માહિતી માળખું વાત કરી રહ્યાં છે - કે જે મહાન પ્રશ્ન છે. તેથી પ્રશ્ન શા માટે લોકો આ ઑનલાઇન જોવાનું આવે છે, અમે શા માટે કહે છે કે સ્ટેક આ શબ્દમાળાઓ ટોચ પર છે, કારણ કે અહીં તે જેમ શબ્દમાળાઓ સ્ટેક અંદર છે લાગે છે? જે તદ્દન કેસ છે. હું ઉલ્લેખ કરવામાં આવ્યો હતો શું હતું કે અમે એક એરે માહિતી માળખું મેળવ્યા છે. અમે ઘરનાં પરચૂરણ કામો * ઓ ઝાકઝમાળ, શબ્દમાળાઓ આ એરે મળી છે, અને અમે તે માટે ઉમેરો કરવા માટે સ્ટૅક્ડ માહિતી માળખું ઊભું થવાનું છે. તેથી સ્ટેક થોડી વધારે ઝાકઝમાળ કરતાં જટિલ છે. અમે એક એરે ઉપયોગ સ્ટેક બનાવી શકો છો. તેથી કે જ્યાં અમે કહે છે કે સ્ટેક ઝાકઝમાળ ટોચ પર બનેલ છે. તેવી જ રીતે, હું અગાઉ જણાવ્યું હતું કે, જેમ અમે યાદીની લિંક ટોચ પર એક સ્ટેક બનાવી શકો છો. તેના બદલે એક એરે મદદથી અમારી તત્વો ધરાવે છે એક, અમે સંલગ્ન યાદી વાપરવા માટે અમારા તત્વો ધરાવે છે અને તે આસપાસ સ્ટેક બિલ્ડ કરી શકે છે. ચાલો ઉદાહરણો એક દંપતી દ્વારા ચાલી, અમુક કોડ અંતે looking, શું ખરેખર અહીં ચાલી રહ્યું છે. ડાબી બાજુ પર, હું નીચે ફેંકી કર્યું છે કે સ્ટેક સ્ટ્રક્ટ શું મેમરી જોવા કરશે જો ક્ષમતા # ચાર પ્રયત્ન વ્યાખ્યાયિત કરવામાં આવી હતી. અમે અમારા ચાર તત્વ ઘરનાં પરચૂરણ કામો * એરે મેળવ્યા છે. અમે શબ્દમાળાઓ [0] શબ્દમાળાઓ [1], શબ્દમાળાઓ [2] શબ્દમાળાઓ, [3], મળી છે અને પછી અમારી કદની પૂર્ણાંક માટે તે છેલ્લા જગ્યા. શું આ અર્થમાં છે? ઠીક છે. આ શું થાય છે જો હું શું જમણી બાજુ પર કરવા માટે, જે મારી કોડ હશે, માત્ર એક સ્ટ્રક્ટ, સ્ટેક ઓ કહેવાય સ્ટ્રક્ટ જાહેર છે. આ આપણે શું મળે છે. તે મેમરીમાં આ પદચિહ્ન મૂકે છે. પ્રથમ અહીં પ્રશ્ન એ છે કે આ સ્ટેક સ્ટ્રક્ટ સમાવિષ્ટો શું છે? હમણાં તેઓ કંઇ છીએ, પરંતુ તેઓ તદ્દન કશું નથી. તેઓ કચરો આ પ્રકારની છો. અમે કોઇ વિચાર શું તેમને છે હોય છે. જ્યારે અમે સ્ટેક ઓ જાહેર, અમે માત્ર કે ફેંકવાની કરી રહ્યાં છો મેમરી શીર્ષ પર નહીં. તે પૂર્ણાંક હું જાહેર અને પ્રારંભ નથી તે જેવા પ્રકારની છે. તમે જાણતા નથી કે શું ત્યાં છે. તમે વાંચી શકો છો શું ત્યાં છે, પરંતુ તે સુપર ન હોઈ મદદરૂપ થઈ શકે છે. એક વાત તમે હંમેશા કરવા યાદ કરવા માંગો છો પ્રારંભ ગમે માટે આરંભ કરવાની જરૂર છે. આ કિસ્સામાં, અમે કદ પ્રારંભ કરવા માટે શૂન્ય હોઈ જઈ રહ્યાં છો, કારણ કે બહાર ચાલુ કરવા માટે અમારા માટે ખૂબ જ મહત્વપૂર્ણ હશે. અમે આગળ વધીશું અને પોઇંટરો તમામ, બધા ઘરનાં પરચૂરણ કામો * ઓ પ્રારંભ કરી શકે છે, કેટલાક સમજી કિંમત, કદાચ નલ છે. પરંતુ તે તદ્દન જરૂરી છે કે અમે આ કરી નથી. હવે, રન ટાઇમ સ્ટેકનું પર બે મુખ્ય કામગીરી છે? કોઈની વ્યાખ્યાન યાદ તમે શું રન ટાઇમ સ્ટેકનું સાથે કરે છે? હા? [સ્ટેલા] પુશિંગ અને ધાણી? ચોક્કસ. >> દબાણ અને ધાણી રન ટાઇમ સ્ટેકનું પર બે મુખ્ય કામગીરી છે. અને દબાણની શું થાય છે? >> તે ટોચ પર કંઈક મૂકે સ્ટેક, અને પછી ધાણી તે લે નહીં. [Hardison] ચોક્કસ. તેથી દબાણ સ્ટેક ઉપર કંઈક રન નોંધાયો નહીં. તે ડાઇનિંગ એક ડાઇનિંગ ટ્રે ગણક પર નીચે મૂકી સ્ટાફ જેવું છે. અને ધાણી એક ડાઇનિંગ ટ્રે લઈ આવે છે સ્ટેક નહીં. ચાલો શું થાય ઉદાહરણો એક દંપતી લઈ જવામાં જ્યારે અમે સ્ટેક માં વસ્તુઓ દબાણ. જો, અમે અમારા સ્ટેક પર 'હેલો' શબ્દમાળા દબાણ હતા આ છે આપણા રેખાકૃતિ શું હવે જોવા આવશે. શું થાય છે? અમે અમારા શબ્દમાળાઓ એરે પ્રથમ તત્વ દબાણ અને અમે અમારી કદની ગણતરી વધારીને માટે 1 છે. તેથી જો આપણે બે સ્લાઇડ્સ વચ્ચે તફાવત જોવા માટે, અહીં 0 હતો, અહીં દબાણ પહેલાં છે. અહીં દબાણ પછી છે. દબાણ પહેલાં, દબાણ પછી. અને હવે અમે અમારા સ્ટેક એક તત્વ છે. તે શબ્દમાળા "હેલો" છે, અને તે છે. એરે માં બીજું બધું, અમારા શબ્દમાળાઓ એરે માં, હજુ પણ છે કચરો. અમે તેને આરંભ છે. હવે કહો કે અમે અમારા સ્ટેક પર અન્ય શબ્દમાળા દબાણ. અમે આ સમય પર "વિશ્વ" દબાણ રહ્યા છીએ. આમ તમે જોઈ શકે છે "વિશ્વ" અહીં "હેલો" શીર્ષ પર જાય છે, અને માપ ગણતરી માટે 2 વધતું જાય છે. હવે અમે "CS50", અને તે ટોચ પર ફરી જઈશ દબાણ કરી શકો છો. જો અમે પાછા જાઓ, તમે જોઈ શકો છો કે અમે કેવી રીતે સ્ટેક ટોચ પર વસ્તુઓ દબાણ કરી રહ્યાં છે. અને હવે અમે પૉપ મેળવો. જ્યારે આપણે સ્ટેક બોલ કંઈક પોપ, શું થયું? કોઈની તફાવત જુઓ છો? તે ખૂબ ગૂઢ છે. [વિદ્યાર્થી] આ માપ. >> અરે વાહ, આ માપ બદલાઈ. બીજું શું તમે તેને બદલવા માટે અપેક્ષિત હોત? [વિદ્યાર્થી] આ પણ શબ્દમાળાઓ. >> અધિકાર. ખૂબ શબ્દમાળાઓ. તે તારણ છે કે જ્યારે તમે તેને આ રીતે કરી રહ્યા છીએ, કારણ કે અમે તત્વો અમારી સ્ટેક માં નકલ કરી રહ્યા છો, અમે ખરેખર કશું કરવાનું નથી; આપણે માત્ર કદ ઉપયોગ કરી શકો છો વસ્તુઓ સંખ્યા અમારી એરે ટ્રૅક રાખવા જેથી જ્યારે અમે ફરી પૉપ, ફરી અમે ફક્ત 1 અમારી કદ નીચે હ્રાસ. ત્યાં કોઈ વાસ્તવમાં માં જાઓ અને કંઈપણ પર ફરીથી લખી જરૂર નથી. ફંકી પ્રકારની. તે તારણ છે કે અમે લાક્ષણિક રીતે માત્ર વસ્તુઓ એકલા છોડી કારણ કે તે ઓછું કામ અમારા માટે શું કરવું. જો અમે પાછા જવા માટે અને કાંઇક પર ફરીથી લખી નથી, તો પછી તે શા માટે કરે છે? તેથી જ્યારે અમે સ્ટેક બે વાર બોલ પૉપ, બધા કરે છે જે છે કદ વખત બે હ્રાસ. અને ફરીથી, આ માત્ર કારણ કે અમે વસ્તુઓ અમારા સ્ટેક માં નકલ કરી રહ્યા છીએ. હા? આગળ જાઓ. [વિદ્યાર્થી, દુર્બોધ] >> અને પછી શું થાય છે જ્યારે તમે કંઈક ફરીથી દબાણ? જ્યારે તમે કંઈક ફરીથી દબાણ, જ્યાં તે જાઓ નથી? તે છે, જ્યાં નથી બેસિલ જાઓ? [1] શબ્દમાળાઓ ઇનટુ >>? >> અધિકાર. તે [3] શબ્દમાળાઓ માં શા માટે ન જાય છે? [બેસિલ] કારણ કે તે ભૂલી ગયા છે કે શબ્દમાળાઓ પણ હતા [1] અને [2] [Hardison] ચોક્કસ. અમારા સ્ટેક છે, જરૂરીયાતમાં, "ભૂલી ગયા હતા કે" તે પર કંઈપણ કરવા માટે હોલ્ડિંગ હતી શબ્દમાળાઓ માં [1] અથવા શબ્દમાળાઓ [2] છે, તેથી જ્યારે અમે "woot" દબાણ તે ફક્ત તત્વ માં [1] શબ્દમાળાઓ ખાતે મૂકે છે. આ કેવી રીતે કામ કરે છે તેના પર કોઇ પ્રશ્નો ત્યાં મૂળભૂત સ્તરે છે? [સેમ] તેથી કોઈપણ રીતે ગતિશીલ નથી જથ્થો દ્રષ્ટિએ છે અથવા સ્ટેક કદની બાબતમાં? [Hardison] ચોક્કસ. આ છે - બિંદુ હતું કે આ એક ગતિશીલ growning સ્ટેક ન હતી. આ એક સ્ટેક કે, મોટા ભાગના ચાર ઘરનાં પરચૂરણ કામો * ઓ ખૂબ ચાર બાબતો છે, પકડી શકે છે. જો અમે પ્રયાસ અને એક પાંચમા વસ્તુ દબાણ હતા, તમે શું વિચારો છો કરીશું થાય? [વિદ્યાર્થીઓ, દુર્બોધ] [Hardison] ચોક્કસ. ત્યાં વસ્તુઓ છે કે જે બની શકે છે તેમ એક નંબર છે. તે કદાચ દોષ seg શકે આપણે શું હતા તેના પર આધાર રાખીને - ખરેખર કેવી રીતે અમે બેક અમલમાં આવી હતી. તે પર ફરીથી લખી શકે છે. તે બફર ઓવરફ્લો કે અમે વર્ગમાં વિશે વાત કરી શકે છે. શું સૌથી સ્પષ્ટ બાબત ફરીથી લખાઈ હોઈ શકે થશે જો અમે અમારી સ્ટેક પર વધારાની વસ્તુ દબાણ કરવાનો પ્રયત્ન કર્યો હતો? તેથી તમે એક બફર ઓવરફ્લો ઉલ્લેખ કર્યો છે. શું ચીજ છે કે ઉપર લખાયેલ કરશે અથવા stomped હોઈ શકે છે જો આપણે વધારાનો વસ્તુ દબાણ કરવાનો પ્રયાસ દ્વારા આકસ્મિક overflowed? [ડીએલ, દુર્બોધ] >> શક્ય. પરંતુ શરૂઆતમાં, શું થાય શકે છે? જો આપણે એક ચોથા વસ્તુ દબાણ કરવાનો પ્રયત્ન કર્યો હતો? આ મેમરી રેખાકૃતિ કે અમે મળી છે સાથે ઓછામાં ઓછા માપ, પર ફરીથી લખી શકે છે. સમસ્યા સેટ સ્પષ્ટીકરણમાં, કે જે અમે શું કરીએ અમલ કરી આજે જઈ રહ્યાં છો, અમે આમ કરવા માંગો છો શું માત્ર ખોટા પરત આવે છે. અમારા દબાણ પદ્ધતિ એ બુલિયન કિંમત પાછી રહ્યું છે, અને તે બુલિયન કિંમત સાચી હોઈ શકે જો દબાણ સફળ થશે અને ખોટા જો અમે વધુ કંઇ નથી કારણ કે દબાણ સ્ટેક સંપૂર્ણ છે. ચાલો કે કોડ થોડો દ્વારા હમણાં નીકળી જાવ. અહીં અમારા દબાણ કાર્ય છે. અમારા સ્ટેક માટે દબાણ કામ કરવા માટે શબ્દમાળા માં લેવા માટે સ્ટેક પર મૂકી રહ્યું છે. તે સાચું પરત ચાલી રહ્યું છે જો શબ્દમાળા સફળતાપૂર્વક દબાણ કરવામાં આવ્યું હતું સ્ટેક અને ખોટા અન્યથા છે. શું કોઈ સૂચનો સારા પ્રથમ અહીં વસ્તુ હોઈ શકે છે? [સેમ] જો માપ ક્ષમતા સમકક્ષ પછી ખોટા પાછા? [Hardison] બિન્ગો. નાઇસ જોબ. જો માપ ક્ષમતા છે, અમે ખોટા પાછા જઈ રહ્યાં છો. અમે અમારા સ્ટેક વધુ કંઇ નથી મૂકી શકો છો. અન્યથા, અમે સ્ટેક ટોચ પર કંઈક મૂકેલ. "સ્ટેક ટોચ," શરૂઆતમાં શું છે? [ડીએલ] કદ 0? >> 0 માપ. સ્ટેક પછી ત્યાં સ્ટેક એક વાત છે ઉપરની શું છે? Missy, તમે જાણો છો? [Missy] એક. >> કદ એક બરાબર છે. તમે કદ ઉમેરીને રાખવા માટે, અને દરેક વખતે જ્યારે તમે એરે માં ઇન્ડેક્સ કદ ખાતે નવું તત્વ માં આપી રહ્યા છીએ. અમે તેને એક લાઇનર તે પ્રકારના સાથે કરવા માટે, જો તે અર્થમાં બનાવે કરી શકો છો. જેથી અમે અમારા શબ્દમાળાઓ એરે મળી છે, તો અમે તેને માપ અનુક્રમણિકા પર ઍક્સેસ જઈ રહ્યાં છો, અને અમે હમણાં જ ત્યાં અમારા ઘરનાં પરચૂરણ કામો * સંગ્રહવા જઈ રહ્યાં છો. નોંધ કેવી રીતે ત્યાં કોઈ શબ્દમાળા નકલ અહીં છે રહ્યું, મેમરી કોઈ ગતિશીલ ફાળવણી? અને પછી Missy અપ લાવવામાં આપણે હવે હોય તો, કારણ કે અમે એરે યોગ્ય જગ્યાએ શબ્દમાળા સ્ટોર કરી, અને તેને જણાવ્યું હતું કે અમે એક માપ વધારો કે જેથી અમે આગામી દબાણ કરવા માટે તૈયાર છો હતો. તેથી અમે s.size સાથે કરી શકો છો + +. આ બિંદુએ, અમે અમારી એરે દબાણ કર્યું છે. છેલ્લા વસ્તુ અમે હોય તો શું છે? [વિદ્યાર્થી] સાચું પાછા ફરો. >> સાચું પાછા ફરો. તેથી તે ખૂબ સરળ છે, એક ખૂબ સરળ કોડ. ખૂબ જ નથી. એકવાર તમે કેવી રીતે કામ કરે છે સ્ટેક આસપાસ તમારા માથા આવરિત કરી લીધી છે, આ ખૂબ અમલ સરળ છે. હવે, આ આગામી ભાગ સ્ટેક શબ્દમાળા બોલ પોપિંગ છે. હું તમને ગાય્ઝ કેટલાક આ થોડો સમય પર કામ આપી જાઉં છું. તે લગભગ અનિવાર્ય આપણે શું દબાણ અહીં કર્યું છે તે રિવર્સ છે. હું કર્યું છે ખરેખર શું છે - oops. હું બુટ કર્યા છે તે અહીં ઉપર, અને સાધન એક સાધન, હું ખેંચાતું કરેલા સમસ્યા 5 સ્પષ્ટીકરણ સુયોજિત કરો. જો અમે અહીં ઝૂમ, અમે જોઈ શકે છે હું cdn.cs50.net/2012/fall/psets/pset5.pdf અંતે છું. શું તમે આ ગાય્સ કોડ કે અહીં સ્થિત છે, section6.zip ડાઉનલોડ? અધિકાર છે. જો તમે ન કર્યું હોય કે, હમણાં જ તે કરવા, ખરેખર ઝડપથી. હું તેને મારા ટર્મિનલ વિન્ડોમાં કરવું પડશે. હું ખરેખર તેને અહીં કર્યું છે. યાહ. હા, સેમ? >> હું તમને કદ 'ઓ s.string કૌંસ શા માટે કહ્યું નહોતું str = વિશે કોઈ પ્રશ્ન છે? Str શું છે? છે કે જે પહેલાં ક્યાંક વ્યાખ્યાયિત, અથવા - ઓહ, તો ઘરનાં પરચૂરણ કામો * str છે? [Hardison] હા, બરાબર. કે દલીલ હતી. >> ઓહ, ઠીક છે. માફ કરશો. [Hardison] અમે સાઇન દબાણ શબ્દમાળા સ્પષ્ટ કરી રહ્યા છીએ અન્ય પ્રશ્ન છે કે જે આવે છે કે અમે ખરેખર અહીં વિશે વાત ન શકે હતો અમે લીધો માટે મંજૂર છે કે અમે આ ઓ કહેવાય ચલ હતી કે અવકાશ અને અમને સુલભ હતી. અમે લીધો માટે મંજૂર છે કે ઓ આ સ્ટેક સ્ટ્રક્ટ હતી. તેથી આ દબાણ કોડ અંતે પાછા looking, તમે જોઈ શકો છો કે જે આપણે આ શબ્દમાળા કે માં પસાર થયો સાથે સામગ્રી કરી રહ્યા છીએ પરંતુ પછી અચાનક તમામ, અમે s.size ઍક્સેસ કરો છો, જેમ કે, જ્યાં s પરથી આવ્યા હતા? તે કોડ અમે વિભાગ પેટીમાં જોવા જઈ રહ્યાં છો ફૂટ અને પછી તે સામગ્રી છે કે તમે તમારી સમસ્યા માં કરી આવશે સુયોજિત કરે છે, અમે કર્યા અમારા સ્ટેક વૈશ્વિક ચલ સ્ટ્રક્ટ જેથી અમે અમારા તમામ વિવિધ કાર્યો તેને ઍક્સેસ કરી શકો છો તેને જાતે પસાર આસપાસ અને તે સંદર્ભ દ્વારા પસાર કર્યા વગર, તે સામગ્રી તમામ પ્રકારની હોય છે. અમે હમણાં જ થોડો છેતરપિંડી કરી રહ્યાં છે જો તમે કરશે, માટે NICER વસ્તુઓ બનાવે છે. અને તે કંઈક અહીં કરી રહ્યા છીએ કારણ કે તે આનંદ માટે છે તેને સરળ છે. ઘણી વખત, તમે લોકો આવું જોવા જો તેઓ એક મોટા માહિતી માળખું પડશે કે તેમના કાર્યક્રમ અંદર આવી રહી છે પર સંચાલિત. ચાલો આ ઉપકરણ પર પાછા જાઓ. શું બધાને સફળતાપૂર્વક section6.zip મળી શકે? એવરીબડી તે ઝિપસાંકળ છોડવી ઝિપસાંકળ છોડવી section6.zip મદદથી? જો તમે કલમ 6 ડિરેક્ટરીમાં જાઓ - આહ, બધા એક જ સ્થળ પર - અને તમે શું યાદી અહીં છે, તો તમે જોશો કે તમે ત્રણ અલગ સી. ફાઈલો મેળવ્યા છે. તમે એક કતાર, એક sll, કે જે singly સાથે જોડાયેલી યાદી છે અને સ્ટેક મેળવ્યા છે. જો તમે stack.c ખોલો, તમે જોઈ શકો છો કે જે આપણે આ આપણા માટે વ્યાખ્યાયિત સ્ટ્રક્ટ મળી છે, ચોક્કસ સ્ટ્રક્ટ કે અમે ફક્ત સ્લાઇડ્સ માં વિશે વાત કરી. અમે સ્ટેક માટે અમારા વૈશ્વિક ચલ મળ્યો છે, અમે અમારા દબાણ કાર્ય મળી છે, અને પછી અમે અમારી પોપ કાર્ય મેળવ્યા છે. હું કોડ મૂકવા માટે પાછા દબાણ અપ સ્લાઇડ પર અહીં પડશે, પરંતુ હું તમને ગાય્ઝ કરવું કરવા માંગો છો શું તમારી ક્ષમતા શ્રેષ્ઠ છે, જાઓ અને પોપ કાર્ય અમલ. એકવાર તમે તેને અમલમાં છે, તો તમે સ્ટેક બનાવવા સાથે આ કમ્પાઇલ કરી શકો છો, અને પછી ફલસ્વરૂપ સ્ટેક એક્ઝેક્યુટેબલ ચલાવવા માટે, અને એ કે આ ટેસ્ટ કોડ તમામ નીચે અહીં કે મુખ્ય માં છે ચાલશે. અને મુખ્ય વાસ્તવમાં દબાણ અને પોપ કોલ કરવા કાળજી લે છે અને ખાતરી કરો કે બધું બધા અધિકાર જાય બનાવે છે. તે સ્ટેક કદ અહીં પ્રારંભ તેથી તમે તે પ્રારંભ ચિંતા નથી. તમે ધારણ કરી શકે છે કે તે યોગ્ય રીતે આરંભ છે સમય કે તમે તેને પોપ કામગીરીમાં ઍક્સેસ દ્વારા. એ નથી કે સૂઝ છે? અહીં અમે જાઓ. ત્યાં દબાણ કોડ છે. હું તમને 5 ગાય્સ અથવા 10 મિનિટો આપી શકશો. અને જો તમે વચગાળાનું કોઈપણ પ્રશ્નો હોય, તો તમે જ્યારે કોડિંગ કરી રહ્યાં છો, પૂછશો બહાર અવાજે કરો. તેથી જો તમે ચોંટતા બિંદુ મેળવવા માટે, ફક્ત પૂછો. મને જણાવો, તો બીજા બધાને ખબર. તમારા પાડોશી સાથે પણ કામ કરે છે. [ડીએલ] અમે ફક્ત પોપ કરી રહ્યાં છો હમણાં અમલમાં? >> જસ્ટ પોપ. જોકે તમે દબાણની અમલીકરણ નકલ જો તમે ઇચ્છો કરી શકો છો કે જેથી પરીક્ષણ કામ કરશે. કારણ કે તે મુશ્કેલ માં મેળવવામાં વસ્તુઓ પરીક્ષણ - અથવા, તે મુશ્કેલ ધાણી વસ્તુઓ પરીક્ષણ એક સ્ટેક જો ત્યાં સ્ટેક પણ સાથે શરૂ નથી. પરત આવવી જોઈએ પોપ શું છે? સ્ટેક ટોચ માંથી તત્વ. તે સ્ટેક ટોચની તત્વ બોલ વિચાર તેવું માનવામાં આવે છે અને પછી સ્ટેક કદ હ્રાસ, અને હવે તમે ટોચ પર તત્વ ગુમાવ્યું છે. અને પછી તમે ટોચ પર તત્વ આવો. [વિદ્યાર્થી, દુર્બોધ] [Hardison] તેથી શું થાય છે જો તમે કે શું કરું? [વિદ્યાર્થી, દુર્બોધ] શું અંત થાય છે અપ રહ્યું છે તો તમે ક્યાં તો ઍક્સેસ કરો છો એક તત્વ છે કે જે હજુ સુધી કરવામાં આવી નથી આરંભ છે, જેથી તમારા ગણતરી જ્યાં છેલ્લા તત્વ છે બંધ છે. અહીં, જો તમે નોટિસ, પુશ માં, અમે s.size તત્વ અંતે શબ્દમાળાઓ ઍક્સેસ કરો છો કારણ કે તે એક નવા ઇન્ડેક્સ છે. તે સ્ટેક નવી ટોચ છે. પોપ, જ્યારે s.size આગામી જગ્યા હોવી રહ્યું છે, આ જગ્યા છે કે જે તમારા સ્ટેક તમામ તત્વો ટોચ પર છે. તેથી તત્વ ટોચ સૌથી s.size અંતે નથી, પરંતુ, તેને નીચે છે. અન્ય કરવા તમે જ્યારે વસ્તુ - પોપ માં, તો કદ હ્રાસ નથી. જો તમે અમારી થોડી રેખાકૃતિ પાછા અહીં યાદ રાખો કે, ખરેખર, આ જ વસ્તુ છે કે અમે થઇ રહ્યું હતો જ્યારે અમે પોપ કહેવાય હતું કે આ કદ પ્રથમ માટે 2 ગઇ, પછી 1 થી. પછી જ્યારે અમે પર નવી તત્વ દબાણ, તેના પર યોગ્ય સ્થળે જતા રહેશે. [બેસિલ] જો s.size 2 છે, પછી તે 2 તત્વ ન જઈ શકે છે, અને પછી તમે તે તત્વ પૉપ બોલ માંગો છો છો? તેથી જો આપણે ગયા - >> તેથી આપણે આ અંતે ફરીથી જુઓ. જો આ બિંદુ પર અમારી સ્ટેક છે અને અમે પોપ કહી, જેમાં ઇન્ડેક્સ તત્વ ટોચ સૌથી છે? [બેસિલ] 2 મુ છે, પરંતુ તેને 3 પૉપ બનશે. >> અધિકાર. જેથી જ્યાં અમારી કદ 3 છે, પરંતુ અમે 2 અનુક્રમણિકા ખાતે તત્વ પૉપ કરવા માંગો છો. તે એક છે કે જે તમે સંગ્રહ શૂન્ય-ઈન્ડેક્સીંગ સાથે હોય છે જે બંધ લાક્ષણિક પ્રકારની છે. તેથી તમે તૃતીય તત્વ પૉપ કરવા માંગો છો, પરંતુ ત્રીજા તત્વ 3 અનુક્રમણિકા પર નથી. અને કારણ અમે તે બાદ 1 કરવું જ્યારે અમે દબાણ કરી રહ્યાં ન હોય છે હમણાં કારણ કે, તમે નોંધ્યું છે કે જે તત્વ ટોચ સૌથી, , જો અમે આ સમયે સ્ટેક પર કંઈક બીજું દબાણ હતા અમે તેને 3 અનુક્રમણિકા પર દબાણ કરવા માંગો છો કરશે. અને તે માત્ર જેથી બને છે કે કદ અને સૂચકાંકોમાં અપ લાઇન જ્યારે તમે દબાણ કરી રહ્યાં છે. કોણ કામ સ્ટેક અમલીકરણ મળ્યું છે? તમે એક કામ એક સ્ટેક મેળવ્યા છે. શું તમને પૉપ હજુ સુધી કામ છે? [ડીએલ] હા. મને એવું લાગે છે. >> કાર્યક્રમ ચાલી રહ્યો છે અને seg faulting નથી, તેને છાપી છે? એ નથી કે તે આઉટ "સફળતા" છાપો જ્યારે તમે તેને ચલાવવા માટે? યાહ. થપ્પી કરવા માટે, તેને ચલાવવા માટે, જો તે "સફળતા" છાપે છે અને નથી ઝડપથી જાઓ નથી, પછી બધા સારી છે. અધિકાર છે. ચાલો આ ઉપકરણ પર ખરેખર ઝડપથી જાઓ, અને અમે આ દ્વારા લઈ જશું. જો આપણે શું થઈ રહ્યું છે તે પોપ સાથે અહીં જોવા, ડેનિયલ, શું પ્રથમ વસ્તુ કે જે તમે કર્યું હતું? [ડીએલ] જો s.size 0 કરતા વધારે છે. [Hardison] ઠીક. અને શા માટે છે કે જે તમને કરી? [ડીએલ] કરવા માટે ખાતરી કરો કે ત્યાં સ્ટેક અંદર કંઈક હતું બનાવે છે. [Hardison] અધિકાર. તમે ખાતરી કરો કે s.size 0 કરતાં મોટો છે ચકાસવા માંગો છો; અન્યથા, તમે શું કરવા છે કરવા માંગો છો? [ડીએલ] રીટર્ન નલ? >> રીટર્ન નલ, બરાબર. તેથી જો s.size 0 કરતા વધારે છે. પછી શું આપણે જોઈ રહ્યા છે છો? અમે તો શું સ્ટેક ખાલી નથી તો શું? [સ્ટેલા] તમે માપ હ્રાસ? >> તમે કદ હ્રાસ, ઠીક છે. તેથી તમે કેવી રીતે છે કે શું હતી? >> S.size -. [Hardison] ગ્રેટ. અને પછી તમે શું કરો છો? [સ્ટેલા] અને પછી હું વળતર s.string કહ્યું [s.size]. [Hardison] ગ્રેટ. અન્યથા તમે નલ આવો. હા, સેમ? [સેમ] તે શા માટે જરૂર નથી s.size પ્રયત્ન 1 + નથી? [Hardison] 1 પ્લસ? >> યાહ. >> તે મળ્યું. [સેમ] મેં વિચાર્યું કારણ કે તમે 1 આઉટ કરી રહ્યાં છે, પછી તમે નથી એ છે કે જે તેઓ માટે પૂછવામાં પાછો જઈ રહ્યાં છો. [Hardison] અને આ હતી માત્ર અમે શું વિશે 0 સૂચકાંકોના આ સમગ્ર મુદ્દો સાથે વાત કરવામાં આવી હતી. તેથી જો આપણે અહીં પર પાછા ઝૂમ. જો અમે આ વ્યક્તિ પર અહીં જુઓ, તમે જોઈ શકો છો કે જ્યારે અમે પૉપ, અમે 2 અનુક્રમણિકા ખાતે તત્વ ધાણી કરી રહ્યાં છો. જેથી અમે અમારા કદ પ્રથમ ઘટાડો, પછી અમારી કદની અમારા અનુક્રમણિકા મેળ ખાય છે. જો અમે કદ પ્રથમ નથી હ્રાસ નથી, તો પછી અમે કદ -1 અને પછી હ્રાસ કરો. સરસ. બધા સારા? આ કોઈપણ પ્રશ્ન છે? ત્યાં અલગ અલગ રીતે એક નંબર માટે પણ આ લખી છે. હકીકતમાં, અમે કંઈક પણ કરી શકો છો - અમે એક લાઇનર કરી શકો છો. અમે વળતર એક લીટી કરી શકો છો. તેથી અમે ખરેખર પહેલાં આપણે જે દ્વારા પરત હ્રાસ કરી શકો છો. આ s.size પહેલાં - જેથી મૂકવા. જે લાઇન ખરેખર ગાઢ બનાવે છે. જ્યાં વચ્ચે તફાવત - ઓ કદ અને. S.size - છે કે આ પોસ્ટફિક્સ - તેઓ તેને પોસ્ટફિક્સ કૉલ કારણ કે - આવે પછી s.size - અર્થ એ થાય કે s.size ઇન્ડેક્સ શોધવા હેતુ માટે મૂલ્યાંકન કરવામાં આવે છે કારણ કે તે હાલમાં જ્યારે આ રેખા ચલાવવામાં આવે છે, અને પછી આ - થાય છે પછી રેખા ચલાવવામાં નહીં. પછી અનુક્રમણિકા s.size ખાતે તત્વ ઍક્સેસ છે. અને કે અમે શું કરવા માંગો છો, નથી કારણ કે અમે હ્રાસ પ્રથમ થાય માંગો છો. Othewise, અમે એરે ઍક્સેસ કરી રહ્યા છીએ, અસરકારક રીતે, બહાર સીમાથી. અમે એક કે અમે ખરેખર ઍક્સેસ કરવા માંગતા હો ઉપર તત્વ ઍક્સેસ કરી રહ્યા છીએ. અરે વાહ, સેમ? >> તે ઝડપથી કે ઓછા RAM નો ઉપયોગ કરવા માટે એક રેખા અથવા ન કરો છે? [Hardison] પ્રામાણિકપણે, તે ખરેખર આધાર રાખે છે. [સામ, દુર્બોધ] >> અરે વાહ, તે આધાર રાખે છે. તમે કમ્પાઇલર યુક્તિઓ કરી શકો છો આ કમ્પાઈલર વિચાર કે ઓળખે છે, સામાન્ય રીતે, હું કલ્પના. તેથી અમે આ કમ્પાઈલર ઓપ્ટિમાઇઝેશન સામગ્રી વિશે થોડો ઉલ્લેખ કર્યો કર્યો છે કે તમે કમ્પાઇલ માં કરી શકો છો, અને તે વસ્તુ પ્રકાર છે કે જે કમ્પાઇલર બહાર આકૃતિ કરવાનો પ્રયત્ન શકે છે, ઓહ, જેમ કે હેય, કદાચ હું એક ક્રિયા આ તમામ કરી શકો છો, તરીકે RAM થી કદ ચલ લોડ વિરોધ કરે છે, તે decrementing, તે પાછા સ્ટોર બહાર, અને તે પછી તેને ફરીથી પાછા લોડ આ ક્રિયા બાકીના પ્રક્રિયા કરે છે. પરંતુ સામાન્ય રીતે, ના, આ વસ્તુ ની સૉર્ટ નથી કે તમારા કાર્યક્રમ નોંધપાત્ર રીતે ઝડપી કરી રહ્યા છે. રન ટાઇમ સ્ટેકનું પર કોઈ વધુ પ્રશ્ન છે? તેથી દબાણ અને ધાણી. જો તમે ગાય્સ માટે બહાર હેકર આવૃત્તિ પ્રયાસ કરવા માંગો છો, અમે હેકર આવૃત્તિ માં કર્યું છે ખરેખર શું ગઇ છે કરી અને આ સ્ટેક ગતિશીલ વિકસે છે. પડકાર ત્યાં મુખ્યત્વે અપ દબાણ કાર્ય અહીં છે, બહાર આકૃતિ કેવી રીતે બનાવવા માટે કે જે એરે વધવા કારણ કે તમે સ્ટેક પર વધુ અને વધુ તત્વો દબાણ રાખે છે. તે વાસ્તવમાં ખૂબ વધારાના કોડ નથી. તમે ત્યાં malloc માટે કોલ્સ યોગ્ય રીતે વિચાર યાદ છે - માત્ર એક કોલ અને પછી બહાર આકૃતિ જ્યારે તમે realloc કહી રહ્યા છીએ. કે જે મજા પડકાર છે જો તમે રસ છો. પરંતુ તેટલા સમય માટે, ચાલો પર ખસેડવા માટે, અને ચાલો ક્યુને વિશે વાત કરો. દ્વારા અહીં સ્ક્રોલ. આ કતાર સ્ટેક એક બંધ બહેન છે. તેથી સ્ટેક માં વસ્તુઓ છે કે જે છેલ્લા મૂકવામાં આવ્યા હતા પ્રથમ પછી પાછી મેળવી શકાય તેવી વસ્તુઓ હતા. અમે આ છેલ્લા છે, પ્રથમ, અથવા LIFO, ઓર્ડર મળ્યો છે. જ્યારે કતાર, તમે જ્યારે તમે લીટી માં સ્થાયી કરી રહ્યાં આશા હો તરીકે, પ્રથમ વાક્ય માં વિચાર વ્યક્તિ, પ્રથમ કતાર માં વિચાર વસ્તુ, પ્રથમ વસ્તુ કે કતાર માંથી મેળવાયેલ નહીં હોય. ક્યુને પણ ઘણીવાર ઉપયોગ થાય છે જ્યારે અમે ગ્રાફ સાથે કામ કરીએ છીએ, જેમ અમે વિશે સંક્ષિપ્તમાં રન ટાઇમ સ્ટેકનું સાથે વાત કરી અને ક્યુને પણ અન્ય વસ્તુઓ સમૂહ માટે સરળ હોય છે. એક વસ્તુ છે કે જે ઘણી વાર આવે જાળવવા પ્રયાસ કરી રહી છે, ઉદાહરણ તરીકે, તત્વોના છટણી યાદી. અને તમે એક એરે સાથે કરી શકો છો. તમે એક એરે એક વસ્તુઓ છટણી યાદી જાળવી શકે છે, પરંતુ જ્યાં કપટી નહીં કે પછી તમે હંમેશા શોધવા હોય યોગ્ય આગામી વસ્તુ સામેલ સ્થળ. તેથી જો તમે 10 દ્વારા નંબરો ઝાકઝમાળ, 1 છે, અને પછી તમે 100 મારફતે તમામ 1 નંબરો કે વિસ્તૃત કરવા માંગતા હો, અને તમે રેન્ડમ ક્રમમાં આ નંબરો મળી રહ્યાં છે અને બધું રાખવા પ્રયાસ કરી છટણી તરીકે તમે મારફતે જાઓ, તમે અંત માટે સ્થળાંતર ઘણો કરી છે. ક્યુને અને પાયાની માહિતી માળખાં ચોક્કસ પ્રકારના ચોક્કસ પ્રકારના સાથે, તમે ખરેખર તે એકદમ સરળ રાખી શકો છો. તમે કંઈક ઉમેરો અને પછી સમગ્ર બાબત દરેક સમય સમયે નથી. કે તમે આસપાસ આંતરિક ઘટકો સ્થળાંતર ઘણો કરી નથી. જ્યારે અમે કતાર જોવા, તમે તે જોવા માટે - પણ કલમ કોડ માં queue.c માં - આ સ્ટ્રક્ટ કે અમે તમને આપી છે ખરેખર સ્ટ્રક્ટ કે અમે તમને એક સ્ટેક માટે આપ્યા સમાન છે. ત્યાં એક આ અપવાદ છે કે, અને એક અપવાદ છે કે અમે આ વધારાના વડા તરીકે ઓળખાય પૂર્ણાંક હોય છે, અને અહીં વડા કતાર વડા માટે રાખવામાં આવેલ છે, અથવા કતાર માં પ્રથમ તત્વ. સ્ટેક સાથે, અમે તત્વ ટ્રેક રાખો કે અમે પુનઃપ્રાપ્ત હતા સમર્થ હતા, અથવા સ્ટેક ટોચ, માત્ર કદ વાપરી રહ્યા હોય, એક કતાર સાથે, જ્યારે અમે વિરુદ્ધ અંત સાથે કામ આવી રહી છે. અમે ઓવરને અંતે પર વસ્તુઓ કાર્યનીતિ માટે પ્રયાસ કરી રહ્યા છો, પરંતુ તે પછી આગળના માંથી વસ્તુઓ આવો. તેથી અસરકારક રીતે, માથા સાથે, અમે કતાર શરૂઆત ઇન્ડેક્સ હોય છે, અને માપ અમને કતાર અંતે ઇન્ડેક્સ આપે છે તેથી અમે પ્રમુખ વસ્તુઓ મેળવવા અને પૂંછડી પર વસ્તુઓ ઉમેરી શકો છો. સ્ટેક સાથે, જ્યારે અમે માત્ર ક્યારેય સ્ટેક ટોચ સાથે વ્યવહાર હતા. આપણે ક્યારેય સ્ટેક નીચે ઍક્સેસ કરો. અમે ફક્ત ટોચ પર વસ્તુઓ ઉમેરવામાં અને વસ્તુઓ ટોચની ઉપડ્યો જેથી અમે અમારા સ્ટ્રક્ટ અંદર કે જે વધારાના ક્ષેત્ર જરૂર ન હતી. એ નથી કે સામાન્ય અર્થમાં છે? અધિકાર છે. હા, શાર્લોટ? [ચાર્લોટ, દુર્બોધ] [Hardison] તે એક મહાન પ્રશ્ન છે, અને તે એક કે વ્યાખ્યાન માં આવ્યા હતા. કદાચ થોડા ઉદાહરણો મારફતે વૉકિંગ સમજાવે છે કે શા માટે કરશે અમે શબ્દમાળાઓ કતાર વડા તરીકે [0] વાપરવા માંગો નહિં. તેથી કલ્પના કે અમે અમારા કતાર છે, તો અમે તેને કતાર કહી રહ્યા છીએ. શરૂઆતમાં, જ્યારે અમે ફક્ત instantiated કરી લીધી છે, જ્યારે અમે માત્ર તે જાહેર કર્યું નથી, આપણે કંઈ પણ ન આરંભ છે. તે બધા કચરો છે. તેથી અલબત્ત અમે ખાતરી કરવા માટે કે અમે પ્રારંભ કરવા માંગો છો બંને કદ અને માથા ક્ષેત્રો 0, વાજબી કંઈક છે. અમે પણ આગળ જાઓ અને શકે અમારી કતાર માં તત્વો null. અને આ રેખાકૃતિ ફિટ બનાવે નોટિસ કે, હવે અમારી કતાર માત્ર ત્રણ ઘટકો પકડી શકે છે; જ્યારે અમારા સ્ટેક ચાર પકડી શકે છે, અમારા કતાર માત્ર ત્રણ સમાવી શકે છે. અને તે ફક્ત માટે રેખાકૃતિ યોગ્ય બનાવે છે. પ્રથમ વસ્તુ છે જે અહીં થાય છે આપણે શબ્દમાળા એન્ક્યૂ "હાય". અને જેમ અમે સ્ટેક કર્યું, ઘણું જ અલગ અહીં કશું, અમે શબ્દમાળાઓ પર [0] અને 1 કરીને અમારી કદ વધારો પર શબ્દમાળા ફેંકો. અમે એન્ક્યૂ "બાય", તેના પર મૂકવા નહીં. તેથી આ સૌથી ભાગ માટે એક સ્ટેક જેવો દેખાય છે. અમે બોલ અહીં શરૂ, નવી તત્વ, નવી તત્વ, કદ ઉપર જઈને રાખે છે. શું આ બિંદુએ થાય છે જ્યારે અમે કંઈક dequeue કરવા માંગો છો? જ્યારે અમે dequeue માંગો છો, કે જે તત્વ કે અમે dequeue કરવા માંગો છો? [બેસિલ] સ્ટ્રીંગ્સ [0]. ઝીરો. >> બરાબર અધિકાર બેસિલ. અમે પ્રથમ શબ્દમાળા, આ એક, "હાય" છૂટકારો મેળવવા માંગો છો. તેથી અન્ય વસ્તુ કે જે બદલાયેલ શું હતું? નોંધ જ્યારે અમે સ્ટેક બંધ કંઈક પોપ, અમે ફક્ત બદલાયેલ માપ, પરંતુ અહીં, અમે વસ્તુઓ ફેરફાર એક દંપતી મેળવ્યા છે. માત્ર માપ બદલો, પરંતુ વડા ફેરફારો કરે છે. આ પાછાં ચાર્લોટ અગાઉ બિંદુ પર જઈને છે: અમે આ વડા શા માટે નથી તેમજ છે? એ નથી કે તે અર્થમાં હવે બનાવવા માટે, શાર્લોટ? ઓફ >> કાઇન્ડ. [Hardison] ના પ્રકાર? તેથી શું થયું જ્યારે અમે dequeued? માથા શું નહોતી કે હવે રસપ્રદ છે? [ચાર્લોટ] ઓહ કારણ કે, તેને બદલી - ઠીક છે. હું જુઓ. કારણ કે માથા - જ્યાં વડા સ્થાન દ્રષ્ટિએ ફેરફારો પોઇન્ટ છે. તે લાંબા સમય સુધી હંમેશા શૂન્ય ઇન્ડેક્સ એક છે. >> યાહ બરાબર. થયું શું હતું જો ઊંચા તત્વ dequeueing હતી કર્યું અને અમે આ વડા ક્ષેત્ર ન હતી કારણ કે અમે હંમેશા 0 અનુક્રમણિકા અમારા કતાર માથામાંથી આવતા હતા આ શબ્દમાળાને કૉલ, પછી અમે કતાર બાકીના પાળી નીચે હોય તો. અમે માંથી "બાય" શબ્દમાળાઓ થી [1] શબ્દમાળાઓ [0] માટે પાળી હોય તો. અને શબ્દમાળાઓ [2] ડાઉન માટે શબ્દમાળાઓ. [1] અને અમે તત્વો સમગ્ર યાદી માટે આવું હોય હો, તત્વોના સમગ્ર એરે. અને જ્યારે અમે ઝાકઝમાળ સાથે આ કરી રહ્યા છીએ, કે ખરેખર ખર્ચાળ નોંધાયો નહીં. તેથી અહીં તે મોટા સોદો નથી. અમે અમારા એરે ત્રણ ઘટકો છે. પરંતુ જો આપણે એક હજાર તત્વોના કતાર અથવા મિલિયન તત્વો હતા, અને પછી અચાનક તમામ, અમે dequeue સમૂહ કમાવવાનું શરૂ લુપ માં બધા કહે છે, વસ્તુઓ ખરેખર ધીમી તરીકે તે બધું સ્થળાંતરિત નીચે સતત રહ્યા છે. તમે જાણો છો, 1 દ્વારા પાળી, 1 દ્વારા 1 પાળી દ્વારા પાળી, 1 દ્વારા પાળી. તેના બદલે આપણે આ વડા ઉપયોગ, અમે તેને "નિર્દેશક" કૉલ ભલે તે ખરેખર એક નિર્દેશક નથી કડક અર્થમાં; તે નિર્દેશક પ્રકાર નથી. તે પૂર્ણાંક * અથવા ઘરનાં પરચૂરણ કામો * અથવા કે કંઈપણ નથી. પરંતુ તે પોઇન્ટ અથવા અમારી કતાર વડા સૂચવે છે. યાહ? [વિદ્યાર્થી] dequeue માત્ર બોલ પૉપ ગમે તે વડા છે કેવી રીતે ખબર નથી? [Hardison] dequeue કેવી રીતે ખબર નથી કે કેવી રીતે આ બોલ પર પોપ ગમે તે વડા અંતે છે? >> અધિકાર, હા. >> તેને જોઈ છે શું છે માત્ર માથા ક્ષેત્ર ગમે સુયોજિત થયેલ છે. તેથી આ પ્રથમ કિસ્સામાં જો, અમે અહીં જુઓ, અમારા વડા 0, અનુક્રમણિકા 0 છે. >> અધિકાર. [Hardison] તેથી તે માત્ર ઠીક, પણ 0 અનુક્રમણિકા ખાતે તત્વ, શબ્દમાળા "હાય" કહે છે, અમારા કતાર વડા ખાતે તત્વ છે. તેથી અમે તે વ્યક્તિ dequeue રહ્યા છીએ. અને તે તત્વ કે કૉલર પરત ફર્યા નહીં હશે. હા, સાદ? >> તેથી વડા મારાથી સુયોજિત કરે છે - જ્યાં તમે તેને ઇન્ડેક્સ જઈ રહ્યાં છો? કે તે શરૂઆતમાં છે? >> યાહ. ઠીક છે. >> [Hardison] તે અમારી એરે માટે નવી જ શરૂઆત બની છે. તેથી જ્યારે તમે કંઈક dequeue, બધા તમારે હોય છે અનુક્રમણિકા q.head ખાતે તત્વ ઍક્સેસ કરવા માટે, અને તે તત્વ કે જે તમે કરવા માંગો છો dequeue હશે. તમે પણ કદ હ્રાસ છે. અમે થોડી જુઓ જ્યાં વસ્તુઓ થોડો આ સાથે કાવતરાબાજ મળશે. અમે dequeue, અને હવે, જો આપણે ફરી એન્ક્યૂ, જ્યાં અમે એન્ક્યૂ છે? આગામી તત્વ અમારા કતાર જ્યાં જાઓ નથી? કહો અમે શબ્દમાળા "સીએસ" એન્ક્યૂ કરવા માંગો છો. અનુક્રમણિકા જેમાં તે જશે? [વિદ્યાર્થીઓ] સ્ટ્રીંગ્સ. [2] બે. >> શા માટે 2 અને ન 0? [બેસિલ] કારણ કે હવે વડા 1 છે, જેથી કે યાદી શરૂઆત જેવું છે? [Hardison] અધિકાર. અને શું યાદી ઓવરને સૂચવે છે? માટે અમે શું અમારી કતાર ઓવરને દર્શાવવા ઉપયોગ કરી રહ્યા હતા? વડા અમારા કતાર વડા, અમારા કતાર શરૂઆત છે. અમારા કતાર ઓવરને શું છે? કદ [વિદ્યાર્થીઓ]. >> કદ, બરાબર. તેથી અમારા નવા તત્વો કદ પર જાઓ, અને તત્વો કે અમે લઇ બોલ વડા અંતે બોલ આવે છે. જ્યારે આપણે આગામી તત્વ એન્ક્યૂ, અમે તેને કદ પર આપી રહ્યા છીએ. તમે તે પહેલાં [વિદ્યાર્થી] મૂકી છે કે જોકે, કદ 1 હતી, અધિકાર? [Hardison] અધિકાર. તેથી ન તદ્દન માપ છે. કદ +, પરંતુ ને +1 + + વડા. કારણ કે અમે વડા જથ્થો દ્વારા બધું જ બદલ્યા. તેથી અહીં, હવે અમે કદ 1 નું એક કતાર કે 1 ઇન્ડેક્સ શરૂ થાય મેળવ્યા છે. પૂંછડી 2 અનુક્રમણિકા છે. હા? [વિદ્યાર્થી] શું થાય છે જ્યારે તમે dequeue શબ્દમાળાઓ [0], અને મેમરી માં 'શબ્દમાળાઓ સ્લોટ્સ માત્ર ખાલી રહે, મૂળભૂત રીતે, અથવા માત્ર ભૂલી? [Hardison] યાહ. આ અર્થમાં, અમે ફક્ત તેને ભૂલી રહ્યા છીએ. જો અમે તેમને નકલ માટે સ્ટોર કરવામાં આવી હતી - અનેક માહિતી માળખાં ઘણીવાર તત્વો પોતાના નકલો સ્ટોર કરશે જેથી આ માહિતી માળખું વ્યવસ્થા વ્યક્તિ માટે ચિંતા નથી જ્યાં તે તમામ પોઇંટરો કરવાના છો તે વિશે. આ માહિતી માળખું બધું પર ધરાવે છે, બધી નકલો પર ધરાવે છે, ખાતરી કરવા માટે કે બધું યોગ્ય ચાલુ રહે બનાવે છે. જોકે, આ કિસ્સામાં, આ માહિતી બંધારણોની જ સરળતા માટે, છે બનાવે કંઇ નથી નકલો કે અમે તેમને સ્ટોર કરી રહ્યાં છે. [વિદ્યાર્થી] તેથી આ એક સતત એરે છે -? હા. >> જો અમે વ્યાખ્યા શું આ માળખું હતું પર એક નજર, તે છે. તે માત્ર એક માનક એરે છે કે તમે જોઇ છે, ઘરનાં પરચૂરણ કામો * ઓ પણ દર્શાવે છે. કે કરે છે -? >> અરે વાહ, હું હમણાં જ આશ્ચર્ય પામી હતી જો તમે છેવટે મેમરી રન આઉટ પડશે, અમુક ચોક્કસ હદ સુધી, જો તમે તમારા એરે આ તમામ ખાલી સ્થળો છે? [Hardison] અરે વાહ, કે સારી બિંદુ છે. જો આપણે શું થયું છે અંતે હવે આ બિંદુએ, જુઓ અમે અમારા કતાર ભરી દીધા પછી, તે જેવી દેખાય છે. પરંતુ અમે ખરેખર ન અમારા કતાર ભરેલી છે કારણ કે અમે એક કતાર કે 2 માપ છે ધરાવે છે, પરંતુ તેને 1 ઇન્ડેક્સ શરૂ થાય છે, કારણ કે તે છે જ્યાં અમારી વડા નિર્દેશક છે. જેમ તમે કહેતા હતા કે, શબ્દમાળાઓ પર તત્વ [0] 0 અનુક્રમણિકા પર, ખરેખર ત્યાં નથી. તે અમારી કતાર માં હવે નથી. અમે હમણાં જ જાય છે અને તેને ફરીથી લખી ત્યારે અમે તેને dequeued નથી સંતાપ ન હતી. તેથી ભલે લાગે છે કે અમે મેમરી રન કર્યા છે, અમે ખરેખર નથી. હાજર છે કે જેઓ ઉપલબ્ધ છે માટે અમને વાપરવા માટે. યોગ્ય વર્તન, જો અમે પ્રયાસ અને પ્રથમ dequeue કંઈક હતા "બાય" માંગો કે, બાય પૉપ બોલ કરશે. હવે અમારા કતાર 2 ઇન્ડેક્સ શરૂ થાય છે અને 1 માપ છે. અને હવે જો આપણે પ્રયત્ન કરો અને કંઈક એન્ક્યૂ ફરીથી, 50 કહેવું, 50 આ સ્થળ માં 0 અનુક્રમણિકા પર જવા જોઈએ કારણ કે તે હજુ આપણા માટે ઉપલબ્ધ છે. હા, સાદ? [સાદ] કે જે આપોઆપ થાય છે? [Hardison] તે તદ્દન આપોઆપ બનશે નહિં. તમે ગણિત કરો બનાવવા માટે કામ કરે છે, પરંતુ આવશ્યક અમે કર્યું છે શું છે અમે માત્ર આસપાસ આવરિત કર્યું છે. [સાદ] અને તે ઠીક જો આ તે મધ્યમાં એક કાણું છે? [Hardison] એવું છે જો અમે કરી શકો છો ગણિત બહાર યોગ્ય રીતે કામ કરે છે. અને તે તારણ છે કે જે વાસ્તવમાં છે કે જે મોડ ઓપરેટર સાથે શું હાર્ડ નથી. તેથી જેમ અમે સીઝર અને ક્રિપ્ટો સામગ્રી સાથે હતી, મોડ મદદથી, અમે વસ્તુઓ ફરતે વીંટળાય મેળવવા અને જઈને રાખી શકો છો આસપાસ અને આસપાસ અને આસપાસ સાથે અમારી કતાર, કે વડા નિર્દેશક આસપાસ ખસેડવા રાખી હતી. તે માપ નોટિસ હંમેશા સંખ્યાબંધ તત્વો છે તે ખરેખર બાબતમાં એ કતાર અંદર. અને તે માત્ર માથા કે નિર્દેશક દ્વારા સાયકલની રાખે છે. જો આપણે શું અહીં થયું જોવા, જો આપણે શરૂઆત પર પાછા જાઓ, અને તમે માત્ર જોઈ શું માથા પર થાય છે જ્યારે અમે કંઈક એન્ક્યૂ, કંઇ વડા થયું. જ્યારે આપણે કંઈક બીજું enqueued, કંઇ વડા થયું. જલદી અમે કંઈક dequeued, માથા એક દ્વારા વધતું જાય છે. અમે કંઈક enqueued, કંઇ માથા પર થાય છે. જ્યારે આપણે કંઈક dequeue, અચાનક તમામ વડા વધે નહીં. જ્યારે આપણે કંઈક એન્ક્યૂ, કંઇ માથા પર થાય છે. શું આ બિંદુએ થાય જો આપણે કંઈક ફરીથી dequeue હતા છો? કોઈપણ વિચારો? શું માથા પર શું થશે? શું માથા પર શું કરીશું જો અમે કંઈક બીજું dequeue હતા? વડા હમણાં 2 અનુક્રમણિકા છે, જેનો અર્થ છે કે કતાર વડા શબ્દમાળાઓ [2] છે. [વિદ્યાર્થી] કયા 0 આપે છે? >> તે 0 થી પરત કરીશું. તે પાછા ફરતે વીંટળાય છે, બરાબર કરીશું. અત્યાર સુધીમાં, દર વખતે આપણે dequeue કહેવાય છે, અમે માથા પર થઈ એક ઉમેરીને, માથા પર એક ઉમેરવા માટે, માથા પર એક ઉમેરવા માટે, માથા પર એક ઉમેરો. જલદી કે વડા નિર્દેશક અમારા એરે છેલ્લા ઇન્ડેક્સ નહીં, પછી અમે તેને લપેટી પાછા શરૂઆતમાં આસપાસ હોય, તો 0 થી પાછા જાઓ. [ચાર્લોટ] શું સ્ટેક માં કતાર ક્ષમતા નક્કી કરે છે? [Hardison] આ કિસ્સામાં, અમે માત્ર એક # વ્યાખ્યાયિત કર્યું છે સતત ઉપયોગ કરીને કરવામાં આવ્યો છે. ઠીક છે. >> [Hardison] વાસ્તવિક. કેચ ફાઈલ, તમે અને ખાતર તે થોડો સાથે જઈ શકે છે અને તે મોટી અથવા થોડી તમે ઇચ્છતા હો તે કરો. [ચાર્લોટ] તેથી જ્યારે તમે તેને કતાર બનાવી રહ્યા છો, તમે કેવી રીતે બનાવવા તે કોમ્પ્યુટર ખબર મોટું તમે કેવી રીતે સ્ટેક પ્રયત્ન કરવા માંગો છો? [Hardison] તે એક મહાન પ્રશ્ન છે. ત્યાં ઘણી રીતે દંપતી છે. એક માત્ર તેને વ્યાખ્યાયિત અપ ફ્રન્ટ છે અને આ કહેવા માટે એક કતાર કે 4 તત્વો અથવા 50 તત્વો અથવા 10,000 છે પ્રયત્ન રહ્યું છે. અન્ય માર્ગ આમ હેકર આવૃત્તિ લોકો શું કરી છે અને તમારી કતાર ગતિશીલ વધવા વધુ વસ્તુઓ સાઇન ઉમેરવામાં કરો વિધેયો બનાવવા [ચાર્લોટ] તેથી પ્રથમ વિકલ્પ સાથે જાઓ, વાક્યરચના શું તમે વાપરો નહિં કાર્યક્રમને કહેવું એ કતાર માપ શું છે? [Hardison] આહ. તેથી આપણે આ નીકળી જાય છે. હું અહીં stack.c હજુ પણ છું, જેથી હું માત્ર ઉપર અહીં સ્ક્રોલ જાઉં છું. તમે આ જમણે જુઓ અહીં કરી શકો છો? આ છે # 10 ક્ષમતા વ્યાખ્યાયિત કરે છે. અને આ લગભગ ચોક્કસ જ વાક્યરચના કે અમે કતાર માટે હોય છે. કતાર સિવાય, અમે અહીં જે વધારાના સ્ટ્રક્ટ ક્ષેત્ર મેળવ્યા છે. [ચાર્લોટ] ઓહ, મેં વિચાર્યું ક્ષમતા શબ્દમાળા માટે ક્ષમતા હતો. [Hardison] આહ. >> તે તે શબ્દ મહત્તમ લંબાઈ છે. >> તે મળ્યું. યાહ. અહીં ક્ષમતા - કે જે એક મહાન બિંદુ છે. અને આ એવું કંઈક છે જે કપટી છે છે કારણ કે અમે અહીં જાહેર કર્યું છે શું કામની પાળી * ઓ ઝાકઝમાળ છે. પોઇન્ટર પણ દર્શાવે છે. આ અક્ષરો એક વ્યૂહરચના છે. આ સંભવિત છે કે તમે શું જ્યારે તમે ફાઇલ માટે તમે તમારા બફરો જાહેર જોઇ છે I / O, જ્યારે તમે શબ્દમાળાઓ થઈ જાતે બનાવી સ્ટેક પર. જો કે, અમે અહીં મળી છે શું કામની પાળી * ઓ ઝાકઝમાળ છે. તેથી તે પોઇંટરો ઝાકઝમાળ છે. ખરેખર, જો અમે પાછા ઝૂમ આઉટ અને અમે જોવા શું થઈ રહ્યું છે તે અહીં પ્રસ્તુતિ, તમે કે વાસ્તવિક તત્વો, અક્ષર માહિતી જુઓ એરે પોતાની અંદર સંગ્રહિત નથી. છે અમારા એરે અંદર અહીં સંગ્રહિત શું અક્ષર માહિતી માટે પોઇન્ટર છે. ઠીક છે. તેથી અમે જોઇ છે કેવી રીતે કતાર માપ ફક્ત સ્ટેક સાથે ગમે છે, કદ હંમેશા સંખ્યાબંધ તત્વો હાલમાં આદર કતારમાં છે. 2 enqueues કર્યા પછી, કદ 2 છે. એક dequeue કર્યા પછી માપ હવે 1 હોય છે. અન્ય એન્ક્યૂ કર્યા પછી કદ બેકઅપ માટે 2 છે. જેથી કદ ચોક્કસપણે કતાર માં સંખ્યાબંધ તત્વો આદર, અને પછી વડા માત્ર સાયકલ રાખે છે. તે 0-1-2, 0-1-2 0-1-2, ના જાય છે. અને દર વખતે અમે dequeue કૉલ, માથા નિર્દેશક આગામી ઇન્ડેક્સ વધે નહીં. અને જો માથા વિશે છે ઉપર જાય છે, તેની આસપાસ 0 પાછા આંટીઓ. જેથી સાથે, અમે dequeue કાર્ય લખી શકો છો. અને અમે એન્ક્યૂ કાર્ય છોડી માટે તમે ગાય્સ બદલે અમલીકરણ કરવા જઈ રહ્યાં છો. , જ્યારે અમે અમારા કતાર એક તત્વ બહાર dequeue શું પ્રથમ વસ્તુ કે ડીએલ હતી જ્યારે અમે રન ટાઇમ સ્ટેકનું માટે પોપ કાર્ય લખવાનું શરૂ કર્યું હતું? મને કોઈકને જે હજુ સુધી નથી બોલાય છે સાંભળવા. ચાલો જોવા માટે, સાદ, તમે યાદ નથી ડીએલ શું પ્રથમ વસ્તુ જ્યારે તેમણે પોપ લખ્યું હતી? [સાદ] ત્યાં, તે હતી - >> તેઓ કંઈક માટે પરીક્ષણ કર્યું છે. [સાદ] જો માપ 0 કરતા વધારે છે. ચોક્કસ. >> અને માટે તે પરીક્ષણ શું હતું? [સાદ] તે જોવા માટે જો ત્યાં એરે અંદર કશું છે પરીક્ષણ કરવામાં આવ્યું હતું. [Hardison] યાહ. બરાબર. તેથી તમે સ્ટેક બહાર કંઈપણ પૉપ જો તે ખાલી શકે છે. તેવી જ રીતે, તમે કંઈપણ એક કતાર નથી dequeue જો તે ખાલી શકે છે. પ્રથમ વસ્તુ અમે અમારા dequeue કાર્ય અહીં શું કરવું જોઈએ શું છે, તમે શું વિચારો છો? [સાદ] જો માપ 0 કરતાં મોટો છે? >> યાહ. આ કિસ્સામાં, હું ખરેખર માત્ર કર્યું છે તે જોવા માટે તેની 0 છે પરીક્ષણ કર્યું છે. જો તે 0 છે, અમે નલ પાછા આવી શકો છો. પરંતુ ચોક્કસ જ તર્ક. દો અને આ સાથે ચાલુ રાખો. જો માપ 0 નથી, જ્યાં તત્વ કે અમે dequeue કરવા માંગો છો? [સાદ] માથા પર? ચોક્કસ. >> અમે હમણાં જ અમારી કતાર કરી પ્રથમ તત્વ ખેંચવાનો માથા પર તત્વ ઍક્સેસ દ્વારા. ઉન્મત્ત કંઈ નથી. તે પછી, અમે શું કરીશું? શું થાય છે? અન્ય વસ્તુ કે અમે dequeue માં વિશે વાત કરી શું હતો? બે વસ્તુઓ માટે થાય છે, કારણ કે અમારા કતાર બદલાઈ ગયેલ છે. [ડીએલ] માપ ઘટાડો. >> અમે કદ ઘટાડવા અને માથા વધારો છે? બરાબર. તે માથામાં વધારો, અમે માત્ર અકારણ વડા નથી વધારો કરી શકે છે, યાદ કરે છે. માત્ર અમે કરી શકતા નથી queue.head કરવું + +. અમે પણ ક્ષમતા દ્વારા આ મોડ સમાવેશ થાય છે. અને શા માટે અમે ક્ષમતા દ્વારા mod નથી, સ્ટેલા? [સ્ટેલા] કારણ કે તે માટે ફરતે વીંટળાય છે. ચોક્કસ. >> અમે ક્ષમતા દ્વારા મોડ કારણ કે તે 0 થી આસપાસ પાછળ લપેટી છે. તેથી હવે, આ બિંદુએ, અમે શું કરી શકો છો ડીએલ શું કહ્યું હતું. અમે કદ હ્રાસ કરી શકો છો. અને પછી અમે માત્ર તત્વ કે કતાર ટોચ પર હતી પાછા આવી શકો છો. તે પ્રકારની વાંકું વળી ગયેલું લાગે પ્રથમ છે. તમે એક પ્રશ્ન હોય શકે છે. માફ કરશો? [સેમ] એ કતાર ટોચ પર પ્રથમ શા માટે છે? જ્યાં જાઓ કે નથી? [Hardison] તે નીચે ના ચોથા લીટી આવે છે. પછી અમે ખાતરી કરો કે અમારા કતાર ખાલી નથી ચકાસો, અમે ઘરનાં પરચૂરણ કામો * પ્રથમ ખેંચવાનો, અમે તત્વ કે વડા અનુક્રમણિકા પર બેસીને છે ખેંચવાનો અમારા ઍરેની, અમારા શબ્દમાળાઓ એરે >>, અને પ્રથમ તે કોલ ઓફ? [Hardison] અને અમે તેને પ્રથમ ફોન કરો. યાહ. હમણાં પર અનુસરણ કરવા માટે શા માટે તમે વિચારો છો અમે તે કરવા હતો? [સેમ] દરેક પ્રથમ માત્ર q.strings પરત છે [q.head] >> યાહ. >> કારણે અમે મોડ કાર્ય સાથે q.head આ બદલાતી કરી રહ્યા છીએ, અને ત્યાં કોઈ વળતર રેખા અંદર પણ આવું રીત છે. [Hardison] ચોક્કસ. તમે હાજર છો. સામ તદ્દન પર સ્પોટ છે. કારણ કે અમે અમારી કતાર માં પ્રથમ તત્વ ખેંચવાનો અને તે ચલ માં સ્ટોર હતો કારણ એ છે કે આ વાક્ય જ્યાં અમે ફક્ત q.head હતી, ત્યાં ત્યાં માં મોડ ઓપરેટર કંઈક કે અમે શું કરી શકો છો નથી એક લીટી માં - અને તે વિના છે માથા પર અસર કરશે. તેથી અમે ખરેખર બહાર પ્રથમ તત્વ ખેંચવાનો હોય, તો પછી વડા સંતુલિત, માપ વ્યવસ્થિત અને પછી તત્વ કે અમે બહાર ખેંચી આવો. અને આ એવું કંઈક છે કે અમે આવો જોશો સાથે પછીથી કડી થયેલ યાદી છે, કારણ કે અમે તેમની સાથે આસપાસ ભજવે છે. ઘણી વખત જ્યારે તમે ખાલી અથવા રહ્યાં છો કડી થયેલ યાદીઓ નિકાલ તમે આગલા તત્વ, એક કડી થયેલ યાદી આગળના નિર્દેશક યાદ કરવાની જરૂર છે વર્તમાન એક નિકાલ પહેલાં. કારણ કે અન્યથા તમે દૂર શું યાદીમાં બાકી છે તે માહિતી ફેંકો. હવે, જો તમે તમારા ઉપકરણ પર જાઓ, તમે આ queue.c-x ખોલવા બહાર. તેથી જો હું queue.c ખોલવા માટે, અહીં મને ઝૂમ દો, તમે જોશો કે તમે ફાઈલ સમાન દેખાવ ધરાવે છે. સમાન દેખાવ આપણે શું stack.c સાથે અગાઉ ફાઇલ. અમે હમણાં જ વ્યાખ્યાયિત તરીકે અમે સ્લાઇડ્સ પર જોયું કતાર માટે અમારા સ્ટ્રક્ટ મેળવ્યા છે. અમે અમારા એન્ક્યૂ કાર્ય કરે છે, જે તમારા માટે શું કરવું છે. અને અમે dequeue કાર્ય અહીં છે. ફાઈલમાં dequeue કાર્ય સ્વીકારેલનથી છે, પરંતુ મેં પાછા મૂકવા અપ કરશો તો પાવરપોઈન્ટ પર કે જેથી તમે તેને ટાઇપ, જો તમે ઇચ્છો કરી શકો છો. જેથી આગામી 5 જેથી અથવા મિનિટ માટે, તમે ગાય્સ એન્ક્યૂ પર કામ જે લગભગ માત્ર dequeue ની વિરુદ્ધ છે. તમે વડા સંતુલિત જ્યારે તમે enqueueing કરી રહ્યાં નથી, પરંતુ તમે શું સંતુલિત છે? માપ. તેથી જ્યારે તમે એન્ક્યૂ, માથા પ્રવર્તતી રહે છે, માપ બદલાયેલ નહીં. પરંતુ તે થોડો સમય લાગી નથી - તમે તે મોડ સાથે આસપાસ રમી પડશે બહાર બરાબર આકૃતિ ઇન્ડેક્સ શું નવું તત્વ અંતે શામેલ હોવી જોઈએ. તેથી હું તમને ગાય્ઝ થોડો આપીશું, સ્લાઇડ પર પાછા ઉપર dequeue મૂકી, અને જેમ તમે ગાય્સ પ્રશ્નો હોય, તેમને પોકાર બહાર કે જેથી અમે કરી શકો છો એક જૂથ તરીકે તેમને વિશે તમામ ચર્ચા. પણ, કદ તમે don't સાથે - જ્યારે તમે માપ વ્યવસ્થિત, તો તમે હંમેશા માત્ર કરી શકો છો - તો તમારે માપ ક્યારેય mod છે? [ડીએલ] નં >> તમે કદ mod નથી, અધિકાર. કારણ કે કદ હંમેશા, જો you're કરશે - ધારી રહ્યા છીએ કે તમે વસ્તુઓ કરી રહ્યાં યોગ્ય વ્યવસ્થા કરવા માટે, કદ હંમેશા 0 અને 3 ની વચ્ચે રહેશે. તમે mod જ્યારે તમે એન્ક્યૂ કરી રહ્યા છીએ જ્યાં છે? માથા માટે માત્ર [વિદ્યાર્થી]. માથા માટે માત્ર >> બરાબર. અને તમે એન્ક્યૂ બધી અંતે mod શા માટે છે? એક પરિસ્થિતિ છે કે જેમાં તમે નકામી હોય છે હો ક્યારે છે? [વિદ્યાર્થી] જો તમે જગ્યાઓ પર સામગ્રી છે, 1 જગ્યાઓ અને 2 ગમે છે, અને પછી તમે 0 અંતે કંઈક ઉમેરવા જરૂર છે. [Hardison] અરે વાહ, બરાબર. તેથી જો તમારા માથા નિર્દેશક ખૂબ ઓવરને અંતે છે, અથવા જો તમારા વત્તા તમારા માથા મોટી છે અથવા તેને બદલે, એ કતાર ફરતે વીંટળાય રહ્યું છે. તેથી આ પરિસ્થિતિ કે અમે મળી છે અહીં સ્લાઇડ પર અધિકાર હવે, જો હું કંઈક હમણાં એન્ક્યૂ માંગો છો, અમે 0 અનુક્રમણિકા પર કંઈક એન્ક્યૂ કરવા માંગો છો. તેથી જો તમે જ્યાં 50 એ જાય જોવા, અને હું 50 એન્ક્યૂ કહી, તે ત્યાં જાય તળિયે. તે ઇન્ડેક્સ 0 માં જાય છે. તે 'હાય' કે જે પહેલેથી dequeued હતી બદલે છે. [ડીએલ] નહિં કે કાળજી ન લો તમે dequeue પહેલેથી જ? તે એન્ક્યૂ માં વડા સાથે શા માટે નથી કંઇ? [Hardison] ઓહ, જેથી તમે વડા નથી ફેરફાર કરી રહ્યાં છો, માફ. પરંતુ તમે મોડ ઓપરેટર વાપરો જ્યારે તમે ઍક્સેસ કરો છો છે તત્વ કે જે તમે એન્ક્યૂ જ્યારે તમે ઍક્સેસ કરો છો માંગો છો તમારી કતારમાં આગામી તત્વ. [બેસિલ] હું કે નથી નહોતી, અને હું ત્યાં પર "સફળતા" મળી. [ડીએલ] ઓહ, હું સમજું છું કે તમે શું કહી રહ્યાં છે. [Hardison] તેથી તમે didn't - તમે હમણાં q.size અંતે હતી? [બેસિલ] યાહ. મેં હમણાં જ પક્ષ બદલ્યો, હું કાંઇ માથા સાથે કંઈ કર્યું નથી. [Hardison] તમે ખરેખર વડા ફરીથી સેટ કરવા કંઈપણ નથી, પરંતુ શબ્દમાળાઓ એરે માં તમે જ્યારે અનુક્રમણિકા, તમે ખરેખર આગળ વધો અને ગણતરી જ્યાં આગામી તત્વ છે, કારણ કે સ્ટેક વિલોની મજબૂત લવચીક ડાળ, તમારા સ્ટેક આગામી તત્વ હંમેશા આ કદ ને અનુરૂપ અનુક્રમણિકા છે. જો અમે અમારી સ્ટેક દબાણ કાર્ય પર બેકઅપ જુઓ, આપણે હંમેશા અનુક્રમણિકા કદ પર અધિકાર અમારી નવી તત્વ માં plunk શકે છે. આ કતાર સાથે, જ્યારે અમે તે ન કરી શકો જો આપણે આ પરિસ્થિતિ પર છો, કારણ કે, જો આપણે enqueued 50 અમારા નવા શબ્દમાળા અધિકાર [1] શબ્દમાળાઓ પર જશે જે અમે કરવા નહિં માંગો. અમે હોય નવું શબ્દમાળા 0 અનુક્રમણિકા પર જાઓ કરવા માંગો છો. શું કોઈની - હા? [વિદ્યાર્થી] હું એક પ્રશ્ન છે, પરંતુ તે ખરેખર સંબંધિત નથી. તે ત્યારે શું કોઈને માત્ર pred નિર્દેશક કંઈક કહે છે તેનો અર્થ એવો નથી? કે નામ શું છે ટૂંકા? મને ખબર છે કે તે માત્ર એક નામ છે. [Hardison] Pred નિર્દેશક? ચાલો જુઓ. કયા સંદર્ભમાં? [વિદ્યાર્થી] તે insert હતો. હું તમને પછીથી પૂછો જો તમે શકો છો કારણ કે તે ખરેખર સંબંધિત નથી પરંતુ હું માત્ર - [Hardison] માતાનો ડેવિડ વ્યાખ્યાન insert કોડ પ્રતિ? અમે તે ખેંચવાનો અપ કરી શકો છો અને તે અંગે વાત કરો. અમે કે આગામી, એક વખત અમે સંલગ્ન યાદીઓ મેળવવા વિશે વાત કરીશું. તેથી ખરેખર ઝડપથી ચાલો એન્ક્યૂ કાર્ય શું લાગે છે જુઓ. પ્રથમ વસ્તુ છે કે જે લોકો તમારી એન્ક્યૂ લીટી માં આપતા શું હતો? આ કતાર માં? તમે શું દબાણ સ્ટેક માટે કર્યું કરવા જેવી હતી. તમે શું, કરી સ્ટેલા? [સ્ટેલા, દુર્બોધ] [Hardison] ચોક્કસ. જો (== ક્ષમતા q.size) - હું યોગ્ય સ્થાન મારા કૌંસ મુકવાની જરૂર છે - ખોટા આવો. થોડો ઝૂમ વધારો. ઠીક છે. હવે આગામી વસ્તુ કે અમે શું હતું શું? જસ્ટ સ્ટેક સાથે ગમે, અને યોગ્ય સ્થળે શામેલ કરી. અને તેથી જમણી કે દાખલ સ્થળ શું હતું? સ્ટેક સાથે ઇન્ડેક્સ કદ હતું, આ સાથે તે નથી કે તે તદ્દન છે. [ડીએલ] હું q.head અથવા-હોય - >> q.strings? >> હા. q.strings [q.head q.size + + મોડ ક્ષમતા] [Hardison] અમે કદાચ આ આસપાસ કૌંસ મૂકેલ જેથી અમે યોગ્ય અગ્રતા કરી રહ્યાં છે અને જેથી દરેકને માટે cleart છે. સેટ અને તે સમાન? Str કરવા >>? Str કરવા માટે. >> સરસ. અને હવે છેલ્લા વસ્તુ કે અમે હોય તો શું? જેમ અમે સ્ટેક કર્યું હતું. >> માપ ઈજાફો? >> કદ વધારો. બુમ. અને પછી સ્ટાર્ટર કોડ ત્યારથી માત્ર મૂળભૂત દ્વારા ખોટા પાછો ફર્યો, અમે સાચા આ ફેરફાર જો તમામ જાય છે અને બધા સારી રીતે જાય કરવા માંગો છો. અધિકાર છે. કે વિભાગ માટે ઘણી માહિતી છે. અમે તદ્દન પર નથી. અમે singly સાથે જોડાયેલી યાદીઓ વિશે ખરેખર ઝડપથી વાત કરવા માંગો છો. હું આ મૂકી જેથી પડશે અમે પાછા તે પછી જઇ શકો છો. દો પરંતુ અમારી રજૂઆત પાછા ફક્ત થોડાંક વધુ સ્લાઇડ્સ માટે જાઓ. તેથી એન્ક્યૂ TODO છે, હવે અમે તે કર્યું છે. હવે આપણે singly સાથે જોડાયેલી યાદીઓ પર એક નજર. અમે વ્યાખ્યાન આ થોડો વધુ વિશે વાત કરી. તમે ગાય્સ ઘણા કેવી રીતે ડેમો જોવા મળી હતી જ્યાં અમે લોકો awkwardly દરેક અન્ય અને હોલ્ડિંગ નંબર પોઇન્ટ? >> હું કે હતી. >> તમે ગાય્સ શું વિચાર્યુ? કે હતી, આસ્થાપૂર્વક આ થોડો demystify? યાદી સાથે, તે તારણ છે કે અમે આ પ્રકારની સાથે વ્યવહાર કે અમે નોડ કહી રહ્યા છીએ. આ કતાર અને સ્ટેક સાથે જ્યારે અમે સ્ટ્ર્ક્ટ્સ કે અમે સ્ટેક માં કતાર કૉલ હો હતી, અમે સ્ટેક પ્રકારની આ નવા કતાર હતી, અંહિ યાદી ખરેખર માત્ર છે ગાંઠો સમૂહ બનેલી છે. એ જ રીતે જે શબ્દમાળાઓ માત્ર અક્ષરો સમૂહ છે બધા એકબીજા સાથે આગામી જતી. એક કડી થયેલ યાદી માત્ર એક નોડ અને અન્ય નોડ અને અન્ય નોડ અને અન્ય નોડ છે. અને તેના બદલે આ તમામ ગાંઠો મળીને સ્મેશિંગ અને તેમને નજીકના સ્ટોર કરતાં અધિકાર બધી મેમરીનો માં આગામી એકબીજા, આ આગામી નિર્દેશક કર્યા અમને ત્યાં ગાંઠો સંગ્રહવા માટે રેન્ડમ ખાતે પરવાનગી આપે છે. અને પછી વાયર પ્રકારની તેમને બધા એકસાથે એક બીજામાં નિર્દેશ છે. અને શું મોટો લાભ એ હતો કે આ એક એરે પર હતી? સંગ્રહવા બધું બોલ નજીકના માત્ર દરેક અન્ય આગળ અટકી? તમને યાદ? યાહ? >> ગતિશીલ મેમરી ફાળવણી? >> અર્થમાં શું માં ડાયનામિક મેમરી ફાળવણી? [વિદ્યાર્થી] કે તમે તેને મોટા અને તમે તમારા સમગ્ર એરે ખસેડવા ન હોય બનાવવા રાખી શકો છો? [Hardison] ચોક્કસ. તેથી ઝાકઝમાળ છે, જ્યારે તમે તેને મધ્યમાં એક નવી તત્વ મૂકેલ તમે બધું પાળી માટે જગ્યા કરવા છે. અને જેમ અમે કતાર સાથે વિશે વાત કરી, કે શા માટે અમે તે વડા નિર્દેશક રાખવા માટે, તેથી અમે સતત કામ નહીં સ્થળાંતર કરી રહ્યા છો. કારણ કે તે ખર્ચાળ નોંધાયો જો તમે એક મોટી એરે મળી છે અને તમે સતત આ રેન્ડમ દાખલ કરી રહ્યા છીએ. યાદી સાથે, જ્યારે તમારે હોય છે તે નવા નોડ પર ફેંકવું, આ પોઇંટરો સંતુલિત, અને તમે પૂર્ણ કરી રહ્યાં છો. શું આ અંગે sucks? ઉપરાંત એ હકીકત છે કે તે સરળ કરવા માટે એરે તરીકે સાથે કામ નથી માંથી? યાહ? [ડીએલ] વેલ, હું માનું તે ખૂબ કઠણ છે માટે યાદીની લિંક ચોક્કસ તત્વ ઍક્સેસ? [Hardison] તમે ફક્ત તમારા યાદીની લિંક મધ્યમાં એક મનસ્વી તત્વ ન બાંધી શકે છે. તમે તેને બદલે શું કેવી રીતે છે? >> તમે સમગ્ર વસ્તુ મારફતે પગલું છે. [Hardison] યાહ. તમે એક સમયે, એક એક સમયે પસાર થવું પડે છે. આ એક વિશાળ - તે એક પીડા છે. અન્ય શું છે - ત્યાં આ બીજી પતન છે. [બેસિલ] તમે આગળ અને પાછળની ન જઇ શકે? તમે એક દિશામાં જવું છે? [Hardison] યાહ. તેથી અમે કેવી રીતે કે નથી ક્યારેક ઉકેલ? [બેસિલ] યાદીઓ સમયમાં બમણું-કડી થયેલ છે? ચોક્કસ. >> ત્યાં સમયમાં બમણું-રંગસૂત્ર સાથે સંકળાયેલો યાદી છે. ત્યાં પણ છે - માફ કરશો? [સેમ] કે છે કે pred વસ્તુ કે મદદથી જ - મેં હમણાં જ યાદ નથી, કે pred વસ્તુ શું છે? છે સમયમાં બમણું અને singly વચ્ચે કે નહીં? બરાબર શું તેઓ કરી હતી [Hardison] લેટ્સ જુઓ. અહીં અમે જાઓ. અહીં યાદી કોડ છે. અહીં અમે predptr અહીં હોય છે. આ તમે શું વિશે વાત કરવામાં આવી હતી? તેથી આ હતો - તેમની યાદી ખાલી છે અને તે માટે તેને એક નિર્દેશક સ્ટોર કરવાનો પ્રયાસ છે. આ સમયમાં બમણું singly, કડી થયેલ-યાદીઓ નથી. અમે આ વિશે વધુ પાછળથી યાદી ખાલી વિશે શકે છે વાત થી આ વાત છે અને હું કેટલાક અન્ય સામગ્રી પ્રથમ બતાવવા માંગો છો. પરંતુ તે માત્ર - તે ptr મૂલ્ય યાદ છે [વિદ્યાર્થી] ઓહ, તે preceeding નિર્દેશક છે? >> યાહ. તેથી અમે તે પછી અમે તે પછી મફત predptr શું છે તે પહેલાં પોતે ptr વધારો કરી શકે છે. કારણ કે અમે મુક્ત ptr અને પછી ptr = ptr આગામી, અધિકાર? ન કહી શકો છો કે ખરાબ હશે. તેથી આપણે જોઈ, આ વ્યક્તિ માટે નહીં. યાદીઓ વિશે અન્ય ખરાબ બાબત એ છે કે એક એરે સાથે જ્યારે અમે ફક્ત બધા તત્વો પોતાને એકબીજા આગામી સ્ટૅક્ડ હોય છે, અહીં આપણે પણ આ નિર્દેશક રજૂઆત કરી છે. તેથી ત્યાં મેમરી વધારાનો ભાગ કે અમે ઉપયોગ રહી છે દરેક તત્વ છે કે અમે અમારી યાદીમાં સ્ટોર કરી રહ્યાં છે. અમે સુગમતા વિચાર છે, પરંતુ તે ખર્ચે આવે છે. આ સમય કિંમત સાથે આવે છે, અને તે આ મેમરી કિંમત સાથે પણ આવે છે. અર્થમાં સમય કે અમે હવે એરે દરેક તત્વ કરવી થી 10 અનુક્રમણિકા ખાતે એક, અથવા 10 અનુક્રમણિકા ઝાકઝમાળ કરવામાં આવશે છે કે તે શોધો. જસ્ટ ખરેખર ઝડપથી, જ્યારે અમે આ યાદીઓ ડાયાગ્રામ, ખાસ કરીને અમે યાદી વડા અથવા યાદી પ્રથમ નિર્દેશક ને પકડી નોંધ કરો કે આ સાચી અને નિર્દેશક છે. તે ફક્ત 4 બાઇટ્સ છે. તે વાસ્તવિક નોડ પોતે નથી. તેથી તમે જુઓ કે તે કોઇ પૂર્ણાંક કિંમત છે, તે કોઈ આગામી નિર્દેશક ધરાવે છે. તે શાબ્દિક માત્ર એક નિર્દેશક છે. તે કંઈક કે જે વાસ્તવિક નોડ સ્ટ્રક્ટ છે નિર્દેશ બનશે. [સેમ] એક નોડ કહેવાય નિર્દેશક? >> આ છે - નં. આ પ્રકારની ગાંઠની કંઈક કરવા માટે એક નિર્દેશક છે. તે નોડ સ્ટ્રક્ટ માટે નિર્દેશક છે. >> ઓહ, ઠીક છે. જમણી બાજુ પર ડાબી કોડ છે, પર રેખાકૃતિ. અમે તેને નલ છે, કે જે સારા શરૂ કરવા માર્ગ છે સુયોજિત કરી શકો છો. જ્યારે તમે તે ડાયાગ્રામ, તમે ક્યાં તો તેને નલ તરીકે લખી અથવા તમે તેને મારફતે વાક્ય મૂકવામાં જ ગમે છે. એક સૌથી સરળ યાદીઓ સાથે કામ રીતે, અને અમે તમે બંને અંત થાય પૂછો અને તે બંને વચ્ચે તફાવતો જોવા ઉમેરી, પરંતુ prepending ચોક્કસપણે સરળ છે. જ્યારે તમે ઉમેરવું, આ તમે જ્યાં છે - જ્યારે તમે અંત (7), તમે જાઓ અને નોડ સ્ટ્રક્ટ બનાવો અને તમે પ્રથમ સેટ કરવા માટે તે નિર્દેશ, હવે કારણ કે, કારણ કે અમે તેને prepended, તે યાદી શરૂઆતમાં જ હશે. જો (3) અંત થાય છે, કે જે અન્ય નોડ બનાવે અમે, પરંતુ હવે 3 7 પહેલા આવે છે. જેથી અમે અમારા અનિવાર્યપણે યાદી પર કરી રહ્યાં છો વસ્તુઓ દબાણ. હવે, તમે જોઈ શકો છો કે અંત થાય છે, કેટલીકવાર લોકો કહી તે દબાણ, કારણ કે તમે તમારા યાદી પર એક નવી તત્વ દબાણ કરી રહ્યાં છે. તે પણ સરળ યાદી આ બોલ પર કાઢી નાંખો. તેથી લોકો ઘણીવાર તે પોપ કૉલ કરશે. અને તે રીતે, તમે એક કડી થયેલ યાદી વાપરવા સ્ટેક અનુકરણ કરી શકો છો. દેખીતી ભૂલ માટે માફી (માગવી તે). માફ કરશો, હવે અમે ઉમેરો માં રહ્યાં છો. અહીં અમે (7) prepended, હવે અમે અંત (3). જો આપણે આ યાદીમાં પર કંઈક બીજું prepended, જો આપણે prepended (4), તો પછી અમે 4 હોય છે અને 3 પછી અને પછી 7 છો. તેથી તો અમે પૉપ અને 4 દૂર કરવા માટે, 3 દૂર કરી શકે છે, 7 દૂર કરો. ઘણી વખત વધુ આ વિશે વિચારો રસ્તો ઉમેરો સાથે છે. તેથી હું diagrammed કર્યું છે કે તે શું અહીં ઉમેરો જેવો દેખાશે. અહીં, ઉમેરાયું (7) કોઈપણ અલગ લાગતી નથી કારણ કે ત્યાં માત્ર યાદીમાં એક તત્વ છે. અને ઉમેરવાની (3) તે ઓવરને અંતે મૂકે છે. કદાચ તમે હમણાં ઉમેરો સાથે યુક્તિ જોઈ શકો છો કે છે કારણ કે અમે માત્ર ખબર જ્યાં યાદી શરૂઆત છે, એક યાદી તમે યાદી મારફતે તમામ રીતે ચાલવા હોય ઉમેરો માટે ઓવરને મેળવવા, બંધ કરવા, પછી તમારી નોડ અને plunk નીચે બધું બિલ્ડ. બધી સામગ્રી WIRE છે. તેથી અંત સાથે, કારણ કે અમે ફક્ત આ મારફતે ખરેખર ઝડપથી ripped, જ્યારે તમે યાદીમાં જોડો, તે એકદમ સરળ છે. તમે તમારા નવા નોડ બનાવવા માટે, કેટલાક ગતિશીલ મેમરી ફાળવણી સમાવેશ થાય છે. અહીં અમે નોડ malloc મદદથી સ્ટ્રક્ટ બનાવી રહ્યા છો. Malloc જેથી અમે કારણ કે કોરે પછીના માટે અમારા માટે મેમરી સેટ કરશો ઉપયોગ કરી રહ્યાં છો કારણ કે અમે આ નથી માંગતા - અમે આ મેમરી લાંબા સમય સુધી ટકી શકયું કરવા માંગો છો. અને અમે મેમરીમાં જગ્યા છે કે અમે માત્ર ફાળવવામાં માટે નિર્દેશક મેળવો. અમે નોડ કદ વાપરવા માટે, અમે ક્ષેત્રો ન સરવાળો નથી. અમે જાતે બાઇટ્સ સંખ્યા પેદા નથી, તેના બદલે આપણે sizeof કે જેથી અમે જાણીએ છીએ કે અમે બાઇટ્સ યોગ્ય નંબર મળી રહ્યાં વાપરો. અમે ચકાસણી માટે કે જે અમારા malloc કોલ સફળ ખાતરી કરો. આ એવું કંઈક તમે સામાન્ય રીતે કરવા માંગો છો છે. આધુનિક મશીનો પર, મેમરી બહાર ચાલી કંઈક છે જે સરળ નથી જ્યાં સુધી તમે સામગ્રી એક ટન allocating કરી રહ્યાં છે અને એક વિશાળ યાદી બનાવે છે, પરંતુ જો તમે એક આઇફોન અથવા Android જેમ કહે છે, માટે સામગ્રી નિર્માણ કરી રહ્યાં છો, તમે મર્યાદિત મેમરી સ્રોતો હોય છે, ખાસ કરીને જો તમે તીવ્ર કંઈક કરી રહ્યા છીએ. તેથી તે સારું છે વ્યવહારમાં વિચાર. નોંધ કરો કે હું એક દંપતી અલગ કાર્યો ઉપયોગ કર્યો છે અહીં કે જે તમે જોઇ છે કે જે નવા પ્રકારની હોય છે. તેથી fprintf માત્ર printf ગમે છે તેના પ્રથમ દલીલ સિવાય સ્ટ્રીમ પર જે તમે છાપવાનો માંગો છો. આ કિસ્સામાં, અમે પ્રમાણભૂત ભૂલ શબ્દમાળા છાપવાનો માંગો છો જે પ્રમાણભૂત outstream અલગ છે. મૂળભૂત રીતે તે જ સ્થાને બતાવે છે. તે પણ ટર્મિનલ પર બહાર છાપે છે, પરંતુ તમે કરી શકો છો - તે આદેશોની મદદથી તમારા વિશે, તો પુનર્નિર્દેશન ટેકનિક શીખી તમે ટોમી વિડિઓમાં વિશે સમસ્યા 4 સેટ માટે શીખ્યા, તો તમે તેને દિશામાન કરી શકો છો વિવિધ વિસ્તારોની; પછી બહાર નીકળો, અહીં, બહાર નીકળે છે તમારા કાર્યક્રમ. તે મુખ્ય ફર્યા જેમ અનિવાર્યપણે છે, સિવાય અમે બહાર નીકળો ઉપયોગ કારણ કે અહીં વળતર કંઈપણ કરશે. અમે મુખ્ય નથી છો, જેથી પરત કાર્યક્રમ જેવા અમે માંગતા નથી બહાર નીકળી નથી. તેથી અમે બહાર કાર્ય વાપરો અને તેને ભૂલ કોડ આપે છે. પછી અહીં અમે નવા નોડ કિંમત ક્ષેત્ર, તેના હું ક્ષેત્ર સુયોજિત કરવા માટે હું સમાન હોય છે, અને તે પછી અમે તેને WIRE છે. અમે નવા નોડ આગામી નિર્દેશક સુયોજિત કરવા માટે પ્રથમ નિર્દેશ, અને પછી પ્રથમ હવે નવા નોડ માટે નિર્દેશ કરશે. કોડ આ પ્રથમ રેખાઓ, અમે ખરેખર નવી નોડ મકાન રહ્યા છો. આ કાર્ય છેલ્લા બે લીટીઓ પરંતુ પ્રથમ મુદ્દાઓ પર પણ. વાસ્તવમાં તમે એક કાર્ય માં બહાર ખેંચી શકે છે મદદગાર કાર્ય માં. જે ઘણીવાર મારે શું કરવું છે તે જ, હું તે કાર્ય માં બહાર ખેંચી, હું તેને બિલ્ડ નોડ કંઈક કહી, અને તે અંત થાય કાર્ય ખૂબ નાના રાખે છે, તો તે માત્ર 3 રેખાઓ પછી છે. હું મારા બિલ્ડ નોડ કાર્ય કૉલ કરવા માટે, અને પછી હું વાયર અપ બધું. અંતિમ વસ્તુ હું તમને બતાવવા માંગો છો, અને હું તમને તમારા પોતાના પર ઉમેરો અને તે તમામ કરવા માટે, કેવી રીતે પર યાદી પર ફરી વળવું છે. ત્યાં અલગ ઉપર યાદી પર ફરી વળવું રીતે સમૂહ છે. આ કિસ્સામાં, અમે એક યાદી લંબાઈ શોધી રહ્યા છીએ. તેથી અમે = 0 લંબાઈ સાથે શરૂ કરો. આ ખૂબ જ શબ્દમાળા માટે strlen લખવા સમાન છે. આ હું શું તમે દર્શાવે છે, આ લૂપ માટે અહીં માંગો છો. તે kinda ફંકી લાગે છે; તે સામાન્ય નથી પૂર્ણાંક હું = 0, હું ગમે <, હું + +. તેના બદલે તે અમારી ચલ n પ્રારંભ છે યાદીમાં શરૂઆત છે. અને પછી જ્યારે અમારા iterator ચલ નલ નથી, અમે જઈને રાખો. આ કારણ છે કે, પરંપરા દ્વારા, અમારા યાદી ઓવરને નલ હશે. અને પછી + + કરી બદલે વધારો કરવા માટે, લિંક કરેલા + + યાદી સમકક્ષ + + = n-n> આગામી છે. હું તમને અહીં અવકાશ ભરવા દો કારણ કે અમે સમય નથી પડશે. પરંતુ ધ્યાનમાં રાખવું આ તરીકે તમે તમારા spellr psets પર કામ કરે છે. લિંક કરેલા યાદીઓ, જો તમે હેશ ટેબલ અમલ કરી રહ્યાં છો, ચોક્કસપણે ખૂબ જ હાથમાં આવશે. અને વસ્તુઓ પર રહ્યાં માટે આ રૂઢિપ્રયોગ કર્યા જીવન ખૂબ સરળ બનાવવા માટે, લઇશ. કોઈપણ પ્રશ્નો, ઝડપથી? [સેમ] તમે પૂર્ણ sll અને એસસી મોકલી કરશે? [Hardison] યાહ. હું પૂર્ણ સ્લાઇડ્સ અને પૂર્ણ sll સ્ટેક અને queue.cs મોકલીશું. [CS50.TV]