[સંગીત વગાડવાનો] ડો LLOYD: ઠીક છે, એટલી દરમિયાન આ મુદ્દે, અમે સી ઓફ બેઝિક્સ ઘણો આવરી કર્યું અમે ચલો, એરે વિશે ઘણું જાણો પોઇન્ટર, કે જે બધી સારી સામગ્રી. તે બધા સૉર્ટ બાંધવામાં આવે છે માં, ફંડામેન્ટલ્સ તરીકે જોવા પરંતુ અમે અધિકાર છે, વધારે કરી શકો? અમે વસ્તુઓ ભેગા કરી શકો છો એકસાથે રસપ્રદ રીતે. અને તેથી ચાલો શરૂ કરીએ, ચાલો કે નથી સી અમને આપે શું નવા નવા ઉદ્યોગો માટે, અને આપણા પોતાના માહિતી બનાવવા માટે શરૂ આ ઇમારત ઉપયોગ માળખાં સાથે મળીને બ્લોકો કંઈક કરવા ઉપયોગી, ખરેખર મૂલ્યવાન છે. અમે આ કરી શકો છો એક રીત છે સંગ્રહો વિશે વાત કરવા માટે. જેથી અત્યાર સુધી અમે માહિતી એક પ્રકારની પડ્યું સંગ્રહો રજૂ કરવા માટે માળખું કિંમતો સમાન કિંમતો ગમે છે. કે જે એરે હશે. અમે પૂર્ણાંકો સંગ્રહ હોય છે, અથવા તેથી અક્ષરો અને સંગ્રહ. માળખું પણ એક માહિતી પ્રકારના હોય છે માહિતી એકત્ર કરવા માટે માળખું, પરંતુ તે કિંમતો એકત્ર કરવા માટે નથી. તે સામાન્ય રીતે અલગ ડેટા પ્રકારો સૂર સાથે મળીને એક બોક્સની અંદર. પરંતુ તે પોતે નથી સાથે મળીને સાંકળ માટે વપરાય અથવા એક સાથે સમાન જોડાવા એક એરે જેવી વસ્તુઓ. એરે માટે મહાન છે તત્વ ઉપર દેખાય છે, પરંતુ રિકોલ તે ખૂબ જ મુશ્કેલ છે કે એક એરે માં દાખલ કરવા માટે, અમે દાખલ કરી રહ્યા છો જ્યાં સુધી કે એરે ખૂબ જ અંત થાય છે. અને શ્રેષ્ઠ ઉદાહરણ હું હોય તે માટે નિવેશ જેવું છે. તમે અમારા વિડિઓ યાદ તો નિવેશ સૉર્ટ પર ઘણો ત્યાં હતી ખર્ચ કર્યા સામેલ તત્વો પસંદ કરો, અને તેમને પાળી કંઈક ફિટ રીતે બહાર તમારા એરે મધ્યમાં માં. એરે પણ અન્ય પીડાય સમસ્યા છે, કે જે દૃઢતા છે. અમે એક એરે જાહેર કરે છે ત્યારે, અમે તેને એક શોટ વિચાર. અમે હું માંગો છો, કહે છે વિચાર આ ઘણા તત્વો છે. 100 હોઈ શકે છે, તે કદાચ 1,000 હોઇ શકે છે, તે કદાચ એક્સ વપરાશકર્તા એ સંખ્યા છે કે જ્યાં X હોઈ પ્રોમ્પ્ટ પર અથવા આદેશ પર અમને આપ્યો લાઇન. પરંતુ અમે ફક્ત તે એક શોટ વિચાર, અમે હું ખરેખર, તો પછી ઓહ કહે મળી નથી 101 જરૂરી છે, અથવા હું એક્સ વત્તા 20 જરૂર છે. ખૂબ અંતમાં, અમે પહેલેથી જ જાહેર કર્યું એરે, અને અમે 101 અથવા વિચાર કરવા માંગો છો, તો X વત્તા 20, અમે જાહેર હોય છે એક સંપૂર્ણપણે અલગ એરે, એરે તમામ તત્વો નકલ પર, અને પછી અમે પૂરતી હોય છે. અને અમે ફરી ખોટું હોય તો, શું શું અમે ખરેખર 102, અથવા એક્સ વત્તા 40 જરૂર હોય તો, અમે ફરી આ કરવું પડશે. જેથી તેઓ ખૂબ જ આગ્રહી છો અમારી માહિતી માપ બદલવાની માટે, પરંતુ અમે સાથે કેટલાક ભેગા અમે પહેલેથી જ છે કે બેઝિક્સ પોઇંટરો અને માળખાં વિશે શીખી, ખાસ કરીને ગતિશીલ મેમરીનો ઉપયોગ malloc સાથે ફાળવણી, અમે સાથે મળીને આ ટુકડાઓ મૂકી શકો છો નવી માહિતી માળખું એક બનાવવા માટે એકલા અમે કહેવું શકે છે યાદી કડી કે અમને વધવા માટે પરવાનગી આપે છે અને કિંમતો સંગ્રહ સંકોચો અને અમે કોઈપણ પામે જગ્યા હશે નહીં. તેથી ફરી, અમે આ વિચાર કહી, આ વિચારને, એક કડી થયેલ યાદી. ખાસ કરીને, આ વિડિઓ માં અમે છો એકલા કડી થયેલ યાદી વિશે વાત, અને પછી બીજા વિડિઓ અમે વાત કરીશું વિશે સમયમાં બમણું કડી થયેલ યાદીઓ, જે અહીં એક થીમ પર માત્ર એક તફાવત છે. પરંતુ એકલા કડી થયેલ યાદી ગાંઠો બનેલું છે, ગાંઠો એક અમૂર્ત term-- હોવા તે હું ફોન કરું છું કંઇક છે તે એક પ્રકારની છે માળખું, સામાન્ય રીતે, હું છું? માત્ર તે એક નોડ અને આ કૉલ જાઉં નોડ બે સભ્યો, અથવા બે ક્ષેત્રો છે. તે સામાન્ય રીતે એક માહિતી છે પૂર્ણાંક, એક અક્ષર ફ્લોટ, અથવા અમુક અન્ય માહિતી પ્રકાર હોઈ શકે છે તમે એક પ્રકાર ડેફ સાથે વ્યાખ્યાયિત કર્યું છે. અને તે માટે એક નિર્દેશક છે એક જ પ્રકારના અન્ય નોડ. તેથી અમે અંદર બે વસ્તુઓ હોય છે આ નોડ, માહિતી અને નિર્દેશક અન્ય નોડ માટે. અને તમે વિઝ્યુઅલાઈઝ શરૂ કરો, તો આ તમને તે વિશે વિચાર કરી શકો છો ગાંઠો એક સાંકળ જેમ કે સાથે મળીને જોડાયેલ છે. અમે પ્રથમ નોડ છે, તે માહિતી, અને નિર્દેશક ધરાવે સમાવે છે કે જે બીજા નોડ માટે માહિતી, અને ત્રીજા નોડ માટે નિર્દેશક. અને તેથી તે અમે તે કૉલ શા માટે છે યાદીની લિંક, તેઓ સાથે મળીને કડી રહ્યાં છો. આ ખાસ શું કરે છે નોડ માળખું જેવો હવો? સારું, તમે પર અમારા વિડિઓ થી યાદ તો પ્રકાર ડેફ સાથે, વૈવિધ્યપૂર્ણ પ્રકારો વ્યાખ્યાયિત અમે એક માળખું વ્યાખ્યાયિત કરી શકો છો અને આ જેમ એક માળખું વ્યાખ્યાયિત લખો. સ્ટ્રક્ટ sllist tyepdef, અને પછી હું છું આપખુદ અહીં શબ્દ મૂલ્યનો ઉપયોગ ખરેખર કોઇ માહિતી પ્રકાર સૂચવે છે. તમે પૂર્ણાંક અથવા ફ્લોટ પર પસાર કરી શકે છે તમે ગમે તમે ઇચ્છો કરી શકે છે. તે માત્ર પ્રતિબંધિત નથી પૂર્ણાંકો, અથવા જેમ કંઈપણ. તેથી કિંમત માત્ર એક મનસ્વી છે પછી માહિતી પ્રકાર છે, અને નિર્દેશક એક જ પ્રકારના અન્ય નોડ માટે. હવે, થોડી કેચ છે અહીં એક માળખું વ્યાખ્યાયિત સાથે જ્યારે તે સ્વ સંદર્ભ માળખું છે. હું હંગામી હોય છે મારા માળખું માટે નામ. આ દિવસ હું ઓવરને અંતે સ્પષ્ટ રીતે તે કૉલ કરવા માંગો છો sll નોડ, કે છેવટે નવું મારા પ્રકારની વ્યાખ્યા ભાગ નામ આપો, પરંતુ હું sll નોડ ઉપયોગ કરી શકતા નથી આ મધ્યમાં. તેનું કારણ એ છે, હું નથી એક પ્રકાર કહેવાય sll નોડ બનાવવામાં હું અહીં આ અંતિમ બિંદુ હિટ સુધી. તે બિંદુ સુધી, હું હોય છે બીજી રીતે આ ડેટા પ્રકાર નો સંદર્ભ લો. અને આ એક સ્વ છે સંદર્ભ માહિતી પ્રકાર. તે; એ એક માહિતી પ્રકાર છે માહિતી સમાવે છે કે જે માળખું, અને અન્ય એક નિર્દેશક એક જ પ્રકારના માળખું. જેથી હું સંદર્ભ માટે કરવાનો પ્રયત્ન કરવાની જરૂર આ માહિતી પ્રકારના ઓછામાં ઓછા અસ્થાયી, તેથી તે કામચલાઉ આપ્યા સ્ટ્રક્ટ sllist નામ મને પછી હું માંગો છો કહે છે માટે પરવાનગી આપે છે અન્ય સ્ટ્રક્ટ sllist માટે નિર્દેશક છે, એક સ્ટ્રક્ટ sllist સ્ટાર, અને પછી હું વ્યાખ્યા પૂર્ણ કરી લીધી પછી, હવે હું આ પ્રકારના એક sll નોડ કૉલ કરી શકો છો. તમે જુઓ ત્યાં તેથી કે શા માટે અહીં એક કામચલાઉ નામ, પરંતુ અહીં કાયમી નામ. ક્યારેક તમે જોઈ શકો માળખું વ્યાખ્યાઓ, ઉદાહરણ માટે, કે નથી સ્વ સંદર્ભ, કે અહીં એક specifier નામ નથી. તે માત્ર typedef સ્ટ્રક્ટ કહે છે સર્પાકાર તાણવું ખોલો અને પછી તે વ્યાખ્યાયિત કરે છે. તમે છો તો પણ સ્ટ્રક્ટ સ્વ છે સંદર્ભ છે, આ એક છે, તમે સ્પષ્ટ કરવાની જરૂર છે કામચલાઉ પ્રકાર નામ. પરંતુ આખરે, હવે અમે આ કર્યું છે, અમે હમણાં જ ઉલ્લેખ કરી શકે છે આ ગાંઠો, આ એકમો, હેતુઓ માટે sll ગાંઠો તરીકે આ વિડિઓ બાકીના. બધા હક છે, તેથી અમે કેવી રીતે ખબર એક કડી થયેલ યાદી નોડ બનાવવા. અમે વ્યાખ્યાયિત કરવા માટે કેવી રીતે ખબર એક કડી થયેલ યાદી નોડ. હવે, આપણે શરૂ કરવા માટે જઈ રહ્યાં છો, તો માહિતી એકત્રિત કરવા માટે તેમને ઉપયોગ, કામગીરી એક દંપતિ છે અમે સમજવા અને સાથે કામ કરવા માટે જરૂર છે. અમે બનાવવા માટે કેવી રીતે ખબર જરૂર પાતળી હવા બહાર એક કડી થયેલ યાદી. કોઈ યાદી પહેલાથી જ ત્યાં છે, તો અમે એક શરૂ કરવા માંગો છો. તેથી અમે કરવાનો પ્રયત્ન કરવાની જરૂર એક કડી થયેલ યાદી બનાવવા માટે, અમે કદાચ શોધવા માટે જરૂર છે લિંક યાદી મારફતે અમે શોધી રહ્યાં છો એક તત્વ શોધવા માટે. અમે સામેલ સમક્ષ રજુ કરવાનો પ્રયત્ન કરવાની જરૂર છે યાદી માં નવી વસ્તુઓ, અમે અમારી યાદી વધવા માટે સમર્થ હોઈ કરવા માંગો છો. અને એ જ રીતે, અમે સમક્ષ રજુ કરવાનો પ્રયત્ન કરવા માંગો છો અમારા યાદી વસ્તુઓ કાઢી નાંખવા માટે, અમે અમારી યાદી સંકોચો સમક્ષ રજુ કરવાનો પ્રયત્ન કરવા માંગો છો. અને ઓવરને અંતે અમારી કાર્યક્રમો, ખાસ કરીને જો અમે છો કે, યાદ તો ગતિશીલ મેમરી ફાળવણી ખાસ કરીને આ યાદીઓ બનાવવા માટે, અમે તે મેમરી બધા મુક્ત કરવા માંગો છો અમે તેની સાથે કામ કરી રહ્યાં છો છે. અને તેથી અમે એક કાઢી નાખવા માટે સક્ષમ હોવા જરૂરી છે એક સમગ્ર કડી થયેલ યાદી તરાપ મારો નિષ્ફળ જાય છે. તેથી આપણે મારફતે જાઓ આ કામગીરી કેટલાક અને અમે તેમને આત્મસાત્ કરી શકે છે કેવી રીતે, ખાસ સ્યુડોકોડનો કોડ વાત. તેથી અમે એક બનાવવા માંગો છો યાદી કડી થયેલ છે, જેથી કદાચ અમે એક કાર્ય વ્યાખ્યાયિત કરવા માંગો છો આ પ્રોટોટાઇપ સાથે. sll નોડ સ્ટાર, બનાવો, અને હું પસાર છું એક દલીલ, કેટલાક મનસ્વી માહિતી કેટલાક મનસ્વી માહિતી પ્રકાર, ફરી લખો. પરંતુ હું આ કામ કરીશું returning-- છું એક એકલા, મને એક નિર્દેશક પાછા કડી થયેલ યાદી નોડ. ફરીથી, અમે બનાવવા માટે પ્રયાસ કરી રહ્યાં છો પાતળી હવા બહાર એક કડી થયેલ યાદી તેથી હું એક નિર્દેશક જરૂર જ્યારે હું પૂર્ણ છું કે યાદી. તેથી અહીં સામેલ પગલાંઓ શું છે? ઠીક છે, હું પ્રથમ વસ્તુ છું કરવા જઇ ગતિશીલ છે નવી નોડ માટે જગ્યા ફાળવી. ફરીથી, અમે પાતળા બહાર બનાવી રહ્યા છો હવા, તેથી અમે તે માટે malloc જગ્યા કરવાની જરૂર છે. અને અલબત્ત, તરત જ અમે malloc પછી, અમે હંમેશા ખાતરી કરો કે તેની ખાતરી કરવા તપાસો અમારા નિર્દેશક અમે પાછા નલ મળી ન હતી. અમે પ્રયાસ કારણ કે જો અને એક નલ નિર્દેશક અદબ, અમે સહન કરવા જઈ રહ્યાં છો segfault અને અમે તે કરવા નહિં માંગો. પછી અમે આ ક્ષેત્રમાં ભરો છો, અમે કિંમત ક્ષેત્ર પ્રારંભ કરવા માંગો છો અને આગામી ક્ષેત્ર પ્રારંભ. અને પછી અમે આખરે તરીકે રહ્યો માંગો છો અમે માંગો છો indicates-- કાર્ય પ્રોટોટાઇપ એક sll નોડ માટે નિર્દેશક પાછા. તેથી શું આ દૃષ્ટિની જેવો બનાવવા? વેલ, પ્રથમ અમે ગતિશીલ જઈ રહ્યાં છો નવી sll નોડ માટે જગ્યા ફાળવી શકે છે, તેથી અમે તે છે malloc-- એક દ્રશ્ય રજૂઆત નોડ અમે હમણાં બનાવેલ છે. અને અમે ખાતરી કરવા માટે ચકાસણી તે આ કિસ્સામાં નલ નથી ચિત્ર ન હોત જો તે નલ હતી બતાવ્યા, અમે મેમરી રન આઉટ હોત તેથી અમે ત્યાં જવા માટે સારા છો. તેથી હવે અમે સી પગલાં પર છો, ગાંઠો કિંમત ક્ષેત્ર પ્રારંભ. વેલ, આ કાર્ય પર આધારિત , હું અહીં ઉપયોગ કરું છું કૉલ હું 6 પાસ કરવા માંગો છો, જેમ કે દેખાય છે તેથી હું કિંમત ક્ષેત્રમાં 6 પડશે. હવે, આગામી ક્ષેત્ર પ્રારંભ. ઠીક છે, શું હું ત્યાં કરવા જઇ રહ્યો છું, કંઇ અધિકાર આગામી છે, આ યાદીમાં જ વસ્તુ છે. તેથી યાદીમાં આગામી વસ્તુ શું છે? તે અધિકાર કંઈપણ માટે નિર્દેશ ન જોઈએ. કંઇ તેથી શું છે, બીજું ત્યાં અમે તે ખબર ખ્યાલ કંઇ છે કંઈ પોઇંટરો? તે કદાચ અમે માંગો છો પ્રયત્ન કરીશું ત્યાં એક નલ નિર્દેશક મૂકી, અને હું નલ પ્રતિનિધિત્વ પડશે તરીકે માત્ર એક લાલ બોક્સ નિર્દેશક અમે વધુ કોઇ જઇ શકો છો. અમે પાછળથી થોડો જોશો, અમે આખરે સાંકળો હશે તીર જોડાઈ સાથે મળીને આ ગાંઠો, પરંતુ તમે હિટ જ્યારે લાલ બોક્સ કે, નલ અમે આગળ કોઈ જઈ શકો નહિં કે યાદી ઓવરને છે. અને છેલ્લે, અમે માત્ર કરવા માંગો છો આ નોડ માટે નિર્દેશક આવો. તેથી અમે નવા તે કહી શકશો, અને નવા આપશે તેથી તે વાપરી શકાય છે ગમે કાર્ય બનાવી છે. તેથી ત્યાં અમે જાઓ, અમે એક એકલા બનાવી છે પાતળી હવા બહાર કડી થયેલ યાદી નોડ, અને હવે અમે સાથે કામ કરી શકે યાદી હોય છે. હવે, પહેલેથી જ અમે કહી દો એક મોટી સાંકળ હોય છે, અને અમે તેને કંઈક શોધવા માંગો છો. અને અમે જઈ રહ્યું છે કે કાર્ય કરવા માંગો છો સાચું કે ખોટું પાછા આધાર રાખીને નીચેની યાદી અસ્તિત્વમાં છે કે કેમ તે છે. એક કાર્ય પ્રોટોટાઇપ, અથવા તે કાર્ય માટે ઘોષણા, છે આ શોધવા bool જેવો છે, અને શકે છે પછી અમે બે દલીલો પસાર કરવા માંગો છો. પ્રથમ, એક નિર્દેશક છે યાદીની લિંક પ્રથમ તત્વ. આ તમે પડશે ખરેખર કંઈક છે હંમેશા ટ્રેક રાખવા માંગો છો, અને ખરેખર કંઈક હોઈ શકે છે તમે પણ એક વૈશ્વિક ચલ મૂકો. તમે યાદી બનાવી જાય, હંમેશા તમે, ખૂબ જ ટ્રેક રાખવા માંગો છો યાદીમાં પ્રથમ તત્વ. તમે બીજા બધા ઉલ્લેખ કરી શકે છે આ રીતે માત્ર સાંકળ દ્વારા અનુસરીને તત્વો, પોઇન્ટર રાખવા કર્યા વગર દરેક એક તત્વ અકબંધ. તમે માત્ર પ્રથમ ટ્રેક રાખવા માટે જરૂર છે તેઓ બધા સાથે મળીને સંકળાયેલ હોઈ શકે કરી રહ્યાં છો. અને પછી બીજા વસ્તુ અમે ફરીથી પસાર કરી રહ્યાં છો આપખુદ some-- છે ગમે ડેટા પ્રકાર અમે છો ત્યાં શોધી અંદર છે આસ્થાપૂર્વક યાદીમાં ગાંઠો છે. તેથી પગલાંઓ શું છે? વેલ, અમે શું પ્રથમ વસ્તુ છે અમે એક છેદક રેખા નિર્દેશક બનાવવા યાદીઓ વડા તરફ ઇશારો. વેલ, કે શા માટે, અમે પહેલાથી જ કરવું યાદીઓ વડા પર એક નિર્દેશક હોય છે, શા માટે આપણે માત્ર આસપાસ કે એક ખસેડવા નથી? ઠીક છે, હું માત્ર જણાવ્યું હતું કે, જેમ તે અમારા માટે ખરેખર મહત્વનું છે હંમેશા ટ્રેક રાખવા માટે યાદીમાં ખૂબ જ પ્રથમ તત્વ. અને તેથી તે ખરેખર સારી છે તે એક નકલી બનાવવા માટે, અને તેથી અમે ક્યારેય આસપાસ ખસેડવા માટે કે ઉપયોગ આકસ્મિક દૂર ખસેડવા માટે, અથવા હંમેશા અમે છે કે અમુક બિંદુએ એક નિર્દેશક હોય અધિકાર યાદીમાં પ્રથમ તત્વ છે. તેથી તે બનાવવા માટે સારી છે અમે ખસેડવા માટે ઉપયોગ કરે છે બીજા એક. પછી અમે માત્ર કે શું તુલના કે નોડ કિંમત ક્ષેત્ર તે તો અમે શોધી રહ્યાં છો, અને શું છે નથી, અમે ફક્ત બીજા ગાંઠ પર ખસેડો. અને અમે તે કરવાનું ચાલુ રાખી ઉપર, અને ઉપર, અને ઉપર, અમે ક્યાં શોધવા સુધી તત્વ, અથવા આપણે હિટ null-- અમે ઓવરને પહોંચી ગયા છો અને આ યાદીમાં તે નથી. આ આસ્થાપૂર્વક ઘંટડી જોઈએ તમે માત્ર રેખીય શોધ, અમે હમણાં જ તે પ્રતિકૃતિ રહ્યાં છો એક એકલા કડી થયેલ યાદી માળખું તેના બદલે તે કરવા માટે એક એરે ઉપયોગ. તેથી અહીં એક ઉદાહરણ છે એક એકલા કડી થયેલ યાદી. આ એક સમાવેશ થાય છે પાંચ ગાંઠો, અને અમે છે ના માથા પર એક નિર્દેશક યાદી કહે છે, જે યાદી. અમે કરવા માંગો છો પ્રથમ વસ્તુ છે ફરીથી, કે ટ્રાવર્સલને નિર્દેશક બનાવો. તેથી અમે હવે બે પોઇન્ટર છે આ જ વસ્તુ છે કે બિંદુ. હવે, પણ અહીં નોટિસ હું ન હતી Trav માટે કોઇ જગ્યા malloc છે. હું Trav malloc બરાબર ન કહી હતી કંઈક કે નોડ પહેલેથી જ અસ્તિત્વમાં છે મેમરી કે જગ્યા પહેલેથી હાજર છે. તેથી હું ખરેખર કરી રહ્યો છું બધા છે તે બીજા નિર્દેશક બનાવવા. હું વધારાની mallocing રહ્યો નથી જગ્યા, માત્ર હવે બે પોઇન્ટર છે આ જ વાત તરફ ઇશારો. તેથી 2 હું શોધી રહ્યો છું શું છે? ના, ઠીક છે, તેથી તેના બદલે હું છું આગામી એક ખસેડવા માટે જઈ રહી છે. જેથી મૂળભૂત હું કહે છે Trav આગામી Trav સમકક્ષ હોય છે. હું કોઈ શું શોધી રહ્યો છું 3 છે. તેથી હું જવા માટે ચાલુ દ્વારા આખરે ત્યાં સુધી હું શોધી રહ્યો છું શું છે જે 6 મેળવવા આ વિધેય કોલ પર આધારિત માટે હું ટોચ પર હોય છે ત્યાં, અને તેથી હું કરી રહ્યો છું. હવે, તત્વ હું શું છું તો માટે જોઈ, યાદીમાં ન હોય તે હજુ પણ કામ રહ્યું છે? વેલ, આ યાદી છે કે નોટિસ અહીં, subtly અલગ છે અને આ છે કે અન્ય બાબત એ છે કે કડી થયેલ યાદીઓ સાથે મહત્વપૂર્ણ, તમે સાચવવા માટે નથી તેમને કોઇ ખાસ ક્રમમાં. જો તમે ઇચ્છો તો તમે કરી શકો છો પરંતુ જો તમે પહેલાથી જ સૂચન કર્યું છે અમે ટ્રેક રાખવા નથી કે અમે શું નંબર તત્વ હોય છે. અને તે એક વેપાર જેવું છે કે અમે એરે છંદો કડી થયેલ યાદી સાથે હોય છે, તે અમે નથી છે હવે રેન્ડમ ઍક્સેસ. અમે હમણાં જ હું માંગો છો કહી ન શકે, આ 0th તત્વ પર જવા માટે, કે મારા એરે 6 ઠ્ઠી તત્વ, જે હું ઝાકઝમાળ કરી શકો છો. હું જવા માંગો છો નથી કહી શકો છો 0th તત્વ, અથવા 6 ઠ્ઠી તત્વ, કે મારા યાદીની લિંક 25 તત્વ, તેમની સાથે સંકળાયેલ કોઈ ઈન્ડેક્સ છે. અને તેથી તે ખરેખર તો કોઈ વાંધો નથી અમે ક્રમમાં અમારી યાદી જાળવી રાખવા હોય તો. તમે કરવા માંગો છો, તો ચોક્કસપણે કરી શકો છો, પરંતુ ત્યાં છે તેઓ જરૂર શા માટે કોઈ કારણ કોઈપણ ક્રમમાં સચવાય. તેથી ફરી, ચાલો પ્રયાસ અને આ યાદીમાં 6 શોધો. વેલ, અમે પર શરૂ શરૂઆત, અમે 6 શોધી નથી અને પછી અમે શોધવા નથી ચાલુ 6, અમે આખરે અહીં વિચાર ત્યાં સુધી. નોડ તેથી હમણાં Trav પોઇન્ટ 8 સમાવતી, અને છ ત્યાં નથી. તેથી આગામી પગલું હશે આગામી નિર્દેશક પર જવા માટે, તેથી Trav આગામી Trav બરાબર કહે છે. વેલ, Trav આગળ, દ્વારા સૂચવાયેલ ત્યાં લાલ બોક્સ નલ છે. તેથી ક્યાંય છે તેથી આ બિંદુએ જાય છે, અને અમે પહોંચી ગયા છો કે પૂર્ણ કરી શકો છો યાદીની લિંક ઓવરને અને 6 ત્યાં નથી. અને તે પરત આવશે આ કેસમાં ખોટા. ઠીક છે, અમે કેવી રીતે એક નવી દાખલ કરી શકું કડી થયેલ યાદી માં નોડ? તેથી અમે બનાવવા માટે સક્ષમ કરવામાં આવી છે ક્યાંય બહાર એક કડી થયેલ યાદી પરંતુ અમે કદાચ કરવા માંગો છો એક સાંકળ બિલ્ડ કરવા અને નથી અલગ યાદીઓ એક ટોળું બનાવો. અમે એક યાદી હોય માંગો છો કે તે ગાંઠો એક ટોળું છે એક નોડ સાથે યાદીઓ નથી એક ટોળું. તેથી અમે ફક્ત બનાવો નો ઉપયોગ ચાલુ રાખી શકતા નથી કાર્ય આપણે હવે અગાઉ નિર્ધારિત અમે એક દાખલ કરવા માંગો છો પહેલેથી જ અસ્તિત્વમાં છે કે યાદી. આ કિસ્સામાં તેથી, અમે જઈ રહ્યાં છો બે દલીલો પસાર કરવા માટે, કે વડા નિર્દેશક અમે ઍડ કરવા માંગો છો યાદી કડી થયેલ છે. તેથી તે છે શા માટે તે ફરીથી છે, કે મહત્વપૂર્ણ હંમેશા અમે કે કારણ કે, તે ટ્રેક રાખવા તે ખરેખર માત્ર એક જ રસ્તો અમે છે સમગ્ર યાદી છે નો સંદર્ભ લો છે માત્ર પ્રથમ તત્વ માટે નિર્દેશક છે. તેથી અમે એક પાસ કરવા માંગો છો કે પ્રથમ તત્વ માટે નિર્દેશક, અને ગમે કિંમત અમે યાદીમાં ઉમેરવા માંગો છો. અને આખરે આ કાર્ય એક નિર્દેશક પાછા જઈ રહ્યું છે એક કડી થયેલ યાદી નવા વડા છે. અહીં સામેલ પગલાંઓ શું છે? વેલ, માત્ર બનાવવા સાથે જેમ, અમે ગતિશીલ ફાળવણી કરવાની જરૂર નવી નોડ માટે જગ્યા છે, અને ખાતરી કરવા તપાસો ખાતરી કરો કે અમે મેમરી રન આઉટ નથી, ફરી, અમે malloc ઉપયોગ કરી રહ્યાં છો કારણ કે. પછી અમે રચના કરવા માંગો છો અને નોડ દાખલ જેથી નંબર મૂકી, ગમે વૅલ નોડ માં છે. અમે ઓછામાં નોડ સામેલ કરવા માંગો છો આ કડી થયેલ યાદી શરૂઆત. એક કારણ છે કે હું આ કરવા માંગો છો, અને તે બીજા લેતી વર્થ હોઈ શકે અહીં વિડિઓ વિરામ, અને હું કરવા માંગો છો શા માટે વિશે વિચારો એક કડી થયેલ શરૂઆત પર દાખલ યાદી. ફરીથી, હું અગાઉ ઉલ્લેખ કર્યો છે તે ખરેખર નથી કે અમે કોઇ પણ જાળવી તો વાંધો ક્રમમાં, તેથી કદાચ કે ચાવી છે. અને જો અમે તો શું થશે જોયું માગે રહ્યો અથવા માત્ર એક બીજા થી પહેલાં જ્યારે અમે જતા હતા શોધ મારફતે શું શકે જોઈ શકે અમે પ્રયાસ કરી રહ્યા હતા, તો થાય આ યાદી ઓવરને અંતે દાખલ કરવા માટે. અમે નથી, કારણ કે આ યાદી ઓવરને પોઇન્ટર. તેથી કારણ હું માંગો છો કે શરૂઆતમાં દાખલ કરવા માટે, હું તરત જ તે કરી શકો છો, કારણ કે છે. હું શરૂઆતમાં એક નિર્દેશક હોય છે, અને અમે એક બીજા એક દ્રશ્ય માં આ જોશો. પરંતુ હું ઓવરને અંતે દાખલ કરવા માંગો છો, તો હું શરૂઆતમાં શરૂ હોય છે આ બધી રીતે પસાર અંત, અને પછી તે પર ખીલી. જેથી તેનો અર્થ એ થાય આ યાદી ઓવરને અંતે દાખલ n ના ઓ બનશે કામગીરી, પાછા જવાનું અમારી ચર્ચા ગણતરીની જટિલતા. તે n કામગીરી, જ્યાં એક ઓ બની છો આ યાદી મોટી છે, અને મોટા થઈ જાય છે, કારણ કે અને મોટી છે, તે વધુ બની શકશો અને કંઈક કાર્યનીતિ માટે વધુ મુશ્કેલ ઓવરને અંતે છે. પરંતુ તે હંમેશા માટે ખરેખર સરળ છે શરૂઆતમાં પર કંઈક ખીલી, તમે શરૂઆતમાં હંમેશા છો. અને અમે ફરી આ દ્રશ્ય જોવા મળશે. અને પછી અમે એક વાર, પૂર્ણ કરી લો અમે નવા નોડ દાખલ કર્યો છે, અમે અમારા નિર્દેશક પરત કરવા માંગો છો એક કડી થયેલ યાદી નવા વડા છે, કે જે અમે અંતે દાખલ કરી રહ્યા છો, કારણ કે શરૂઆત ખરેખર હશે અમે હમણાં જ બનાવેલ નોડ માટે નિર્દેશક. , આ આત્મસાત્ કરીએ કારણ કે હું તે મદદ મળશે છે. તેથી અહીં અમારા યાદી છે, તે સમાવે છે ચાર તત્વો, નોડ, 15 સમાવતી જે નોડ માટે નિર્દેશ 9 સમાવતી જે 13 સમાવતી નોડ માટે નિર્દેશ, જે સમાવતી નોડ માટે નિર્દેશ નલ ધરાવે છે, જે 10, તેની આગામી નિર્દેશક તરીકે નિર્દેશક કે જેથી યાદી ઓવરને છે. તેથી અમે એક દાખલ કરવા માંગો છો કિંમત 12 નવા નોડ આ શરૂઆતમાં યાદી, અમે શું કરવું? વેલ, પ્રથમ અમે માટે જગ્યા malloc નોડ, અને પછી અમે ત્યાં 12 મૂકો. તેથી હવે અમે પહોંચી ગયા છો એક નિર્ણય બિંદુ, અધિકાર? અમે એક દંપતિ છે પોઇન્ટર છે કે અમે કરી શકે છે અમે પ્રથમ એક કે જે ખસેડવા જોઇએ, ખસેડવા? અમે 12 બિંદુ બનાવવા જોઈએ આ યાદી નવા વડા અથવા મને માફ, અમે 12 કરવી જોઈએ યાદીમાં જૂના વડા નિર્દેશિત કરવા માટે? અથવા આપણે કહેવું જોઈએ કે યાદી હવે 12 શરૂ થાય છે. ભેદ છે ત્યાં છે, અને અમે જોવા મળશે સાથે બંને એક બીજા શું થાય છે. પરંતુ આ એક તરફ દોરી જાય છે સાઇડબાર માટે મહાન વિષય, જે કે એક છે કડી થયેલ યાદીઓ સાથે trickiest વસ્તુઓ પોઇંટરો વ્યવસ્થા છે યોગ્ય ક્રમમાં. તમે ઓર્ડર બહાર વસ્તુઓ ખસેડવા તો, જો તમે આકસ્મિક અંત કરી શકે છે આ યાદી બાકીના orphaning. અને અહીં એક ઉદાહરણ છે. તેથી આ વિચાર સાથે જવા દો of-- ઠીક છે, આપણે 12 બનાવી છે. અમે 12 હોઈ ચાલે છે ખબર યાદીમાં નવા વડા, અને તેથી શા માટે આપણે માત્ર ખસેડવા નથી આ યાદી નિર્દેશક ત્યાં નિર્દેશ કરે છે. ઠીક છે, તેથી તે સારી છે. તેથી હવે જ્યાં 12 આગામી બિંદુ કરે છે? હું દૃષ્ટિની અમે જોઈ શકો છો, તેનો અર્થ એ તે 15 માટે નિર્દેશ કરશે કે, મનુષ્યો, કે અમને ખરેખર સ્પષ્ટ છે. કેવી રીતે કમ્પ્યૂટર ખબર નથી? અમે કંઈ નથી હવે 15 પોઇન્ટ, અધિકાર? અમે 15 નો સંદર્ભ લો કોઇ ક્ષમતા ગુમાવી છે. અમે નવી તીર આગામી સમકક્ષ કહી શકો છો કંઈક ત્યાં કશું જ નથી. હકીકતમાં, અમે અનાથ કર્યું આ યાદી બાકીના આમ કરવાથી, અમે કર્યું આકસ્મિક સાંકળ તૂટી. અને અમે ચોક્કસપણે તે કરવા માંગો છો નથી. તેથી આપણે પાછા જાઓ અને આ ફરીથી પ્રયાસ કરો. કદાચ યોગ્ય વસ્તુ કરવા માટે 12 આગામી નિર્દેશક સુયોજિત કરવા માટે છે પ્રથમ યાદીમાં જૂના વડા માટે, પછી અમે યાદી પર ખસેડી શકો છો. અને હકીકતમાં, કે છે યોગ્ય ક્રમમાં અમે તે અમે હોય ત્યારે અનુસરવાની જરૂર એકલા કડી થયેલ યાદી સાથે કામ કરે છે. અમે હંમેશા કનેક્ટ કરવા માંગો છો યાદી માં નવી તત્વ, અમે તે પ્રકારના લેવા પહેલાં બદલવા મહત્વપૂર્ણ પગલું જ્યાં કડી થયેલ યાદી વડા છે. ફરીથી, જેમ કે મૂળભૂત વાત છે, અમે તેને ટ્રેક ગુમાવી કરવા માંગો છો નથી. તેથી અમે તે ખાતરી કરવા માંગો છો બધું મળીને સંકળાયેલ હોઈ શકે છે અમે કે નિર્દેશક ખસેડવા તે પહેલાં. અને તેથી આ યોગ્ય ક્રમમાં હશે, જે યાદી 12 જોડાવા માટે છે, પછી યાદી 12 શરૂ થાય છે કે જે કહે છે. અમે યાદી 12 પર શરૂ થાય છે જણાવ્યું હતું કે અને પછી, આ યાદીમાં 12 કનેક્ટ કરવાનો પ્રયાસ કર્યો અમે પહેલાથી જ શું થાય છે જોઇ છે. અમે ભૂલથી યાદી ગુમાવી બેસે છે. ઠીક છે, તેથી વધુ એક વસ્તુ વિશે વાત કરવા માટે. અમે શું છુટકારો મેળવવા માંગો છો, તો સમગ્ર સમયે યાદી કડી? ફરીથી, અમે mallocing કરી રહ્યાં છો આ બધા જગ્યા, અને તેથી અમે અમે પૂર્ણ કરી લીધું ત્યારે તેને મુક્ત કરવાની જરૂર છે. તેથી હવે અમે કાઢી નાખવા માંગો છો સમગ્ર કડી થયેલ યાદી. વેલ, અમે શું કરવા માંગો છો? અમે નલ નિર્દેશક પહોંચી ગયા છો, તો અમે નહિંતર, માત્ર કાઢી, બંધ કરવા માંગો છો પછી યાદી બાકીના અને મને મુક્ત. આ યાદી બાકીના કાઢી નાખો, અને પછી વર્તમાન નોડ મુક્ત. જેમ કે સાઉન્ડ શું કરે છે, શું ટેકનિક અમે વાત કરી છે વિશે અગાઉ જેમ કે સાઉન્ડ કરે છે? પછી, બીજા બધાને કાઢી નાખો પાછા આવો અને મને કાઢી. કે પુનરાવર્તનના છે, અમે કરેલા થોડી નાની સમસ્યા, અમે બધાને કાઢી કહી રહ્યાં છે બીજું, પછી તમે મને કાઢી શકો છો. અને વધુ રોડ નીચે, કે નોડ બીજા બધાને કાઢી, કહે છે કરશે. પરંતુ છેવટે અમે મળશે આ યાદી નલ જ્યાં બિંદુ, અને તે અમારા આધાર કેસ છે. તેથી આપણે આ પર એક નજર કરીએ, અને આ કામ કરી શકે છે કેવી રીતે. તેથી અહીં અમારા યાદી છે, તે જ છે , અમે ફક્ત વિશે વાત કરવામાં આવી હતી યાદી અને પગલાંઓ છે. લખાણ ઘણો, અહીં છે, પરંતુ આસ્થાપૂર્વક દ્રશ્ય માટે મદદ કરશે. તેથી અમે અહી અને હું પણ ખેંચાય અમારા સ્ટેક ફ્રેમ ઉદાહરણ ઉપર કોલ રન ટાઇમ સ્ટેકનું પર અમારા વિડિઓ પ્રતિ, અને આસ્થાપૂર્વક આ તમામ સાથે મળીને શું થઈ રહ્યું છે તમને બતાવશે. તેથી અહીં અમારા સ્યુડોકોડનો કોડ છે. અમે નલ સુધી પહોંચવા તો નિર્દેશક, અન્યથા બંધ આ યાદી બાકીના કાઢી શકો છો, પછી વર્તમાન નોડ મુક્ત. તેથી હમણાં, યાદી અમે છો કે નિર્દેશક પસાર 12 પોઇન્ટ નાશ. 12 નલ નિર્દેશક નથી, તેથી અમે છો આ યાદી બાકીના કાઢી નાખવા જઈ રહી છે. શું કાઢવા છે અમને બાકીના સામેલ? વેલ, તે બનાવવા થાય છે કહીને, નાશ કરવા માટે કૉલ 15 કે શરૂઆત છે અમે નાશ કરવા માંગો છો યાદીમાં બાકીના. અને તેથી કોલ નાશ 12 હોલ્ડ પર પ્રકારની છે. તે માટે રાહ જોઈ, ત્યાં સ્થિર છે તેના કામ સમાપ્ત કરવા માટે, 15 નાશ કરવા માટે કૉલ કરો. વેલ, 15 નલ નિર્દેશક નથી, અને તેથી તે કહી રહ્યું છે, બધા અધિકાર, વેલ, આ યાદી બાકીના કાઢી. આ યાદી બાકીના શરૂ થાય છે 9, અને તેથી અમે ફક્ત પડશે તમે બધા કાઢી ત્યાં સુધી રાહ જુઓ કે સામગ્રી, પછી પાછા આવો અને મને કાઢી. વેલ 9 વેલ, કહી રહ્યું છે, હું એક નલ નિર્દેશક નથી તેથી અહીં બાકીના યાદી કાઢી. અને તેથી પ્રયાસ અને 13 નાશ. 13, હું નલ નિર્દેશક નથી, કહે છે એક જ વસ્તુ છે, તે નર હરણ પસાર કરે છે. 10, 10 નલ નિર્દેશક નથી એક નલ નિર્દેશક છે, પરંતુ 10 પોતે એક છે નલ હમણાં નિર્દેશક, અને તેથી તે ખૂબ હરણ પસાર કરે છે. અને હવે, ત્યાં તે પોઇન્ટ યાદી ખરેખર some-- નિર્દેશ કરશે હું છબી વધુ જગ્યા હોય તો, તે કેટલાક રેન્ડમ જગ્યા માટે નિર્દેશ કરશે અમે તે શું છે ખબર નથી. તે છતાં નલ નિર્દેશક છે, યાદી શાબ્દિક હવે તે નલ કિંમતો છે સુયોજિત થયેલ છે. તે અધિકાર કે લાલ બોક્સ અંદર પોઇન્ટ છે. અમે, તેથી નલ નિર્દેશક પહોંચી અમે બંધ કરી શકો છો, અને અમે પૂર્ણ કરી રહ્યાં છો. અને જેથી જાંબલી ફ્રેમ પર now-- છે સક્રિય ફ્રેમ કે stack-- ટોચ પરંતુ તે થાય છે. અમે એક નલ નિર્દેશક પહોંચી ગયા છો, તો અટકાવો. અમે કાંઇ નથી અમે એક નલ નિર્દેશક મુક્ત કરી શકો છો, અમે કોઈ malloc ન હતી જગ્યા, અને તેથી અમે પૂર્ણ કરી રહ્યાં છો. તે કાર્ય ફ્રેમ તેથી નાશ છે, અને અમે છે અમે બાકી છે resume-- અમે બનાવ્યો આગામી સૌથી વધુ એક સાથે બંધ જે અહીં આ ઘેરો વાદળી ફ્રેમ હોય છે. તેથી અમે અમે બોલ છોડી જ્યાં અધિકાર બનાવ્યો. અમે બાકીના કાઢી યાદી પહેલેથી, તેથી હવે અમે છો વર્તમાન ગાંઠો મુક્ત બનશે. તેથી હવે અમે હવે આ નોડ મુક્ત શકો છો, અને અમે કાર્ય અંત સુધી પહોંચી ગયા છો. અને તેથી તે કાર્ય ફ્રેમ, નાશ પામે છે અને અમે પ્રકાશ વાદળી એક બનાવ્યો. તેથી તે મને પહેલેથી જ done-- કર્યું says-- આ યાદીમાં બાકીના કાઢી નાંખવા જેથી વર્તમાન નોડ મુક્ત. અને હવે યલો ફ્રેમ છે પાછા સ્ટેક ટોચ પર. તમે જુઓ અને તેથી, અમે હવે છો જમણેથી યાદી નાશ બાકી છે. શું છે, જોકે, થયું હશે અમે વસ્તુઓ ખોટી રીતે કર્યું હતું તો શું? જસ્ટ અમે પ્રયત્ન કર્યો ત્યારે જેવી એક તત્વ ઉમેરો. અમે તો સાંકળ, મિશ્રિત થયેલા હોય તો અમે પોઇંટરો કનેક્ટ ન હતી યોગ્ય ક્રમમાં, અમે તો માત્ર પ્રથમ તત્વ મુક્ત, અમે હમણાં જ મુક્ત તો યાદીમાં વડા હવે અમે નો સંદર્ભ લો કરવા માટે કોઈ રીત હોય છે આ યાદી બાકીના. અને તેથી અમે હશે અનાથ બધું અમે શું હતા મેમરી છિદ્ર કહેવાય છે. તમે અમારા વિડિઓ થી યાદ તો ગતિશીલ મેમરી ફાળવણી પર તે ખૂબ જ સારી બાબત નથી. તેથી હું ત્યાં જણાવ્યું હતું કે, અનેક કામગીરી છે અમે કામ કરવા માટે વાપરવા માટે જરૂર છે કે જે સાથે અસરકારક રીતે યાદી કડી થયેલ છે. અને તમે, હું એક અવગણવામાં સૂચન કર્યું છે એક કડી થયેલ એક એક તત્વ કાઢી નાંખવા યાદી. હું તે કર્યું કારણ તે ખરેખર પ્રકારની છે છે કાઢી કેવી રીતે વિશે વિચારો મુશ્કેલ એક એકલા એક એક તત્વ કડી થયેલ યાદી. અમે ઉપર છોડી દો સમક્ષ રજુ કરવાનો પ્રયત્ન કરવાની જરૂર છે આ યાદીમાં કંઈક કે જે અમે એક બિંદુ અમે વિચાર અર્થ એ થાય આ નોડ કાઢી નાખવા માંગો છો પરંતુ ક્રમમાં અમે તેને જેથી બનાવવા માટે કોઇ માહિતી ગુમાવી નથી, અમે આ જોડાણ કરવાની જરૂર અહીં પર નોડ. તેથી હું કદાચ કે ખોટું કર્યું એક દ્રશ્ય દ્રષ્ટિકોણથી. તેથી અમે શરૂઆતમાં રહ્યાં છો અમારા યાદી, અમે મારફતે પ્રક્રિયા કરી રહ્યાં છો અમે આ નોડ કાઢી નાખવા માંગો છો. , અમે ફક્ત તેને કાઢી તો અમે સાંકળ તૂટી છે. અહીં આ નોડ બાકીનું બધું સંદર્ભ લે છે, તે અહીં બહાર પર સાંકળ છે. તેથી અમે ખરેખર શું કરવાની જરૂર છે અમે આ બિંદુ મેળવવા પછી, અમે એક પાછા પગલું કરવાની જરૂર છે, અને આ નોડ માટે આ નોડ પર જોડાવા માટે, તેથી અમે તે પછી કાઢી શકો છો મધ્યમાં એક છે. પરંતુ એકલા કડી થયેલ યાદીઓ નથી અમને પાછળની જવા માટે માર્ગ પૂરો પાડે છે. તેથી અમે ક્યાં રાખવા જરૂર બે પોઇન્ટર, અને તેમને ખસેડવા બંધ પગલું જેવું, આ પાછળ એક અન્ય અમે જાઓ, અથવા એક બિંદુ વિચાર અને પછી મારફતે અન્ય નિર્દેશક મોકલો. અને તમે તે જોઈ શકો છો થોડી અવ્યવસ્થિત વિચાર કરી શકો છો. સદનસીબે, અમે છે બીજી રીતે કે ઉકેલવા માટે, ત્યારે અમે સમયમાં બમણું કડી થયેલ યાદીઓ વિશે વાત કરો. હું ડો લોયડ છું, આ CS50 છે.