[Powered by Google Translate] [કતારમાં] [સીએચ ગેર્બર, હાર્વર્ડ યુનિવર્સિટી] આ CS50 છે, CS50.TV] એક તત્વો એક આદેશ આપ્યો સંગ્રહ સ્ટોર કરવા માટે ઉપયોગી માહિતી માળખું એક કતાર છે. તે જ્યારે તત્વો દૂર કરવાની જરૂર છે માટે વપરાય છે એ જ ક્રમમાં તરીકે તેઓ ઉમેરવામાં આવ્યા હતા. આ વિચારને FIFO, જેમાં, પ્રથમ બહાર પ્રથમ માટે ટૂંકું નામ છે તરીકે ઓળખવામાં આવે છે. આ આત્મસાત્ મદદ, તે ચિત્ર માટે ઉપયોગી હોઈ શકે છે એક દુકાન પર એક ચેકઆઉટ રેખા. લોકોને આવો, તેઓ લીટી પાછળ અંતે રાહ જુઓ. આ કેશિયર પછી વારા લે આ બોલ પર ગ્રાહકોને સેવા આપતા, જેમણે પછી, એક સમયે એક વાક્ય બહાર નીકળો. કોમ્પ્યુટર વિજ્ઞાન, અમે વડા તરીકે કતાર આગળના નો સંદર્ભ લો અને પૂંછડી તરીકે નહીં. જ્યારે અમે અરજી આ ઉપયોગ કરી શકે છે ઉદાહરણ વર્ગ નોંધણી માટે રાહ જોવાની સૂચિમાં છે. તરીકે બેઠકો વર્ગ ઉપલબ્ધ બની જાય છે, જે રાહ યાદી વડા ખાતે વ્યક્તિ માટે વર્ગ નોંધણી તક આપવામાં આવે છે. એક કતાર કોઈપણ સંગ્રહ ઉપયોગ કરીને બનાવી શકાય છે કે જે એરે અથવા સંકળાયેલી યાદી તરીકે જેમ કે ક્રમમાં માહિતી, સંગ્રહ કરે છે. સાથે એ કતાર માં વસ્તુઓ સ્ટોર સંગ્રહ સાથે, અમે પણ એક માટે કતાર ઓવરને અંતે આઇટમ્સ ઉમેરવા પદ્ધતિ જરૂર છે, જે enqueuing કહે છે, અને અન્ય કતાર વડા માંથી એક આઇટમ દૂર કરવા માટે, જે dequeuing કહેવામાં આવે છે. તે ઘણીવાર ઉપયોગી અન્ય પદ્ધતિ સમાવી કતાર ના વર્તમાન લંબાઈ પાછા તેમજ તેની તપાસ જો કતાર ખાલી છે પદ્ધતિ તરીકે. ચાલો અમે કેવી રીતે સી માં પૂર્ણાંકો એક કતાર અમલ શકે જોવા, તત્વોના સંગ્રહ માટે એરે મદદથી. પ્રથમ, અમે અમારી ચલો પકડી કતાર કહેવાય માળખું બનાવો. અમે પૂર્ણાંકો એક 0 નિશ્ચિત કદના અનુક્રમણિકા એરે ઉપયોગ કરશે આ તત્વો સ્ટોર કરે છે. અમે પણ એક ચલ કહેવાય વડા સમાવેશ કરશે કે તત્વ કે કતાર વડા હાલમાં છે અનુક્રમણિકા સંગ્રહિત કરે છે. ત્રીજી ચલ કરશે, લંબાઈ કહેવાય વાપરી શકાય માટે એરે માં સંખ્યાબંધ તત્વો સાચવી રાખે. વિકલ્પ તરીકે, તમે એક ચલ કહેવાય પૂંછડી મદદથી નક્કી કરી શકે છે માટે એરે છેલ્લા ક્ષેત્ર તત્વ માટે નિર્દેશ કરે છે. પહેલાં અમે કોઈ વધુ કોડ લખો, ચાલો અમારી ડિઝાઈન કરવાનો પ્રયાસ કરો. ચાલો 0 લંબાઈ એક ખાલી એરે સાથે શરૂ કરવા માટે, સાથે વડા 0 માં સુયોજિત કરો. હવે લેટ્સ એન્ક્યૂ 4 કિંમતો - 6, 2, 3, અને 1. આ બોલ પર કોઈ રન હવે 4 હશે, અને માથા 0 અંતે રહેશે. તો શું થાય અમે કિંમત dequeue? અમે 3 માટે લંબાઈ ઘટાડો કરશે, 1 થી માથા સુયોજિત કરો, અને 6 કિંમત આવો. તે કોડ આના જેવો હોઈ શકે છે. અહીં અમે dequeue કાર્ય હોય છે, પ્ર - - જે કતાર પર એક નિર્દેશક લે છે અને તત્વ એક નિર્દેશક, જે પ્રકાર પૂર્ણાંક છે. પ્રથમ અમે કતાર લંબાઈ માટે ખાતરી કરો કે તે 0 થી વધુ છે તેની ખાતરી કરવા તપાસો, ખાતરી કરો કે ત્યાં એક dequeued શકાય તત્વ છે. પછી અમે તત્વો એરે માં પોઝિશન વડા પર, જુઓ, અને તત્વ કિંમત સુયોજિત કરવા માટે કે પદ પર કિંમત છે. પછી અમે વડા બદલવા માટે આગામી અનુક્રમણિકા પ્રયત્ન ક્ષમતા%. પછી અમે 1 દ્વારા કતાર લંબાઈ ઘટાડે છે. છેલ્લે, અમે સૂચવે છે કે dequeue સફળ હતી સાચું આવો. જો અમે ફરી dequeue, લંબાઈ 2 બની જશે, માથા પણ 2 બની જશે, અને રિટર્ન કિંમત 2 હશે. શું થાય જો આપણે 7 જેમ અન્ય કિંમત એન્ક્યૂ? જેમ અમે કતાર ઓવરને અંતે હતા, અમે ફરતે વીંટળાય છે અને ઍરેની તત્વ 0 કિંમતમાં સ્ટોર કરવાની જરૂર પડશે. ગાણિતિક, આ બોલ પર કોઈ રન ઉમેરીને રજૂ કરી શકાય માથા ના ઇન્ડેક્સ અને એક કતાર ક્ષમતા મદદથી મોડ્યુલસ રહ્યા. અહીં કે +2 2, જે 4 4% છે, જે 0 છે. આ વિચાર અનુવાદ માટે કોડ અમે આ કાર્ય હોય છે. અહીં અમે એન્ક્યૂ કાર્ય જુઓ, પ્ર - જે કતાર પર એક નિર્દેશક લે - અને તત્વ enqueued કરવા લાગે છે, જે પૂર્ણાંક છે. અમે આગામી માટે ખાતરી કરો તપાસો કે કતાર ક્ષમતા હજુ પણ કતાર ના વર્તમાન લંબાઈ કરતાં વધારે હોય છે. પછી, આપણે તત્વો એરે માં તત્વ સ્ટોર ઇન્ડેક્સ જે એક + વડા લંબાઈ% એ કતાર ક્ષમતા દ્વારા નિર્ધારિત થાય છે. પછી અમે 1 દ્વારા કતાર લંબાઈ વધારવા, અને પછી સાચું પાછા સૂચવે છે કે એન્ક્યૂ કાર્ય સફળ થયું હતું. બે કાર્યો અમે જણાવ્યા કર્યું વધુમાં, બે વધારાના વિધેયો છે. પ્રથમ isempty કાર્ય છે, જે કતાર પર એક નિર્દેશક લે છે ખાતરી અને તે લંબાઈ 0 છે. બીજા લંબાઈ કાર્ય છે, જે કતાર પર એક નિર્દેશક લે છે અને સ્ટ્રક્ટ ના વર્તમાન લંબાઈ આપે છે. આ ટૂંકી ઝાંખી એક કતાર શક્ય અમલીકરણ દર્શાવ્યું છે. મર્યાદાઓ આ અમલીકરણ માટે એક છે કે કતાર નિશ્ચિત મહત્તમ કદ ધરાવે છે. જો, અમે વધુ તત્વો કરતાં કતાર પકડી શકે છે ઉમેરવા પ્રયાસ અમે વિનંતી અવગણો અને તત્વ છોડો જરૂર પડી શકે છે, અથવા આપણે ભૂલ અમુક પ્રકારના પાછા પસંદ કરી શકે છે. ઝાકઝમાળ બદલે યાદીની લિંક વાપરીને તે ગતિશીલ માપ કતાર સરળ બનાવશે. જો કે, અમે એક કડી થયેલ યાદી ના તત્વો સીધો વપરાશ નહિં હોય, જો અમે પૂંછડી ટ્રૅક રાખી નથી, અમે સમગ્ર યાદીની લિંક સ્કેન ઓવરને દરેક સમયે વિચાર હશે. અમે પણ અન્ય માહિતી પ્રકાર ઝાકઝમાળ મદદથી નક્કી કરી શકે છે, સ્ટ્ર્ક્ટ્સ છે, જેમ કે વધુ જટિલ તત્વો ક્યુને બનાવો. એક વર્ગ રાહ જોવાની સૂચિમાં અમારી ઉદાહરણ પર પાછા વિચારવાનો, આ માળખાં વ્યક્તિગત વિદ્યાર્થીઓ પ્રતિનિધિત્વ કરી શકે છે. મારું નામ સીએચ ગર્બર છે, અને આ CS50 છે. [CS50.TV] અને વળતર - >> એક વધુ સમય. અને તે સૂચવવા માટે સાચું પરત કરો - કતાર સફળ રહ્યો હતો. % એ કતાર ક્ષમતા - - તે ફેરફાર માં મજા જ હશે. [હાસ્ય]