[Powered by Google Translate] [6 અઠવાડિયું ચાલુ રાખ્યું,]
[ડેવિડ જે Malan] [હાર્વર્ડ યુનિવર્સિટી]
[આ CS50 છે.] [CS50.TV]
આ CS50 છે અને આ 6 અઠવાડિયાના અંત છે.
તેથી CS50x એક હાર્વર્ડ પ્રથમ edX પહેલ સામેલ અભ્યાસક્રમો
ખરેખર આ ભૂતકાળમાં સોમવાર હતું.
જો તમે ઇન્ટરનેટ પર શું અન્ય એક ઝલક મેળવવા ઈચ્છો છો
હવે સાથે પગલે, તમે x.cs50.net માટે વડા કરી શકે છે.
કે તમે edx.org પર યોગ્ય જગ્યાએ પુનઃદિશામાન થશે,
જે જ્યાં આ અને એમઆઇટી અને ફ્રોમ બર્કલી અન્ય અભ્યાસક્રમો હવે રહે છે.
તમે એક એકાઉન્ટ માટે સાઇન અપ પડશે; તમને કે માલ મોટાભાગે સમાન
જેમ તમે આ સત્ર પડ્યું, થોડા વિલંબ અઠવાડિયા જોકે, આપણે બધું તૈયાર મળે છે.
પરંતુ CS50x વિદ્યાર્થીઓ હવે જોવા મળશે શું આ એક જેવું એક ઈન્ટરફેસ છે.
આ ઉદાહરણ તરીકે, સમસ્યા 0 સમૂહ માટે walkthrough અગ્રણી Zamyla છે.
Edx.org માં પ્રવેશ કરવા પર, એક CS50x વિદ્યાર્થી વસ્તુઓના પ્રકારની જુએ છે
તમે કોર્સમાં જુઓ અપેક્ષા કરશે: સોમવાર માટે વ્યાખ્યાન,
બુધવાર, વિવિધ શોર્ટ્સ, સમસ્યા સમૂહો છે, વૉકથ્રૂઝ, પીડીએફ માટે વ્યાખ્યાન.
વધુમાં, તમે અહીં જુઓ, મશીન અનુવાદ
ચિની, જાપાની, સ્પેનિશ, ઇટાલિયન માં ઇંગલિશ લખાણ હોય,
અને અન્ય ભાષાઓ સંપૂર્ણ સમૂહ છે કે જે ચોક્કસપણે અપૂર્ણ હશે
અમે તેમને રોલ આઉટ પ્રોગ્રામ એક API કહેવાય કંઈક વાપરી રહ્યા હોય,
Google માંથી અથવા એપ્લિકેશન પ્રોગ્રામિંગ ઇન્ટરફેસ,
કે અમને આ અન્ય ભાષાઓ માટે ઇંગલિશ કન્વર્ટ કરવા માટે પરવાનગી આપે છે.
પરંતુ કેટલાક સો વત્તા સ્વયંસેવકો ની અદભૂત ભાવના માટે આભાર,
ઇન્ટરનેટ પર રેન્ડમ લોકો માયાળુ માટે સામેલ ઓફર કરી છે
આ પ્રોજેક્ટ માં, અમે ક્રમશઃ તે અનુવાદો ની ગુણવત્તા સુધારવા આવશે
કર્યા માનવ ભૂલો કે જે અમારા કમ્પ્યુટર્સ આવેલ છે સુધારવા દ્વારા.
>> તેથી તે વળે બહાર અમે થોડા વધુ વિદ્યાર્થીઓ સોમવારે હતો બતાવવા કરતાં અમે શરૂઆતમાં તેવી શક્યતા હતી.
હકીકતમાં, હવે CS50x 100,000 ઘરમાં સાથે નીચેના લોકો છે.
જેથી ખ્યાલ તમે તમામ ભાગ કોમ્પ્યુટર વિજ્ઞાન આ કોર્સ બનાવવા આ ઉદ્ઘાટન વર્ગ છે
વધુ સામાન્ય શિક્ષણ, વધુ વિસ્તૃત રીતે, સુલભ.
અને વાસ્તવિકતા હવે આ વ્યાપક ઑનલાઇન અભ્યાસક્રમો કેટલાક છે,
તેઓ આ તમામ ખૂબ જ ઊંચી સંખ્યાના સાથે શરૂ કરવા માટે, કારણ કે અમે અહીં થાય છે એવું લાગે છે.
પરંતુ ધ્યેય છે, છેવટે, CS50x માટે ખરેખર શક્ય તરીકે સમાપ્તિ રેખા પૂર્ણ કરવા માટે ઘણા લોકો છે.
ડિઝાઇન દ્વારા, CS50x આ ભૂતકાળમાં સોમવારથી ઓફર કરી રહ્યું છે
એપ્રિલ 15, 2013 દ્વારા તમામ માર્ગ છે, કે જેથી લોકો છે જેઓ શાળા ખાતરીઓ અન્યત્ર હોય છે,
કામ, કુટુંબ, અન્ય તકરાર અને જેમ, થોડી વધુ ફ્લેક્સિબિલિટી હોય છે
જેની સાથે આ અભ્યાસક્રમ માં ડાઇવ છે, કે જે, તે કહેવા માટે પૂરતો,
છે તદ્દન પોતાની મહત્વકાંક્ષી થાય તો જ માત્ર એક સામાન્ય સત્ર દરમિયાન ત્રણ મહિના દરમિયાન.
પરંતુ આ વિદ્યાર્થીઓ તે જ સમસ્યા સેટ ઉકેલ લાવવામાં આવશે, સમાન સામગ્રી જોઈ,
એ જ શોર્ટ્સ અને તેના જેવા વપરાશ હોય છે.
જેથી ખ્યાલ છે કે અમે આ સાથે મળીને બધી ખરેખર છે.
અને એક CS50x ઓવરને ગોલ જેમ ઘણા લોકો વિચાર નથી
સમાપ્તિ રેખા પૂર્ણ કરવા માટે અને તેમને કોમ્પ્યુટર વિજ્ઞાન આ મળેલી નવી સમજ આપી
અને પણ પ્રોગ્રામિંગ માટે તેમને આ શેર અનુભવ ધરાવે છે.
એક કેમ્પસ પર વ્યાખ્યાયિત 50 ના લક્ષણો, અમે આશા રાખીએ,
છે કોમી અનુભવ આ પ્રકારની છે, અને વધુ સારા માટે અથવા ખરાબ માટે ક્યારેક,
પરંતુ આ લોકો માટે ડાબી અને જમણી ચાલુ કરવા માટે હોય,
અને ઓફિસ કલાકો અને hackathon અને વાજબી.
તે થોડો કઠિન છે ઓનલાઈન લોકો સાથે વ્યક્તિ કે કરવા માટે,
પરંતુ CS50x એપ્રિલ સૌપ્રથમ CS50 એક્સ્પો સાથે તારણ થશે,
જે વાજબી અમારી વિચાર એક ઑનલાઇન અનુકૂલન હશે
વિદ્યાર્થીઓ આ હજારો બધા જ્યાં માટે 1 એક સબમિટ કરવા આમંત્રિત કર્યા આવશે - 2-મિનિટની વિડિઓ માટે,
અથવા તેમના અંતિમ અથવા તેમને પ્રોજેક્ટ વિડિઓ સ્ક્રીનકાસ્ટ હેલ્લો waving
અને તેમના પ્રોજેક્ટ અંગે વાત છે અને તેને demoing,
તમારા પૂરોગામી જેમ જ અહીં કેમ્પસ પર વાજબી થાય છે,
જેથી સત્ર અંત સુધીમાં, આશા માટે એક વૈશ્વિક પ્રદર્શન હોય છે
આ CS50x 'વિદ્યાર્થીઓ અંતિમ પ્રોજેક્ટ, કે જેવી જ છે જે તમે કેમ્પસ પર અહીં આ ડિસેમ્બર રાહ.
તેથી આવવા મહિનામાં પર વધુ.
>> 1,00,000 વિદ્યાર્થીઓ, જોકે, થોડા વધુ સીએએસ માટે જરૂરિયાત છે.
આપેલ છે કે તમે ગાય્ઝ ટ્રેઇલના ઝળહળતું છે અહીં અને CS50 લેતી
કેટલાંક અઠવાડિયા આ સામગ્રી edX પર જાણતા રિલીઝ અગાઉથી,
સમજો અમે આ પહેલ માં શક્ય તેટલી આપણા પોતાના વિદ્યાર્થીઓને અનેક સમાવેશ ખુશી થશે,
બંને તેમજ આ શિયાળામાં સત્ર દરમિયાન અને આ આવતા વસંત.
તેથી જો તમે CS50x માં સામેલ કરવા માંગો છો,
ખાસ કરીને CS50x ચર્ચા CS50 ચર્ચા ના edX આવૃત્તિ પર જોડાયા,
જે તમને ઘણા કેમ્પસ પર ઉપયોગ કરીને, ઓનલાઈન બુલેટિન બોર્ડ,
URL ને વડા કરવા કૃપા કરીને, અમને ખબર તમે કોણ છો,
કારણ કે અમે સુધી વિદ્યાર્થીઓ અને સ્ટાફ એક ટીમ અને ફેકલ્ટી જેવું બિલ્ડ છો
કેમ્પસ પર જે ફક્ત સાથે રમી રહ્યા છે અને બહાર મદદ કરે છે.
અને જ્યારે તેઓ એક પ્રશ્ન છે કે તેમને પરિચિત છે જુઓ,
તમે અમુક ભૂલ ક્યાંક બહાર ત્યાં ઇન્ટરનેટ પર કેટલાક દેશમાં જાણ વિદ્યાર્થી સાંભળવા,
અને એક ઘંટડી રિંગ્સ કારણ કે તમે પણ એ જ સમસ્યા હતી
તમારા-d હોલમાં પહેલા થોડો સમય, આસ્થાપૂર્વક પછી તમે સાંભળો અને તમારા પોતાના અનુભવ શેર કરી શકો છો.
તેથી કૃપા કરીને લઇ જો તમે ઈચ્છો છો નથી.
>> કમ્પ્યુટર હાર્વર્ડ ખાતે વિજ્ઞાન અભ્યાસક્રમો એક પરંપરા એક બીટ છે,
તેમની વચ્ચે કેટલાક એપરલ, કેટલાક કપડાં છે, કે જે તમે ગર્વથી વસ્ત્રો કરી શકો છો હોવાની CS50,
માતાનો સત્ર ઓવરને અંતે, તદ્દન ગર્વથી કહે છે કે તમે CS50 સમાપ્ત
અને CS50 અને તેના જેવા લીધો હતો, અને અમે હંમેશા વિદ્યાર્થીઓ સમાવેશ કરવાનો પ્રયાસ કરો
આ એટલું શક્ય છે, જેમાં અમે આમંત્રણ પ્રક્રિયામાં,
આ સત્ર આ સમય આસપાસ, વિદ્યાર્થીઓ ડિઝાઇન સબમિટ કરવા માટે
ફોટોશોપ મદદથી, અથવા પસંદગીના સાધન ગમે તમે ઉપયોગ કરવા માગો છો
જો તમે એક ડિઝાઇનર કરશો, માટે ટી શર્ટ અને sweatshirts માટે ડિઝાઇન submit
અને કૂતરા માટે અને છત્રી થોડું bandanas અમે હવે અને ગમે છે.
અને બધું પછી છે - દરેક વર્ષ વિજેતાઓ પછી પ્રદર્શિત થાય છે
store.cs50.net ખાતે અભ્યાસક્રમ વેબસાઇટ પર.
બધું ત્યાં ખર્ચે વેચવામાં આવે છે, પરંતુ વેબસાઇટ માત્ર પોતે ચલાવે છે
અને લોકો રંગો અને ડિઝાઇન કે તેઓ ગમે પસંદ કરવા માટે પરવાનગી આપે છે.
તેથી મને લાગ્યું કે અમે હમણાં જ ગયા વર્ષના ડિઝાઇન કેટલાક શેર છો
કે આ અહીં એક ઉપરાંત વેબસાઇટ પર હતી, જે વાર્ષિક પરંપરા છે.
એક સબમિશન્સ "એવરી ડે હું Faultn Seg છું" છેલ્લા વર્ષ હતું,
જે હજુ પણ સ્નાતકો માટે ત્યાં ઉપલબ્ધ છે.
, અમે આ એક હતી "CS50, 1989 સ્થાપના."
અમારા Bowdens એક, રોબ, ખૂબ લોકપ્રિય છેલ્લા વર્ષ હતું.
"ટીમ બોડેન" જન્મ થયો, આ ડિઝાઇન, ટોચની વેચાણકર્તાઓ વચ્ચે કરવામાં આવી હતી.
જેમ આ અહીં એક હતી. ઘણા લોકો વેચાણ લોગ અનુસાર "બોડેન ફીવર" હતા.
સમજો કે જે હવે તમારા ડિઝાઈન ત્યાં હોઈ શકે, ઇન્ટરનેટ પર.
આગામી સમસ્યા વધુ આ પર વિગતો આવવા સુયોજિત કરે છે.
>> વધુ એક સાધન: તમે કેટલાક સંપર્કમાં હતી અને હવે આસ્થાપૂર્વક
GDB સાથે કેટલાક અનુભવ હાથ પર,
જે કોર્સ છે, એક ડીબગર અને તમે ચાલાકી માટે પરવાનગી આપે છે
એકદમ નીચા સ્તરે તમારા કાર્યક્રમ કરવું, પ્રકારના શું વસ્તુઓ?
GDB શું તમને છે?
યાહ? મને કંઈક આપો. [વિદ્યાર્થી જવાબ, દુર્બોધ]
ગુડ. કાર્ય માં પગલું છે, જેથી તમે માત્ર સ્કોર લખો ન હોય
અને તેની સમગ્રતામાં દ્વારા કાર્યક્રમ ફટકો છે, છાપવા પ્રમાણભૂત આઉટપુટ વસ્તુઓ.
તેના બદલે, તો તમે તેને વાક્ય મારફતે વાક્ય દ્વારા પગલું, ક્યાં આગામી લખીને કરી શકો છો
માટે લીટી અથવા કાર્ય માં ડાઇવ, ખાસ કરીને એક કે તમે લખ્યું પગલું દ્વારા વાક્ય દ્વારા વાક્ય જાઓ.
બીજું શું GDB તમને છે? યાહ? [વિદ્યાર્થી જવાબ, દુર્બોધ]
ચલો છાપો. તેથી જો તમે તમારી કાર્યક્રમ ની અંદર થોડો આત્મનિરીક્ષણ કરવા માંગો છો
આ સ્થળ પર તમામ printf નિવેદનો લખવા માટે આશરો કર્યા વગર,
તમે માત્ર એક ચલ છાપી શકો છો અથવા એક ચલ દર્શાવે છે.
બીજું શું તમે GDB જેવી ડીબગર સાથે કરી શકો છો?
[વિદ્યાર્થી જવાબ, દુર્બોધ]
બરાબર. તમે બ્રેકપોઇન્ટ્સ સેટ કરી શકો છો; તમે વિરામ અમલ કહેવું કરી શકો છો
મુખ્ય કાર્ય અથવા foo કાર્ય છે.
તમે 123 વાક્ય પર બ્રેક અમલ કહેવું કરી શકો છો.
અને બ્રેકપોઇન્ટ્સ ખરેખર એક શક્તિશાળી ટેકનિક છે
કારણ કે જો તમે જ્યાં તમારી સમસ્યા એક સામાન્ય સૂઝ હોય છે
કદાચ, તમે હોય છે માટે સમય બગાડો એ કાર્યક્રમ પૂર્ણ મારફતે વેગ.
તમે અનિવાર્યપણે અધિકાર ત્યાં કૂદકો કરી શકો છો અને પછી ટાઇપિંગ શરૂ કરો -
પગલું અથવા આગામી અથવા જેવા સાથે મારફતે વેગ.
પરંતુ GDB કંઈક સાથે કેચ છે કે તે તમે મદદ કરે છે, માનવ,
તમારી સમસ્યાઓ શોધવા અને તમારી ભૂલો શોધે છે.
તે જરૂરી નથી કે તેઓને શોધી નથી તમારા માટે ખૂબ જ.
>> તેથી અમે બીજી દિવસ style50 રજૂઆત કરી હતી, જે ટૂંકા આદેશ વાક્ય સાધન છે
કે તમારો કોડ થોડો વધુ તમે કરતાં સ્વચ્છ stylize કરવાનો પ્રયત્ન કરે છે, માનવ હોય પૂર્ણ કરી શકે છે.
પરંતુ તે પણ ખરેખર માત્ર એક કલાત્મક ચીજ છે.
પરંતુ તે વળે બહાર ત્યાં આ અન્ય Valgrind કહેવાય સાધન છે કે જે થોડી વધુ ઉપયોગ કરવા માટે arcane છે છે.
તેના ઉત્પાદન atrociously પ્રથમ નજરમાં છુપાયેલું છે.
પરંતુ તે અદ્ભૂત ઉપયોગી છે, ખાસ કરીને હવે કે અમે આ શબ્દ ભાગ પર છો
તમે malloc અને ગતિશીલ મેમરી ફાળવણી વાપરો કે જ્યાં શરૂ કરી રહ્યાં છો.
વસ્તુઓ ખરેખર, ખરેખર ખોટું ઝડપથી જઈ શકે છે.
કારણ કે જો તમે તમારી મેમરી મુક્ત ભૂલી ગયા હો, અથવા તમે અમુક NULL નિર્દેશક ખોટો સંદર્ભ,
અથવા તમે અમુક કચરો નિર્દેશક ડિરેફરન્સ, શું ખાસ છે તે પરિણામોમાં લક્ષણ છે?
દોષ Seg. અને તમે કિલોબાઈટોમાં અથવા મેગાબાઇટ્સ કેટલાક નંબર આ કોર ફાઈલ વિચાર
જે તમારા કાર્યક્રમ મેમરી રાજ્ય રજૂ જ્યારે તે ક્રેશ થયું,
પરંતુ તમારા કાર્યક્રમ આખરે ખામી seg, સેગ્મેન્ટેશન ક્ષતિમાં,
જેનો અર્થ થાય છે કશુંક ખરાબ લગભગ સંબંધિત હંમેશા થયું
એક ભૂલ મેમરી સંબંધિત છે કે તમે ક્યાંક હતી.
તેથી Valgrind તમને આ જેવી વસ્તુઓ શોધો.
તે એક સાધન છે જે તમને સ્કોર છે, GDB જેમ, પછી તમે તમારા કાર્યક્રમ એકત્ર કર્યા છે,
પરંતુ બદલે તમારા કાર્યક્રમ સીધી ચલાવો, તો તમારે સ્કોર Valgrind
અને તમે તેને તમારા કાર્યક્રમ પસાર, જેમ તમે GDB સાથે કામ કરે છે.
હવે, વપરાશ, આઉટપુટ શ્રેષ્ઠ પ્રકારનો વિચાર,
છે થોડું લાંબુ છે, તેથી અધિકાર ત્યાં સ્ક્રીનની ટોચે તમે Valgrind-v જોશો.
"વી" લગભગ સાર્વત્રિક વર્બોઝ અર્થ થાય છે જ્યારે તમે Linux કમ્પ્યુટર પર કાર્યક્રમો ઉપયોગ કરી રહ્યાં છો.
તેથી તેનો અર્થ બહાર તમે કદાચ મૂળભૂત દ્વારા કરતાં વધુ માહિતી SPIT.
"- = સંપૂર્ણ લીક તપાસો." આ માત્ર તમામ શક્ય મેમરી લીક્સ માટે ચેક કહેતા હોય છે,
ભૂલો કે હું બનાવી હોઈ શકે છે. આ પણ, લિનક્સ કાર્યક્રમો સાથે એક સામાન્ય ફેરફાર છે.
સામાન્ય રીતે, જો તમે આદેશ વાક્ય દલીલ છે કે "સ્વીચ" છે,
કે જે કાર્યક્રમ વર્તન બદલવા તેવું માનવામાં આવે છે, અને તે એક જ અક્ષર છે,
તે-v, પરંતુ ફેરવાઈ છે જો, માત્ર પ્રોગ્રામર ડિઝાઇન દ્વારા,
છે એક સંપૂર્ણ અથવા શબ્દોના શબ્દ શ્રેણી, આદેશ વાક્ય દલીલ સાથે શરૂ થાય છે -.
આ ફક્ત માનવ સંમેલનો, પરંતુ તમે તેમને વધુને વધુ જોશો.
અને પછી, છેવટે, આ ચોક્કસ ઉદાહરણ કાર્યક્રમ માટે મનસ્વી નામ "a.out" છે.
અને અહીં કેટલાક પ્રતિનિધિ આઉટપુટ છે.
>> પહેલાં અમે તે શું અર્થ શકે જોવા દો, મને અહીં વધારે કોડ એક સ્નીપેટ પર જાઓ.
દો અને મને જે રીતે આ બહાર ખસેડવા માટે, ટૂંક સમયમાં આવી,
દો અને memory.c, કે જે આ ટૂંકા અહીં ઉદાહરણ છે પર એક નજર.
તેથી આ કાર્યક્રમ દો, મને કાર્યો અને પ્રશ્નો પર ઝૂમ.
અમે એક મુખ્ય કાર્ય છે, કે જે કાર્ય કહે એફ હોય છે,
અને પછી એફ શું સહેજ તકનીકી ઇંગલિશ માં કરવા માટે, આગળ વધવા માટે કરે છે?
એફ શું આગળ વધવા નથી કરી શકું?
વિશે કેવી રીતે હું 20 રેખા સાથે શરૂ થશે, અને પડશે તો તારો સ્થાન વાંધો નથી,
પરંતુ હું ફક્ત સુસંગત છેલ્લા વ્યાખ્યાન અહીં હશો.
20 વાક્ય શું આપણા માટે છે? ડાબી બાજુએ. અમે તેને તોડી નીચે વધુ પડશે.
ઈન્ * એક્સ: કે શું થાય છે?
ઠીક છે. તે એક નિર્દેશક જાહેર કરવામાં આવ્યું છે અને હવે આપણે વધુ તકનિકી છે.
તે શું નથી, ખૂબ concretely અર્થ, એક નિર્દેશક જાહેર? બીજા કોઇએ?
યાહ? [વિદ્યાર્થી જવાબ, દુર્બોધ] ખૂબ દૂર.
જેથી તમે સમાન સાઇન બાજુ જમણી બાજુ વાંચન કરી રહ્યા છો.
ડાબી બાજુ પર માત્ર ચાલો ધ્યાન કેન્દ્રિત પૂર્ણાંક * એક્સ પર જ.
આ કરતું એક નિર્દેશક "જાહેર", પરંતુ હવે ચાલો કે વ્યાખ્યા માટે ઊંડા માં ડાઇવ.
કે શું concretely ટેકનિકલી, એનો અર્થ એ નથી? યાહ?
[વિદ્યાર્થી જવાબ, દુર્બોધ]
ઠીક છે. તે મેમરીમાં એક સરનામું સેવ તૈયાર છે.
ગુડ. દો અને આ એક પગલું આગળ લે છે, તે એક ચલ એક્સ, જે 32 બિટ્સ છે જાહેર છે.
અને હું જાણું છું તે 32 કારણ કે બિટ્સ છે -?
તે કારણ કે તે પૂર્ણાંક છે, કારણ કે તે આ કેસમાં નિર્દેશક છે નથી.
સંયોગ કે તે એક અને પૂર્ણાંક સાથે જ છે,
પરંતુ હકીકત એ છે કે ત્યાં તારો છે ત્યાં અર્થ થાય છે કે આ એક નિર્દેશક છે
અને સાધન, ઘણી કમ્પ્યુટર્સ સાથે નથી, પરંતુ તમામ પોઇંટરો 32 બિટ્સ છે.
વધુ તાજેતરની મેક્સ, તાજેતરના પીસી જેવા આધુનિક હાર્ડવેર પર, તમે 64-bit પોઇન્ટર હોય શકે છે,
પરંતુ સાધન, આ વસ્તુઓ 32 બિટ્સ છે.
તેથી અમે તે પર પ્રમાણિત પડશે. વધુ concretely, વાર્તા આ પ્રમાણે જાય છે:
અમે એક નિર્દેશક "જાહેર"; કે શું અર્થ છે?
અમે મેમરી સરનામા સંગ્રહિત તૈયાર.
કે શું અર્થ છે?
અમે એક ચલ કહેવાતા એક્સ કે 32 બિટ્સ લે બનાવો
કે તરત પૂર્ણાંક ની સરનામા સ્ટોર કરશે.
અને તે કદાચ વિશે તરીકે ચોક્કસ તરીકે અમે મેળવી શકો છો.
તે દંડ છે આગળ વધવા માટે વિશ્વ સરળ અને માત્ર કહેવું એક એક્સ કહેવાય નિર્દેશક જાહેર.
એક નિર્દેશક જાહેર, પરંતુ ખ્યાલ અને સમજવા પડે છે ખરેખર શું ચાલી રહ્યું છે
પણ માત્ર તે થોડા અક્ષરો.
>> હવે, આ એક લગભગ થોડું સરળ છે, તેમ છતાં તે લાંબા સમય સુધી અભિવ્યક્તિ છે.
તેથી આ શું, કરી છે કે હવે પ્રકાશિત છે: "malloc (10 * (પૂર્ણાંક) sizeof);" યાહ?
[વિદ્યાર્થી જવાબ, દુર્બોધ]
ગુડ. અને હું તેને ત્યાં લઈ શકશો. તે દસ પૂર્ણાંકો માટે મેમરી એક ભાગ allocating છે.
અને હવે ચાલો થોડું ઊંડા માં ડાઇવ; તે દસ પૂર્ણાંકો માટે મેમરી એક ભાગ allocating છે.
Malloc શું પછી પરત આવે છે?
કે ભાગ ઓફ સરનામા, અથવા, વધુ concretely છે, કે જે ભાગ પ્રથમ બાઇટ ની સરનામું.
પછી હું કેવી રીતે છું, તો પ્રોગ્રામર ખબર છે, ક્યાં મેમરી અંત કે ભાગ?
મને ખબર છે કે તે સંલગ્ન છે. Malloc, વ્યાખ્યા દ્વારા, તમે મેમરી એક સંલગ્ન ભાગ આપશે.
તેને કોઈ ગાબડા. કે જે તમને ભાગ દરેક બાઈટ વપરાશ હોય છે,
પાછળ પાછળ પાછળ, પરંતુ હું જ્યાં મેમરી આ ભાગ ઓવરને કેવી રીતે જાણી શકું?
જ્યારે તમે malloc ઉપયોગ કરો છો? [વિદ્યાર્થી જવાબ, દુર્બોધ] ગુડ.
શું તમે નથી. તમે યાદ હોય છે.
હું યાદ રાખો કે હું 10 કિંમત ઉપયોગ હોય છે, અને હું પણ અહીં કર્યું છે તેમ લાગતું નથી.
પરંતુ જવાબદારી મને પર રાખે છે. Strlen, જે અમે સહેજ પર નિર્ભર શબ્દમાળાઓ માટે બની કરી લીધી છે,
0 \ કર્યા આ સંમેલન કારણે માત્ર કામ કરે છે
અથવા આ ખાસ nul અક્ષર શબ્દમાળા ઓવરને અંતે NUL.
કે મેમરી માત્ર મનસ્વી હિસ્સામાં માટે રાખી નથી.
તે તમારા પર છે. 20 લીટી તેથી, તે પછી, મેમરી એક ભાગ ફાળવે છે
કે દસ પૂર્ણાંકો સ્ટોર કરી શકો છો અને તે પ્રથમ બાઇટ ની સરનામા સંગ્રહ કરે છે
આ ચલ કહેવાય એક્સ માં મેમરી કે ભાગ છે.
તેને લીધે, કે જે નિર્દેશક છે. 21 લીટી તેથી કમનસીબે, એક ભૂલ આવી હતી.
પરંતુ પ્રથમ, તે શું કરી રહ્યો છે? તે 10 સ્થાન, 0 અનુક્રમિત અંતે સ્ટોર કહેતા છે,
મેમરીનો ભાગ એક્સ મૂલ્ય 0 કહેવાય છે.
>> તેથી નોટિસ વસ્તુઓ એક દંપતી પર જઈને કરવામાં આવે છે.
ભલે એક્સ એક નિર્દેશક છે, પહેલા બે અઠવાડિયા થી યાદ
કે તમે હજુ પણ ચોરસ એરે-શૈલી કૌંસ નોટેશનમાં વાપરી શકો છો.
કારણ કે વાસ્તવમાં વધુ ભેદી દેખાવ નિર્દેશક અંકગણિત માટે નોટેશનમાં ટૂંકા હાથ છે.
જ્યાં અમે આ કંઈક કરવું જોઈએ: સરનામું એક્સ લો, પર 10 સ્થળો ખસેડવા માટે,
પછી સરનામા ગમે તે સ્થાન પર સંગ્રહ થયેલ છે ત્યાં જાઓ.
પરંતુ પ્રમાણિકપણે, માત્ર આ જ ભયાનક છે વાંચવા અને સાથે આરામદાયક છે.
તેથી વિશ્વ ખાસ કરીને ચોરસ કૌંસ વાપરે માત્ર કારણ કે તે વધુ માનવ મૈત્રીપૂર્ણ વાંચવા છે.
પરંતુ શું ખરેખર હૂડ નીચે રહ્યું છે તે;
એક્સ એક સરનામું, સે દીઠ નથી ઝાકઝમાળ છે.
તેથી આ એક્સ માં 10 સ્થાન પર 0 સ્ટોર કરે છે.
આ શા માટે છે ખરાબ? યાહ?
[વિદ્યાર્થી જવાબ, દુર્બોધ] ચોક્કસ.
અમે ફક્ત દસ ints ફાળવવામાં, પરંતુ અમે 0 થી ગણતરી જ્યારે સી પ્રોગ્રામિંગ,
જેથી તમે 0 1 2 3 4 5 6 7 8 9, પરંતુ 10 વપરાશ હોય છે.
તેથી ક્યાં તો કાર્યક્રમ seg ખામી માટે જઈ રહ્યો છે અથવા તે છે નથી.
પરંતુ અમે ખરેખર ખબર નથી કે, આ એક nondeterministic વર્તન જેવું છે.
તે ખરેખર શું આપણે નસીબદાર વિચાર પર આધાર રાખે છે.
જો તે તારણ આપે છે કે જે ઓપરેટિંગ સિસ્ટમ વાંધો નથી જો હું કે જે વધારાના બાઇટ વાપરવા માટે,
ભલે તે મને તે આપી નથી, મારા કાર્યક્રમ ભાંગી શકે છે.
તે કાચા છે, તે બગડેલ નથી, પણ છે કે જે તમને લક્ષણ જોઈ શકે છે,
અથવા તમે તેને માત્ર એક વખતે એક વખત જોઈ શકો.
પરંતુ વાસ્તવિકતા એ છે કે ભૂલ હકીકત છે, ત્યાં.
અને તે ખરેખર સમસ્યારૂપ છે જો તમે એક કાર્યક્રમ છે કે જે તમે યોગ્ય થવું હોય તેવા પરચૂરણ ખર્ચ કર્યો છે,
કે તમે કાર્યક્રમ વેચી કર્યું છે કે લોકો ઉપયોગ કરી રહ્યા છો કે જે દરેક એક વખતે એક વખત ક્રેશ
કારણ કે, બેશક, આ સારૂં નથી. હકીકતમાં, જો તમારી પાસે Android ફોન અથવા આઇફોન છે
અને તમે આ દિવસોમાં એપ્લિકેશન્સ ડાઉનલોડ કરો, જો તમે ક્યારેય પડ્યું એક એપ્લિકેશન માત્ર છોડી દીધું
અચાનક તમામ તે અદૃશ્ય થઈ જાય છે, તે હંમેશા કેટલાક મુદ્દાને મેમરી સંબંધિત પરિણામ છે,
જેમાં પ્રોગ્રામર ઘણું ખરાબ અને dereferenced એક નિર્દેશક
કે તે અથવા તેણી ન હોવું જોઈએ, અને iOS અથવા Android ના પરિણામ માટે માત્ર કાર્યક્રમ સંપૂર્ણપણે મારી નાખી છે
તેના બદલે જોખમ અવ્યાખ્યાયિત વર્તન અથવા સુરક્ષા કોઈક પ્રકારનું સમાધાન કરતાં.
>> ત્યાં એક એક ઉપરાંત આ કાર્યક્રમ અન્ય ભૂલ છે.
બીજું શું હું આ કાર્યક્રમ માં ઘણું ખરાબ?
હું નથી પ્રેક્ટિસ કર્યા છે હું શું ઉપદેશ કર્યો છે. યાહ?
[વિદ્યાર્થી જવાબ, દુર્બોધ] ગુડ.
હું મેમરી નથી મુક્ત છે. તેથી અંગૂઠાની હવે નિયમ
માટે હોવું ગમે ત્યારે તમે malloc કૉલ, તમે મફત કૉલ જ્યારે તમે પૂર્ણ થાય છે જે મેમરી નો ઉપયોગ કરીને આવશ્યક છે.
હવે, જ્યારે હું આ મેમરી મુક્ત માગતા નથી?
કદાચ, ધારી રહ્યા છીએ આ પ્રથમ વાક્ય સાચું હતું, હું તેને અહીં કરવા માંગો છો કરશે.
કારણ કે હું, હમણાં પૂરતું નથી, તે કરી શકે છે અહીં નહીં. શા માટે?
બસ અવકાશ છે. તેથી ભલે અમે પોઇંટરો વિશે વાત કરી રહ્યાં છો,
આ 2 સપ્તાહ અથવા 3 મુદ્દો છે, જ્યાં X એ સર્પાકાર કૌંસ જ્યાં તે જાહેર કરવામાં આવી ની અંદર અવકાશ જ છે.
જેથી તમે ચોક્કસપણે તે ત્યાં ન મુક્ત કરી શકો છો. મારી જ તેને મુક્ત તક 21 લીટી પછી આશરે છે.
આ એકદમ સરળ કાર્યક્રમ છે, તેને એકદમ સરળ હતું એકવાર તમે પ્રકારની તમારા મન આવરિત
શું આસપાસ કાર્યક્રમ કરવું, છે જ્યાં ભૂલો હતી.
અને જો તમે તેને પ્રથમ નથી દેખાતી, આસ્થાપૂર્વક તે થોડી સ્પષ્ટ હવે
કે આ ભૂલો ખૂબ સરળતાથી અને હલ કરવામાં આવે છે સરળતાથી કરી હતી.
પરંતુ જ્યારે એક કાર્યક્રમ 12 કરતાં વધુ રેખાઓ લાંબો છે, તે 50 રેખાઓ લાંબા, 100 લીટીઓ લાંબો છે,
રેખા દ્વારા તમારો કોડ વાક્ય મારફતે વૉકિંગ, વિચારશીલ તે મારફતે તાર્કિક,
શક્ય છે પરંતુ કરવા ખાસ નથી મજા છે, સતત ભૂલો માટે જોઈ રહ્યા છીએ,
અને તે પણ મુશ્કેલ કરે છે, અને કે શા માટે Valgrind જેવા સાધન અસ્તિત્વમાં છે.
મને આગળ વધો અને આ કરો: દો મને મારી ટર્મિનલ વિન્ડોમાં ખોલો,
દો અને મને મેમરી માત્ર ચલાવવા માટે, કારણ કે મેમરી દંડ લાગે છે.
હું નસીબદાર મેળવવામાં છું. એરે ઓવરને અંતે કે વધારાના બાઇટ જવું
નથી લાગે છે નથી પણ સમસ્યારૂપ છે.
પરંતુ મને દો, તેમ છતાં, એક સેનીટી ચેક, કે જે માત્ર તપાસ અર્થ એ થાય કરવું
નથી કે આ ખરેખર સાચું છે.
>> તેથી આપણે valgrind-v કરવું - = સંપૂર્ણ લીક તપાસો,
અને પછી આ કિસ્સામાં કાર્યક્રમના નામ, a.out નથી મેમરી છે.
તેથી દો મને આગળ વધો અને આ કરવા માટે. લિમિટેડ નહીં.
ભગવાન પ્રિય. આ તેની ઉત્પાદન છે, અને આ છે જે હું અગાઉ ખોટો સંદર્ભ આપવામાં આવ્યો.
પરંતુ, જો તમે નોનસેન્સ તમામ મારફતે અહીં વાંચી જાણવા માટે,
આ સૌથી ન્યાયી તપાસ આઉટપુટ કે જે રસપ્રદ નથી છે.
તમારી આંખ ખરેખર માટે શોધી શકાય છે શું ઇચ્છે છે ભૂલ અથવા અમાન્ય કોઇ ઉલ્લેખ છે.
શબ્દો સમસ્યાઓ સૂચવે છે.
અને ખરેખર, ચાલો શું ખોટું થઈ રહ્યું છે તે નીચે અહીં.
હું અમુક પ્રકારની સાર છે, "ઉપયોગ બહાર નીકળો પર. 1 બ્લોકમાં 40 બાઇટ્સ"
હું ખરેખર બ્લોક શું છે હજુ સુધી નથી, પરંતુ 40 બાઇટ્સ
વાસ્તવમાં એવું લાગે છે કે હું બહાર આકૃતિ જ્યાં તે આવે શકે છે.
40 બાઇટ્સ. બહાર નીકળો અંતે વપરાશમાં 40 બાઇટ્સ શા માટે છે?
અને વધુ ચોક્કસ રીતે, જો આપણે નીચે સ્ક્રોલ અહીં,
હું ચોક્કસપણે શા માટે છે 40 બાઇટ્સ ગુમાવી? યાહ?
[વિદ્યાર્થી જવાબ, દુર્બોધ] પરફેક્ટ. અરે વાહ, બરાબર.
ત્યાં દસ પૂર્ણાંકો હતા, અને તે દરેક 4, અથવા 32 બિટ્સની માપ છે,
જેથી હું 40 ચોક્કસપણે બાઇટ્સ ગુમાવ્યું છે, કારણ કે, તમે જેમ પ્રસ્તાવ મૂક્યો, હું મુક્ત ન કહી છે.
કે એક ભૂલ છે, અને હવે આપણે નીચે થોડી વધુ દેખાય અને આ આગામી જુઓ,
"અમાન્ય 4 સાઈઝ લખી." હવે આ શું છે?
આ સરનામું શું આધાર નોટેશનમાં વ્યક્ત છે દેખીતી રીતે?
આ હેક્સાડેસિમલ છે, અને કોઇ પણ સમયે 0x સાથે શરૂ નંબર જુઓ,
તે હેક્સાડેસિમલ અર્થ થાય છે, જે અમે મને લાગે છે કે, પ્રશ્નો pset હિસ્સો 0 વિભાગમાં પાછા માર્ગ હતી,
જે warmup કસરત માત્ર કરવું હતું, બાઈનરી હેક્સ માટે રેખાંશ રૂપાંતરિત અને તેથી આગળ.
હેક્સાડેસિમલ, માનવ સંમેલન દ્વારા જ સામાન્ય રીતે પોઇંટરો પ્રતિનિધિત્વ કરવા માટે વપરાય છે
અથવા, વધુ સામાન્ય રીતે સંબોધે છે. તે માત્ર એક પરંપરા છે,
કારણ કે તે થોડા સરળ વાંચો, તે થોડી વધુ રેખાંશ કંઈક કરતાં કોમ્પેક્ટ છે,
અને બાઈનરી નકામી છે એ મોટાભાગના માનવ વાપરવા માટે.
તેથી હવે આ શું અર્થ છે? વેલ, લાગે છે કે ત્યાં એક અમાન્ય લખવા છે
memory.c ઓફ 21 વાક્ય પર 4 માપ છે.
તેથી આપણે 21 લીટી પર પાછા જાઓ, અને ખરેખર, અહીં કે અમાન્ય લખવા છે.
તેથી Valgrind સંપૂર્ણપણે મારી હાથ પકડી અને મને કહો સુધારો છે જે ન રહ્યું છે,
પરંતુ તે શોધવા છે કે હું એક અમાન્ય લખવા કરી રહ્યો છું.
હું 4 બાઇટ્સ સ્પર્શ છું કે હું ન હોવો જોઇએ, અને દેખીતી રીતે કે છે,
જેમ તમે ધ્યાન દોર્યું, હું [9] બદલે [10] કરી રહ્યો છું વધુમાં
અથવા [0] અથવા વચ્ચે કંઈક.
Valgrind સાથે, કોઈપણ સમયે તમે હવે કાર્યક્રમ લખી રહ્યાં ખ્યાલ
કે પોઇંટરો વાપરે છે અને મેમરી વાપરે છે, અને malloc વધુ ખાસ રીતે,
ચોક્કસપણે આ લાંબી ચાલી ની આદત માં વિચાર
પરંતુ ખૂબ સરળતાથી નકલ અને પેસ્ટ Valgrind ના આદેશ
જોવા માટે જો ત્યાં ત્યાં અમુક ભૂલો છે.
અને તે જબરજસ્ત દર વખતે તમે આઉટપુટ જુઓ હશો,
પરંતુ માત્ર એ આઉટપુટ તમામ દૃષ્ટિની મારફતે પાર્સ અને જુઓ જો તમે જોઈ ભૂલો ઉલ્લેખો
અથવા ચેતવણીઓ છે અથવા અમાન્ય છે અથવા હારી ગયા.
કોઈપણ શબ્દ કે તમે જેમ અવાજને અપ ક્યાંક ખરાબ કર્યું.
જેથી ખ્યાલ છે કે જે તમારા ટૂલકીટ એક નવું સાધન છે.
>> સોમવારે હવે, અમે લોકો સંપૂર્ણ સમૂહ હતો અહીં આવો
અને એક કડી થયેલ યાદી વિચારને રજૂ કરે છે.
અને અમે સમસ્યા શું ઉકેલ તરીકે યાદીની લિંક રજૂઆત?
યાહ? [વિદ્યાર્થી જવાબ, દુર્બોધ] ગુડ.
એરે હોઈ શકે નહિં મેમરી તેમને ઉમેર્યા છે.
જો તમે 10 કદ ઝાકઝમાળ, કે બધા તમે વિચાર છે ફાળવો.
તમે realloc જેમ કાર્ય કૉલ જો તમે શરૂઆતમાં malloc કહી શકાય,
અને કે જે એરે વધવા પ્રયાસ જો ત્યાં તે ઓવરને તરફ જગ્યા છે
કે કોઇ મદદથી છે, અને જો નથી ત્યાં, તે માત્ર તમે મોટા ભાગ મળશે બીજે ક્યાંય.
પરંતુ પછી તે નવા એરે માં તે બાઇટ્સ તમામ નકલ થશે.
આ એક ખૂબ જ યોગ્ય ઉકેલ જેવું વાગે છે.
આ શા માટે છે unattractive?
હું તેનો અર્થ તે કામ કરે છે, મનુષ્યો આ સમસ્યા ઉકેલી છે.
અમે સાથે કડી યાદીઓ સાથે સોમવારે તે ઉકેલવા શા માટે જરૂર હતી? યાહ?
[વિદ્યાર્થી જવાબ, દુર્બોધ] તે માટે લાંબો સમય લઈ શકે છે.
હકીકતમાં, કોઈ પણ સમયે તમે malloc અથવા realloc અથવા calloc છે, કે જે હજી સુધી અન્ય એક છે કૉલ કરી રહ્યાં છો,
કોઈપણ સમયે તમે કરો, તો કાર્યક્રમ છે, ઓપરેટિંગ સિસ્ટમ સાથે વાત,
તમે કાર્યક્રમ ધીમી નીચે હોય છે.
અને જો તમે આંટીઓ વસ્તુઓ આ પ્રકારનાં કરી રહ્યા છીએ, તમે ખરેખર વસ્તુઓ ધીમી કરી રહ્યાં નહીં.
તમે "હેલો વર્લ્ડ" પ્રકાર કાર્યક્રમોની સરળ માટે આ નોટિસ નથી જઈ રહ્યાં છો,
પરંતુ મોટા કાર્યક્રમો માં મેમરી માટે ઓપરેટિંગ સિસ્ટમ ફરીથી અને ફરીથી પુછે
અથવા તેને આપીને પાછા ફરી અને ફરી એક સારી વાત નથી હોઇ શકે છે.
ઉપરાંત, તે માત્ર બૌદ્ધિક જેવું - તે સમય સંપૂર્ણ કચરો છે.
શા માટે વધુ અને વધુ મેમરીને ફાળવવા, નવા એરે માં બધું નકલ જોખમ,
જો તમે વૈકલ્પિક કે તમને માત્ર એટલું મેમરીને ફાળવવા તરીકે તમે ખરેખર જરૂર છે?
તેથી અહીં અને પ્લીસસ minuses છે.
એક પ્લીસસ હવે એ છે કે આપણે dynamism છે.
વાંધો જ્યાં મેમરીનો હિસ્સામાં છે કે જે મુક્ત છે,
મેં હમણાં જ બનાવવા પોઇંટરો મારફતે કરી શકો છો આ બ્રેડ crumbs સૉર્ટ
મારા સમગ્ર યાદીની લિંક સાથે મળીને સ્ટ્રિંગ.
પરંતુ હું ઓછામાં ઓછો એક કિંમત ચૂકવે છે.
>> હું શું સાથે કડી યાદીઓ મેળવવાથી માં આપી છે?
યાહ? [વિદ્યાર્થી જવાબ, દુર્બોધ] ગુડ.
તમે વધુ મેમરી જરૂર છે. હવે હું આ પોઇન્ટર જગ્યાની જરૂર હોય,
અને આ સુપર સરળ યાદીની લિંક કિસ્સામાં
કે માત્ર પૂર્ણાંકો, જે 4 બાઇટ્સ છે સ્ટોર કરવાનો પ્રયાસ છે, અમે કહેતા રાખવા
સાથે સાથે, એક નિર્દેશક 4 બાઇટ્સ છે, તેથી હવે હું શાબ્દિક બમણો કર્યો છે
મેમરીનો જથ્થો મેં હમણાં જ આ યાદી સંગ્રહવા માટે જરૂર છે.
પરંતુ ફરીથી, આ કોમ્પ્યુટર વિજ્ઞાન એક સતત સંતુલિત છે
સમય અને જગ્યા અને વિકાસ ઘટાડે છે, અને અન્ય સ્રોતો વચ્ચે.
એક કડી થયેલ યાદી ઉપયોગ અન્ય નુકસાન શું છે? યાહ?
[વિદ્યાર્થી જવાબ, દુર્બોધ]
ગુડ. ઍક્સેસ તરીકે સરળ. અમે લાંબા સમય સુધી કરી શકો છો લાભ
જેમ 0 સિદ્ધાંતો સપ્તાહ વિભાજિત અને જીતી.
અને વધુ ચોક્કસ રીતે, દ્વિસંગી શોધ. કારણ કે તેમ છતાં અમે માનવો
આશરે જુઓ જ્યાં આ યાદી મધ્યમાં છે,
કમ્પ્યુટર માત્ર જાણે છે કે આ યાદીની લિંક પ્રથમ કહેવાય સરનામાં પર શરૂ થાય છે.
અને તે 0x123 અથવા તે કંઈક છે.
અને માત્ર કાર્યક્રમ માર્ગ મધ્યમ તત્વ શોધી શકો છો
ખરેખર આખી યાદી શોધવા છે.
અને એના પછી, તે શાબ્દિક સમગ્ર યાદી શોધવા ધરાવે છે કારણ કે
પણ એક વાર તમે પોઇંટરો પગલે દ્વારા મધ્યમ તત્વ પહોંચે છે,
તમે કરો, તો કાર્યક્રમ, કોઈ વિચાર કેટલા આ યાદી છે સંભવિત હોય છે,
ત્યાં સુધી તમે તેને ઓવરને દબાવો, અને તમે કેવી રીતે પ્રોગ્રામ ખબર નથી
કે તમે યાદીની લિંક ઓવરને અંતે છો?
ત્યાં એક ખાસ NULL નિર્દેશક જેથી ફરીથી, એક સંમેલનમાં છે.
કરતાં આ નિર્દેશક વાપરવા માટે, અમે ચોક્કસપણે તેને કેટલીક કચરો કિંમત કરવા નથી માંગતા
બંધ પોઇન્ટ મંચ ક્યાંક; અમે તેને હાથ પ્રયત્ન કરવા માંગો છો નીચે, NULL,
જેથી અમે આ માહિતી માળખું આ ટર્મિનસ છે, જેથી આપણે જાણીએ છીએ, જ્યાં તે પૂર્ણ થાય છે.
>> જો અમે આ ચાલાકી કરવા માંગો છો?
અમે આ દૃષ્ટિની મોટા ભાગના હતી, અને મનુષ્ય સાથે,
પરંતુ જો આપણે એક નિવેશ કરવા માંગો છો?
જેથી મૂળ યાદી 9, 17, 20, 22, 29, 34 હતી.
જો અમે તે પછી 55 નંબર, તેના માટે નોડ માટે malloc જગ્યા કરવા માગે છે,
અને પછી અમે યાદી માં 55 દાખલ જેમ આપણે સોમવારે કર્યું કરવા માંગો છો?
અમે આ કેવી રીતે કરવું? વેલ, અનિતા આવી અને તે અનિવાર્યપણે યાદી ચાલ્યો.
તેમણે પ્રથમ તત્વ શરૂ, પછી આગામી, આગામી, આગામી, આગામી, આગામી.
છેલ્લે ડાબી બાજુની બધી રીતે ફટકો નીચે
અને ઓહ ભાન, આ NULL છે. તેથી શું નિર્દેશક મેનીપ્યુલેશન પૂર્ણ કરવાની જરૂર છે?
જે વ્યક્તિ ઓવરને પર હતો, 34 નંબર જરૂરી તેના ડાબા હાથ ઉઠાવ્યો હતો
માટે 55 અંતે નિર્દેશ, 55 તેમના ડાબા નીચે તરફ પોઇન્ટ નવા NULL ટર્મીનેટર પ્રયત્ન હાથ જરૂર છે. થઈ ગયું.
સરળ સુંદર એક છટણી યાદી માં 55 દાખલ કરવા માટે.
અને આ કેવી રીતે જુઓ શકે છે?
>> મને આગળ વધો અને અમુક કોડ ઉદાહરણ અહીં ખોલો.
હું gedit ખોલો, પડશે અને દો મને બે ફાઈલો પ્રથમ ખોલો.
એક list1.h છે, અને દો મને ફક્ત યાદ છે કે આ કોડના ભાગ હતો
કે અમે નોડ પ્રતિનિધિત્વ ઉપયોગ થાય છે.
એક નોડ બંને n એ પૂર્ણાંક તરીકે ઓળખાય છે અને નિર્દેશક કે જે હમણાં જ પોઇન્ટ આગામી યાદીમાં આગામી વસ્તુ કહેવામાં આવે છે.
કે જે ક. ફાઈલ હવે છે. શા માટે?
આ સંમેલન છે, અને અમે લાભ આ નથી વિશાળ જથ્થો જાતને લેવામાં આવે છે,
પરંતુ જે વ્યક્તિ printf અને અન્ય કાર્યો લખ્યું હતું
વિશ્વમાં એક ભેટ તરીકે stdio.h તરીકે ઓળખાતી ફાઈલ લખીને તે તમામ કાર્યોને આપી હતી.
અને પછી ત્યાં string.h છે, અને પછી ત્યાં map.h છે, અને ત્યાં આ તમામ ક ફાઈલો છે
કે તમે અથવા જોઈ હોય તો કદાચ અન્ય લોકો દ્વારા લખવામાં ગાળા દરમિયાન ઉપયોગ થાય છે.
ખાસ કરીને તે માં ક ફાઈલો છે. Typedefs જેમ માત્ર વસ્તુઓ છે
અથવા વૈવિધ્યપૂર્ણ પ્રકારના અથવા સ્થિરાંકો જાહેરાતનો જાહેરાતનો.
તમે હેડર ફાઈલો માં 'વિધેયો અમલીકરણો મૂકી નથી.
તમે મૂકી, તેના બદલે, માત્ર તેમના પ્રોટોટાઇપ માટે.
તમે વિશ્વના તેઓ શું જરૂર સાથે વસ્તુઓ તમે શેર કરવા માંગો છો મૂકી
ક્રમમાં તેમની કોડ કમ્પાઈલ કરવા માટે. તેથી ફક્ત આ ટેવ પ્રવેશ મેળવવા માટે,
અમે આ જ વસ્તુ કરવાના નિર્ણય કર્યો છે. ત્યાં ખૂબ list1.h માં નથી,
પરંતુ અમે વિશ્વમાં કંઈક રસ હોઈ શકે લોકો મૂક્યો છે
જે અમારા સંલગ્ન યાદી અમલીકરણ ઉપયોગ કરવા માંગો છો.
હવે, list1.c માં, હું આ આખી વસ્તુ મારફતે જશે
કારણ કે તે એક બીટ લાંબો છે, આ કાર્યક્રમ દો, પરંતુ તે વાસ્તવિક પ્રોમ્પ્ટ પર ઝડપથી ચાલે છે.
મને list1 કમ્પાઇલ, દો મને પછી list1 ચલાવો, અને તમે શું જોશો છે
અમે બનાવટી સરળ અહીં થોડું કાર્યક્રમ કરેલા
કે મને ઉમેરો અને એક યાદી નંબરો દૂર કરવા માટે પરવાનગી આપે બનશે.
તેથી દો મને આગળ વધો અને મેનુ વિકલ્પ 3 માટે 3 લખો.
હું નંબર દાખલ કરવા માંગો છો - ચાલો પ્રથમ નંબર છે, કે જે 9 હતી કરવા માટે,
અને હવે મને કહેવામાં છું યાદીમાં હવે 9.
મને આગળ વધો અને અન્ય નિવેશ કરવા માટે, જેથી હું મેનુ 3 વિકલ્પ નહીં.
શું નંબર હું સામેલ કરવા માંગો છો? 17.
દાખલ કરો. અને હું એક માત્ર વધારે કરીશ.
ચાલો હું 22 નંબર દાખલ કરો.
તેથી અમે સંકળાયેલા યાદી છે કે અમે સ્લાઇડ ફોર્મ માં ક્ષણ પહેલા હતા શરૂઆત છે.
આ કેવી રીતે દાખલ ખરેખર શું થઈ રહ્યું છે?
ખરેખર, 22 યાદી ઓવરને અંતે હવે છે.
વાર્તા કે જેથી અમે સોમવારે સ્ટેજ પર જણાવ્યું હતું અને માત્ર હવે recapped
વાસ્તવમાં કોડ થતું હોવા જ જોઈએ.
ચાલો એક નજર નાખો. મને આ ફાઈલમાં સરકાવો.
અમે ઉપર કેટલાક કાર્યોને ચળકાટ પડશે,
પરંતુ અમે નીચે જાય છે, કહેવું પડશે, જે insert કાર્ય કરે છે.
>> ચાલો કેવી રીતે અમે આ યાદીની લિંક એક નવી નોડ દાખલ વિશે જાઓ.
જ્યાં યાદી જાહેર કરવામાં આવે છે? વેલ, ચાલો ટોચ પર તમામ માર્ગ ઉપર સ્ક્રોલ કરો,
નોટિસ અને કે મારા યાદીની લિંક અનિવાર્યપણે એક નિર્દેશક, જે શરૂઆતમાં NULL છે જાહેર છે.
તેથી હું વૈશ્વિક ચલ ઉપયોગ કરું છું, અહીં છે, કે જે સામાન્ય રીતે આપણે સામે ઉપદેશ કર્યો છે
કારણ કે તે તમારા કોડ બનાવે છે થોડું ગંદું જાળવણી,
તે સુસ્ત, સામાન્ય રીતે જેવું નથી, પણ તે આળસુ અને નથી તે ખોટું નથી અને તે ખરાબ નથી
જો તમારા કાર્યક્રમ જીવનમાં એકમાત્ર હેતુ માટે એક સંલગ્ન યાદી અનુકરણ છે.
જે બરાબર શું અમે કરી રહ્યા છીએ.
તેથી બદલે મુખ્ય આ જાહેર અને પછી તે દરેક કાર્ય પસાર છે
અમે આ કાર્યક્રમ માં લખાયેલ કર્યું છે, અમે કરવાને બદલે જે તે ઓહ, ચાલો તેને વૈશ્વિક બનાવવા
કારણ કે આ કાર્યક્રમ સમગ્ર હેતુ માટે એક અને માત્ર એક જ કડી થયેલ યાદી દર્શાવવાનો છે.
જેથી ઠીક લાગે છે. અહીં મારા પ્રોટોટાઇપ છે, અને અમે આ બધી મારફતે જશે,
પણ હું એક કાઢી નાખો કાર્ય, એક કાર્ય શોધવા માટે, એક insert કાર્ય છે, અને આડાશ કાર્ય લખ્યું હતું.
દો પરંતુ હવે insert કાર્ય પર પાછા ડૂબવું
જુઓ અને કેવી રીતે આ એક અહીં કામ કરે છે.
Insert રેખા પર છે - અહીં અમે જાઓ.
દાખલ કરો. જેથી કોઇ પણ દલીલો ન લો કરતું નથી, કારણ કે અમે કહી રહ્યા છીએ
નંબર તેઓ સામેલ કરવા માંગો છો માટે આ કાર્યનો એક વપરાશકર્તા અંદર.
પરંતુ પ્રથમ, અમે તેમને કેટલાક જગ્યા આપવી તૈયાર.
આ અને અન્ય ઉદાહરણ માંથી નકલ પેસ્ટ જેવું છે.
તે કિસ્સામાં, અમે પૂર્ણાંક allocating હતી; આ સમય અમે નોડ allocating કરી રહ્યાં છો.
હું ખરેખર કેટલી બાઇટ્સ નોડ છે યાદ નથી, પરંતુ તે દંડ છે.
Sizeof કે મારા માટે બહાર આકૃતિ કરી શકો છો.
અને શા માટે હું 120 લીટી માં NULL માટે ચકાસે છે?
શું 119 લીટી માં ખોટી જઈ શકે છે? યાહ?
[વિદ્યાર્થી જવાબ, દુર્બોધ]
ગુડ. માત્ર કેસ કે હું ઘણી બધી મેમરીનો માટે પૂછ્યું છે હોઈ શકે
અથવા કંઈક ખોટું અને ઓપરેટિંગ સિસ્ટમ માટે પૂરતી મને આપી બાઇટ્સ નથી,
તેથી તે NULL પરત દ્વારા તેટલી નહીં, અને જો હું કે ન તપાસ નથી
અને હું માત્ર અકારણ ઉપયોગ કરવા માટે સરનામાં પરત આગળ વધવું તે NULL હોઈ શકે છે.
કેટલાક અજ્ઞાત કિંમત હોઈ શકે છે; સારું ન વાત એ સિવાય હું -
ખરેખર એક અજ્ઞાત કિંમત હશે નહિં. તે NULL હોઇ શકે છે, તેથી હું નથી માંગતા
તેને અપશબ્દો અને તે dereferencing જોખમ રહે છે.
જો આવું થાય છે, હું હમણાં જ પાછા આવો અને અમે જેમ હું કોઇપણ મેમરી નથી બધા ડોળ કરવો પડશે.
>> નહિંતર, હું કહી વપરાશકર્તા મને એક દાખલ નંબર આપી, હું અમારા જૂના મિત્ર GetInt કહી,
અને પછી આ નવા વાક્યરચના અમે સોમવારે રજૂ કરવામાં આવી હતી.
'Newptr-> એન' સરનામું લેવા કે તમે malloc દ્વારા આપવામાં આવી હતી અર્થ થાય છે
જેમાં નવી નોડ પદાર્થ પ્રથમ બાઇટ દર્શાવે છે,
અને પછી n એ કહેવાય ક્ષેત્ર પર જાઓ.
થોડું નજીવી વસ્તુઓ પ્રશ્ન: આ શું કોડ વધુ ભેદી વાક્ય સમકક્ષ છે?
બીજું હું આ કેવી રીતે હોય તેવા પરચૂરણ ખર્ચ કરી શકે છે? માટે ઘણો પ્રયાસ કર્યો લેવા માંગો છો?
[વિદ્યાર્થી જવાબ, દુર્બોધ]
ગુડ. આ એન. મદદથી, પરંતુ તે તદ્દન તરીકે આ સરળ નથી.
હું શું પ્રથમ જરૂર નથી કરી શકું? [વિદ્યાર્થી જવાબ, દુર્બોધ]
ગુડ. હું * newptr.n કરવાની જરૂર છે.
તેથી આ કહેતા છે નવા નિર્દેશક ચોક્કસપણે એક સરનામું છે. શા માટે?
કારણ કે તે malloc દ્વારા પરત ફર્યા હતા. આ * કહેતા newptr "ત્યાં જાઓ,"
અને પછી એકવાર તમે ત્યાં છો, તો પછી તમે વધુ પરિચિત એન. ઉપયોગ કરી શકો છો,
પરંતુ આ થોડી નીચ લાગે છે, ખાસ કરીને જો આપણે મનુષ્યો જોઈ રહ્યા છે
તીરો સાથે તમામ સમય પોઇંટરો દોરવા; વિશ્વમાં આ તીર પર સંકેતલિપિ પ્રમાણિત છે,
જે બરાબર આ જ વાત કરે છે.
સંકેતલિપિ> જ્યારે ડાબી બાજુ વસ્તુ એક નિર્દેશક છે - જેથી તમે માત્ર વાપરો.
નહિંતર, જો તે વાસ્તવિક સ્ટ્રક્ટ છે, જે એન. વાપરો.
અને પછી આ હું newptr-> આગામી શા પ્રારંભ નથી નલ માટે?
અમે સ્ટેજ ઓવરને એક dangling ડાબા હાથમાં બોલ કરવા નથી માંગતા.
અમે તે સીધો જ નીચે તરફ પોઇન્ટ માંગો છો, કે જે આ યાદી ઓવરને અર્થ થાય છે
સંભવિત આ નોડ પર હોઇ શકે છે, તેથી અમે વધુ સારી રીતે ખાતરી કરો કે તે NULL છે.
અને, સામાન્ય રીતે, તમારા ચલો અથવા તમારા દશાંશ માહિતી સભ્યો અને સ્ટ્ર્ક્ટ્સ પ્રારંભ
કંઈક કરવા માટે માત્ર સારો પ્રયાસ છે.
જસ્ટ ભાડા કચરો અસ્તિત્વ ધરાવે છે અને સામાન્ય રીતે ચાલુ રહી છે તમે મુશ્કેલીમાં નોંધાયો નહીં
જો તમે કંઈક પર પછીથી કરો ભૂલી જાવ.
>> અહીં કેટલીક કિસ્સાઓમાં છે. આ ફરીથી, આ insert કાર્ય છે,
અને પ્રથમ વસ્તુ હું ચકાસવા માટે છે જો ચલ પ્રથમ કહેવાય છે,
કે વૈશ્વિક ચલ NULL છે, તેનો અર્થ એ કે ત્યાં કોઈ કડી થયેલ યાદી છે.
અમે કોઈપણ નંબર્સ દાખલ કરી છે, તેથી તેને તુચ્છ છે આ વર્તમાન નંબર દાખલ કરો
આ યાદી માં, કારણ કે તે માત્ર યાદી શરૂઆતમાં અનુસરે છે.
તેથી આ હતા ત્યારે અનિતા હમણાં હતી અહીં એકલા ઊભા હોવાનો ઢોંગ
કોઇ અહીં મંચ પર ત્યાં સુધી અમે એક નોડ ફાળવવામાં આવી હતી,
પછી તે પ્રથમ વખત તેણીના હાથ ઊંચો લાવી શક્યા હોત,
જો બીજું દરેકને અપ સ્ટેજ પર આવવું પડ્યું સોમવારે તેના પછી.
હવે અહીં, આ થોડું ચેક જ્યાં હું કહેવા છે જો n ના નવા નોડ કિંમત
છે વર્તમાન પ્રથમ નોડમાં n ના કિંમત <,
તેનો અર્થ એ કે ત્યાં સંકળાયેલી યાદી છે કે જે શરૂ કરવામાં આવ્યું છે તે છે.
ત્યાં યાદીમાં ઓછામાં ઓછી એક નોડ છે, પરંતુ આ નવી વ્યક્તિ
અનુલક્ષે તે પહેલાં, તેથી અમે વસ્તુઓ ફરતે ખસેડવા માટે જરૂર છે.
અન્ય શબ્દોમાં, જો યાદી માત્ર સાથે શરૂ કરી છે, ચાલો કહે,
માત્ર 17 નંબર, કે છે - વાસ્તવમાં, અમે આ વધુ સ્પષ્ટ કરી શકો છો.
જો અમે અહીં એક નિર્દેશક પ્રથમ કહેવાય સાથે અમારી વાર્તા શરૂ કરવા માટે,
અને પ્રારંભમાં તેને NULL છે, અને અમે 9 નંબર દાખલ કરો,
આ 9 નંબર સ્પષ્ટ યાદી શરૂઆતમાં અનુસરે છે.
તેથી આપણે ડોળ અમે ફક્ત સરનામું અથવા 9 નંબર malloced અને તેને અહીં મૂકો.
જો પ્રથમ 9 મૂળભૂત છે, પ્રથમ દૃશ્ય અમે ચર્ચા માત્ર લેટ્સ બિંદુ આ વ્યક્તિ અહીં અર્થ છે,
આ NULL રજા, હવે અમે 9 નંબર હોય છે.
આગામી નંબર અમે સામેલ કરવા માંગો છો 17 છે.
17 ઉપર અહીં અનુલક્ષે છે, તેથી અમે આ મારફતે કેટલાક તાર્કિક આધાર હોય તો જઈ રહ્યાં છો.
તેથી તેના બદલે દો, પહેલાં અમે કે, ચાલો ડોળ કરવો કે અમે 8 નંબર દાખલ કરવા ઈચ્છતા.
>> તેથી સગવડ ખાતર જ હું અહીં દોરવા જાઉં છું.
પરંતુ યાદ રાખો, malloc તે સૌથી ગમે ત્યાં મૂકી શકો છો.
પરંતુ ચિત્ર ખાતર, હું તેને અહીં મૂકીશું.
તેથી ડોળ હું માત્ર 8 નંબર માટે નોડ ફાળવવામાં કર્યું છે; આ મૂળભૂત દ્દારા NULL છે.
શું હવે થાય છે? વસ્તુઓ એક દંપતિ.
અમે સ્ટેજ પર સોમવારે આ ભૂલ જ્યાં અમે આ જેવા નિર્દેશક સુધારાશે કર્યો હતો,
તો પછી આ કર્યું, અને પછી અમે એવો દાવો કર્યો હતો - અમે સ્ટેજ પર દરેક વ્યક્તિને અનાથ.
કારણ કે તમે can't - અહીં કામગીરી ક્રમ મહત્વનો છે,
હવે કારણ કે અમે આ નોડ 9 કે જે હમણાં જ જગ્યા ફ્લોટિંગ જેવું છે ગુમાવ્યું છે.
તેથી આ સોમવાર પર યોગ્ય અભિગમ ન હતી.
અમે પ્રથમ કંઈક બીજું શું હોય છે.
વિશ્વના રાજ્ય આ જેવો દેખાય છે. શરૂઆતમાં, 8 ફાળવવામાં આવ્યો છે.
શું 8 દાખલ સારી રીતે હશે?
તેના બદલે આ નિર્દેશક પ્રથમ સુધારવાના, ફક્ત આ અહીં એક જગ્યાએ સુધારો.
તેથી અમે કોડ એક વાક્ય છે કે આ NULL અક્ષર ચાલુ રહ્યું છે જરૂર
એક વાસ્તવિક નિર્દેશક જે 9 ગાંઠ પર પોઇન્ટ છે માં,
અને પછી અમે સુરક્ષિત રીતે પ્રથમ બદલવા માટે આ વ્યક્તિ અંતે અહીં નિર્દેશ કરી શકો છો.
હવે અમે એક યાદી, બે ઘટકો એક કડી થયેલ યાદી હોય છે.
અને આ ખરેખર શું નથી અહીં જેમ દેખાય છે?
જો આપણે કોડ જોવા નોટિસ, કે હું કે બરાબર કર્યું છે.
મેં કહ્યું કર્યું છે newptr, અને આ વાર્તામાં, newptr આ વ્યક્તિ તરફ આવી હતી.
>> તેથી દો મને એક વધુ નાની ચીજ દોરવા, અને હું આ માટે થોડી વધુ જગ્યા બાકી છે કરીશું.
જેથી નાના થોડું રેખાંકન ક્ષમા.
આ વ્યક્તિ newptr કહેવામાં આવે છે.
25 ઉપર માત્ર - કે ચલ અમે થોડા લીટીઓ અગાઉ લીટી માં જાહેર છે.
અને તે 8 થી પોઇન્ટ છે. તેથી જ્યારે હું newptr-> આગામી કહે છે કે અર્થ એ થાય કે સ્ટ્રક્ટ પર જાઓ
કે newptr દ્વારા કરવામાં આવી રહી છે અંતે નિર્દેશ છે, તેથી અહીં અમે હોય છે, ત્યાં જાઓ.
પછી તીર કહેતા છે આગામી ક્ષેત્ર વિચાર છે, અને પછી = કહેતા છે શું કિંમત મૂકવા ત્યાં?
આ કિંમત છે કે જે પ્રથમ હતો; કિંમત શું પ્રથમ હતો?
આ નોડ પર પોઇન્ટ હતી, તેથી તેનો અર્થ એ કે આ હવે આ નોડ પર નિર્દેશ કરીશું.
અન્ય શબ્દોમાં, શું મારા હસ્તાક્ષર સાથે હાસ્યાસ્પદ વાસણ જોકે લાગે છે,
માત્ર આસપાસ આ તીર જવાનું સરળ વિચાર શું છે
ફક્ત આ એક લાઇનર સાથે કોડ થીં.
સ્ટોર શું આગામી ક્ષેત્રમાં પ્રથમ છે અને પછી અપડેટ પ્રથમ ખરેખર શું છે.
ચાલો આ અમુક મારફતે આગળ અને ઝડપથી આગળ જવા,
અને આ પૂંછડી નિવેશ પર માત્ર હવે જુઓ.
ધારો કે હું બિંદુ જ્યાં હું શોધવા કે અમુક નોડ આગળના ક્ષેત્ર NULL છે મેળવો.
અને વાર્તા, એક વિગતવાર આ બિંદુએ કે હું પર glossing છું
છે કે હું અન્ય નિર્દેશક રચના કરી છે અપ 142 લાઇન, પુરોગામી નિર્દેશક અહીં.
આવશ્યકપણે, વાર્તામાં આ બિંદુએ, એક વાર યાદી લાંબી નહીં,
હું પ્રકારની તેને બે આંગળીઓ સાથે ચાલવા જરૂર જો હું ખૂબ દૂર જવા કારણ કે,
એક યાદી એક લંબાઈ યાદ રાખો કે, તમે પાછળની જઈ શકો નહિં.
તેથી predptr આ વિચાર મારા ડાબા આંગળી છે, અને newptr - newptr નથી.
અન્ય નિર્દેશક કે અહીં મારા અન્ય આંગળી છે, અને હું માત્ર યાદી વૉકિંગ પ્રકારની છું.
કે શા માટે છે કે જે અસ્તિત્વમાં છે. દો પરંતુ માત્ર એક સરળ અહીં કેસો નક્કી કરો.
જો કે નિર્દેશક આગામી ક્ષેત્ર NULL છે, લોજીકલ સૂચિતાર્થ શું છે?
જો તમે આ યાદી સરકાઉ છે અને તમે એક NULL નિર્દેશક ફટકો?
તમે યાદીમાં ઓવરને અંતે કરશો, અને તેથી કોડ તો પછી આ એક વધારાની તત્વ ઉમેરી માટે
છે સાહજિક જેવું કે નોડ આગામી જેના નિર્દેશક NULL છે લઈ જશે,
તેથી આ હાલમાં NULL છે, અને તે બદલવા માટે, જોકે, નવા નોડને સરનામું.
તેથી અમે માત્ર કોડ માં તીર રેખાંકન કરી રહ્યા છો કે અમે કોઈના ડાબા હાથની એકત્ર દ્વારા સ્ટેજ પર આધારિત હતી.
>> અને આ કેસ કે હું હવે મારા હાથમાં મોજા પડશે,
, ફક્ત કારણ કે મને લાગે છે કે તે સરળ છે હારી કરો ત્યારે અમે તેને પર્યાવરણ આ પ્રકારની શું
એ યાદી મધ્યમ અંતે નિવેશ માટે ચકાસે.
પરંતુ ફક્ત તર્ક, શું કરવા જરૂર છે જો તમે બહાર આકૃતિ માંગો છો
જ્યાં અમુક નંબર મધ્યમાં રહેલો હોય છે તો તમે તેને ચાલવા હોય
એક કરતાં વધુ આંગળી સાથે એક કરતાં વધુ નિર્દેશક,
બહાર આકૃતિ જ્યાં તે ચકાસણી દ્વારા અનુલક્ષે એ તત્વ છે <વર્તમાન એક,
> વર્તમાન એક છે, અને એક વખત તમે તે સ્થાન શોધો,
પછી તમે શેલ રમત આ પ્રકારની કરી છે કે જ્યાં તમે પોઇંટરો આસપાસ ખૂબ કાળજીપૂર્વક ખસેડવા હોય છે.
અને તે જવાબ, જો તમે આ મારફતે તમારા પોતાના પર ઘરે કારણ માંગતા હો,
માત્ર કોડ કે આ બે લીટીઓ માટે નીચે ઉકળે છે, પરંતુ તે રેખાઓ છે તે ક્રમમાં સુપર મહત્વપૂર્ણ છે.
કારણ કે જો તમે કોઈની હાથ છોડી દે છે અને એકત્ર કોઈએ ખોટા ક્રમમાં છે,
ફરીથી, તમે અંત યાદી orphaning શકે છે.
વધુ સરળ રીતે સંક્ષેપમાં પૂંછડી પર દાખલ પ્રમાણમાં સરળ હોય છે.
માથા પર દાખલ પણ પ્રમાણમાં સરળ,
પરંતુ તમે વધારાની નિર્દેશક આ સમયે અપડેટ કરવાની જરૂર
આ યાદીમાં 5 નંબર અહીં સ્વીઝ,
અને પછી મધ્યમાં નિવેશ પણ વધુ પ્રયાસ સમાવેશ થાય છે,
ખૂબ જ કાળજીપૂર્વક તેની યોગ્ય સ્થાન માં 20 નંબર દાખલ કરો,
જે 17 અને 22 ની વચ્ચે હોય છે.
જેથી તમે 22 થી નવી નોડ 20 પોઇન્ટ ધરાવે છે કંઈક કરવાની જરૂર છે,
અને પછી, જે નોડ નિર્દેશક માટે છેલ્લા સુધારાની જરૂર છે?
તે 17 છે, ખરેખર તે દાખલ કરો.
તેથી ફરી, હું ચોક્કસ અમલ માટે વાસ્તવિક કોડ મુલતવી રાખવું પડશે.
>> પ્રથમ નજરમાં, તે થોડી જબરજસ્ત છે, પરંતુ તે ખરેખર માત્ર એક અનંત લૂપ છે
કે રહ્યાં, તે જ રહ્યાં, રહ્યાં, રહ્યાં છે, અને ટૂંક સમયમાં ભંગ તરીકે તમે NULL નિર્દેશક દબાવો,
જે બિંદુએ તમે જરૂરી નિવેશ કરી શકો છો.
આ પછી, પ્રતિનિધિ યાદીની લિંક ઉમેરો કોડ છે.
ઘણી પ્રકારની હતી, અને તે લાગે છે જેમ આપણે એક સમસ્યા ઉકેલી લીધી છે,
પરંતુ અમે એક સંપૂર્ણ અન્ય એક રચના કરી છે. પ્રમાણિકપણે, અમે આ બધા સમય ગાળ્યો કર્યા છે
મોટું ઓ અને Ω પર અને સમય ચાલી, જે સમસ્યાઓ હલ કરવાનો પ્રયાસ કરી વધુ ઝડપથી,
અને અહીં આપણે એક મોટું પગલું લેતા પાછળની, તે લાગે છે.
અને હજુ સુધી, જો ધ્યેય માહિતી સંગ્રહવા છે,
તે પવિત્ર ગ્રેઈલ જેવી લાગે છે, કારણ કે અમે સોમવારે જણાવ્યું હતું કે, ખરેખર હશે
વસ્તુઓ તરત સ્ટોર કરે છે.
>> હકીકતમાં ધારવું, કે જે આપણે મૂકવા એક ક્ષણ માટે કોરે યાદીની લિંક કર્યું
અને અમે તેના બદલે એક ટેબલ વિચારને રજૂ કર્યો હતો.
અને એક એરે તરીકે ક્ષણ માટે આપણે માત્ર એક ટેબલ લાગે છે.
આ એરે અને આ કેસ અહીં 26 કેટલાક ઘટકોને 0 25 મારફતે ધરાવે છે,
ધારવું અને તમે નામો માટે સંગ્રહ કેટલાક ભાગ જરૂરી:
એલિસ અને બોબ અને ચાર્લી અને જેમ.
અને તમે અમુક માહિતી માળખું જરૂર તે નામો સ્ટોર કરે છે.
સારું, તમે એક કડી થયેલ યાદી કંઈક ઉપયોગ કરી શકે છે
અને તમે બોબ અને બોબ બાદ ચાર્લી પહેલા એલિસ દાખલ યાદી ચાલવા અને તેથી આગળ કરી શકે છે.
અને હકીકતમાં, જો તમે એક અલગ તરીકે કે જેવી કોડ જોવા માંગો છો,
ખબર છે કે list2.h માં, અમે તે બરાબર નથી.
અમે આ કોડ દ્વારા ન જાય, પરંતુ આ પ્રથમ ઉદાહરણ એક ચલ છે
કે એક અન્ય સ્ટ્રક્ટ અમે કહેવાતા વિદ્યાર્થી પહેલા જોયેલા પરિચય આપે છે,
અને પછી તે વાસ્તવમાં સંલગ્ન યાદીમાં સંગ્રહ કરે છે કે કયા વિદ્યાર્થી માળખું એક નિર્દેશક છે
કરતાં એક સરળ થોડું પૂર્ણાંક, એન.
જેથી ખ્યાલ ત્યાં કોડ ત્યાં છે કે વાસ્તવિક શબ્દમાળાઓ સમાવેશ થાય છે,
પરંતુ જો હાથ પર ધ્યેય ખરેખર હવે કાર્યક્ષમતા સમસ્યા હલ છે,
સરસ નહિં હોય તે જો આપણે એક એલિસ કહેવાય પદાર્થ આપવામાં કરી રહ્યાં છો,
અમે તેને એક માહિતી માળખામાં યોગ્ય સ્થાન મૂકવામાં માંગો છો,
તે લાગે છે જેમ કે તે ખરેખર સરસ પ્રયત્ન માત્ર એલિસ મૂકવા માંગો છો,
નામ જેની એક સાથે પ્રથમ સ્થાન છે, શરૂ થાય છે.
અને બોબ, નામ જેની બી સાથે બીજા સ્થાને છે, શરૂ થાય છે.
ઝાકઝમાળ સાથે દો, અથવા તે ટેબલ, કે જે એક હેશ ટેબલ કૉલ શરૂ કરવા માટે,
અમે તે બરાબર કરી શકો છો. જો અમે એલિસ જેવું નામ આપવામાં આવે છે,
એલિસ જેવું શબ્દમાળા છે, જ્યાં તમે એક-l-i-c-ઈ મૂકી શકું?
અમે hueristic જરૂર છે. અમે એક કાર્ય કરવાની જરૂર એલિસ જેવા કેટલાક ઇનપુટ લઇ
અને, એક જવાબ પાછા "આ સ્થાન પર એલિસ મૂકો."
અને આ કાર્ય, આ બ્લેક બોક્સ માટે હેશ વિધેય કહેવાય રહ્યું છે.
>> એક હેશ વિધેય કંઈક કે "એલિસ" ઇનપુટ લે છે, છે,
અને તમે વળતર, સામાન્ય રીતે, અમુક માહિતી માળખામાં આંકડાકીય સ્થાન જ્યાં એલિસ અનુસરે છે.
આ કિસ્સામાં, અમારા હેશ વિધેય પ્રમાણમાં સરળ પ્રયત્ન કરીશું.
અમારા હેશ વિધેય કહે, જો તમે "એલિસ" છે, કે જે અક્ષર હું વિશે કાળજી કરીશું આપવામાં આવે છે જોઈએ?
પ્રથમ એક. તેથી હું [0] જુઓ, અને પછી હું કહું છું જો [0] અક્ષર એક છે, જે 0 નંબર આવો.
જો કે તે બી છે, 1 આવો. જો તે સી, 2 પરત છે, અને તેથી આગળ.
બધા 0 અનુક્રમણિકા, અને તે મને એલિસ અને પછી બોબ અને પછી ચાર્લી દાખલ કરવા માટે પરવાનગી આપે છે અને તેથી આગળ કરશે
આ માહિતી માળખામાં. પરંતુ તે એક સમસ્યા છે.
જો અનિતા સાથે ફરીથી આવે છે?
જ્યાં અમે અનિતા મૂકી શકું? તેનું નામ પણ અક્ષર એક સાથે શરૂ થાય છે,
અને તે લાગે છે જેમ અમે આ સમસ્યા પણ મોટા વાસણ કર્યા છે.
હવે અમે એ માહિતી બંધારણ માં તાત્કાલિક નિવેશ, સતત સમય નિવેશ હોય,
ખરાબ કેસ બદલે રેખીય,
પરંતુ અમે શું આ કિસ્સામાં અનિતા સાથે કરી શકો છો?
બે વિકલ્પો શું ખરેખર છે? યાહ?
[વિદ્યાર્થી જવાબ, દુર્બોધ] ઠીક છે, તેથી અમે અન્ય પરિમાણ કરી શકે છે.
કે સારા હોય છે. જેથી અમે વસ્તુઓ બિલ્ડ બહાર 3D માં કરી શકો છો જેમ કે અમારી વિશે સોમવારે મૌખિક વાત કરી.
અમે અન્ય ઍક્સેસ અહીં ઉમેરો કરી શકે છે, પરંતુ ધારો કે કોઈ, હું આ સરળ રાખવા પ્રયાસ કરી રહ્યો છું.
આ સમગ્ર અહીં ધ્યેય તાત્કાલિક વપરાશ સતત સમય હોય છે,
જેથી ઘણો જટિલતા ઉમેરી રહ્યા છે.
અન્ય વિકલ્પો જ્યારે આ માહિતી માળખામાં અનિતા દાખલ કરવાનો પ્રયાસ કરી શું છે? યાહ?
[વિદ્યાર્થી જવાબ, દુર્બોધ] ગુડ. તેથી અમે દરેક વ્યક્તિને નીચે ફરી શકે છે,
બોબ અને એલિસ, નીચે ચાર્લી બનાવ્યો અને પછી જેમ અમે અનિતા મૂકવામાં જ્યાં તેમણે ખરેખર થવા માંગે છે.
>> અલબત્ત, હવે, આ એક બાજુ અસર છે.
આ માહિતી માળખું કદાચ ઉપયોગી નથી કારણ કે અમે લોકોને સામેલ કરવા માંગો છો વાર
પરંતુ કારણ કે અમે તપાસ જો તેઓ ત્યાં પાછળથી છો માંગો છો
જો અમે બહાર દશાંશ માહિતી માળખામાં નામો બધી પ્રિન્ટ માંગો છો.
અમે આ માહિતી સાથે કંઈક છેવટે કરવા જઇ રહ્યા છો.
તેથી હવે અમે પ્રકારની એલિસ, જે હવે જ્યાં તેમણે હશે તેવું માનવામાં પર ખરાબ કરેલા.
નોર બોબ છે, કે ચાર્લી છે.
તેથી કદાચ આ જેવા વિચાર સારો નથી.
પરંતુ ખરેખર, આ એક વિકલ્પ છે. અમે દરેકને પાળી નીચે શકે છે,
અથવા હેક, અનિતા રમત માટે મોડી આવી, શા માટે આપણે માત્ર અનિતા મૂકી નથી
નથી અહીં, નથી અહીં, નથી અહીં, ચાલો પણ તેણીના યાદીમાં થોડો નીચો મૂકો.
પરંતુ તે પછી આ સમસ્યા ફરી એકને શિરેથી ઊતરીને બીજાને શિરે જવું શરૂ થાય છે.
તમે એલિસ શોધવા સક્ષમ તરત જ તેણીના પ્રથમ નામ પર આધારિત શકે હોય છે.
અને તરત બોબ, અને ચાર્લી. પરંતુ તે પછી તમે અનિતા જોવા માટે,
અને તમે જુઓ, હમ્મ, એલિસ માર્ગ છે.
વેલ દો, મને એલિસ નીચે તપાસો. બોબ અનિતા નથી.
ચાર્લી અનિતા નથી. ઓહ, ત્યાં અનિતા છે.
અને જો તમે તર્ક છે કે ટ્રેન બધી રીતે ચાલુ રાખવા માટે,
સૌથી ખરાબ કેસ શોધવા અથવા આ નવી માહિતી માળખામાં અનિતા દાખલ ચાલી રહ્યું સમય શું છે?
તે ઓ (એન) અધિકાર છે?
સૌથી ખરાબ કિસ્સામાં, કારણ કે ત્યાં એલીસ, બોબ, ચાર્લી છે. . .
"વાય" નામની કોઇ વ્યક્તિ તમામ નીચે માર્ગ છે, તેથી ત્યાં માત્ર એક સ્પોટ છે બાકી છે.
Thankfully, અમે કોઈ "Z" કહેવાય છે એક હોય છે, તેથી અમે ખૂબ તળિયે અનિતા મૂકો.
>> અમે ખરેખર સમસ્યા નથી ઉકેલી છે.
તેથી કદાચ અમે આ ત્રીજા પરિમાણ દાખલ કરવાની જરૂર નથી.
અને તે તારણ, જો આપણે આ ત્રીજા પરિમાણ દાખલ નહિં કરો,
અમે આ સંપૂર્ણપણે નથી, પરંતુ પવિત્ર ગ્રેઈલ માટે મળતું હોવું રહ્યું છે
સતત સમય નિવેશ અને ગતિશીલ દાખલ કરો કે જેથી
અમે સખત કોડ 26 કદ એક એરે માટે નથી.
અમે ઘણી નામો તરીકે સામેલ તરીકે અમે માંગો છો કરી શકો છો, પરંતુ આપણે આપણા વિરામ 5-મિનિટ અહીં લેવા
અને પછી યોગ્ય રીતે કે નથી.
અધિકાર છે. હું વાર્તા સુયોજિત ખૂબ કૃત્રિમ ત્યાં
એલિસ અને પછી બોબ અને પછી ચાર્લી અને પછી અનિતા પસંદ કરીને,
નામ જેની ચોક્કસપણે માટે એલિસ સાથે અથડાઈ જવાની હતી.
પરંતુ પ્રશ્ન અમે સાથે સોમવારે પૂરા થયેલા માત્ર સંભવિત તે કેવી રીતે થાય છે
કે તમે આ પ્રકારના અકસ્માતથી વિચાર છો? અન્ય શબ્દોમાં,
જો અમે આ કોઠા માળખું ઉપયોગ શરૂ કરવા માટે, જે ખરેખર માત્ર ઝાકઝમાળ છે,
26 સ્થળોએ આ કિસ્સામાં,
જો અમારા ઇનપુટ્સ બદલે એકસરખી વિતરણ કરવામાં આવે છે?
તે કૃત્રિમ રીતે એલિસ અને બોબ અને ચાર્લી અને ડેવિડ નથી અને તેથી આગળ મૂળાક્ષરોની,
તે એકસરખી ઝેડ મારફતે 'એ ઉપર વિતરિત
>> કદાચ અમે ફક્ત નસીબદાર વિચાર અને પડશે અમે બે એક અથવા બે B હિસ્સો નથી જઈ રહ્યાં છો
ખૂબ જ ઊંચી સંભાવના સાથે, પરંતુ કોઇને ધ્યાન દોર્યું,
જો અમે આ સમસ્યા સામાન્ય છે અને નથી 0 થી 25
પરંતુ કહે છે, 0 364 મારફતે અથવા 65, ઘણીવાર વિશિષ્ટ વર્ષમાં દિવસોની સંખ્યા,
, અને પ્રશ્ન પૂછવામાં "શક્યતા છે કે આ ખંડમાં અમને બે જ જન્મદિવસ છે શું છે?"
તેને બીજી રીતે મૂકો, તો સંભાવના શું છે કે બે અમને એક એક સાથે શરૂ નામ છે?
પ્રશ્ન એ પ્રકારની જ હોય, પરંતુ આ સરનામા જગ્યા,
આ શોધ જગ્યા, જન્મદિવસો કિસ્સામાં મોટી છે,
કારણ કે અમે આમ ઘણા મૂળાક્ષરમાં અક્ષરો કરતાં વધુ વર્ષ દિવસ હોય છે.
ટક્કર થવાની સંભાવના શું છે?
વેલ, અમને આ બહાર ગણિત વિરુદ્ધ રીતે figuring દ્વારા વિચાર કરી શકો છો.
આ બોલ પર કોઈ અકસ્માતથી સંભાવના શું છે?
વેલ, આ અહીં અભિવ્યક્તિ કહે છે કે શું સંભાવના છે
જો ત્યાં ફક્ત આ રૂમમાં એક વ્યક્તિ કે, તેઓ એક અનન્ય જન્મદિવસ હોય છે?
તે 100% છે. કારણ કે જો ત્યાં ઓરડામાં એક માત્ર વ્યક્તિ છે,
તેના અથવા તેણીના જન્મદિવસ એ 365 દિવસ કોઈપણ વર્ષ બહાર હોઇ શકે છે.
જેથી 365/365 વિકલ્પો મને 1 ની કિંમત આપે છે.
તેથી આ સમયે પ્રશ્ન માં સંભાવના ફક્ત 1 છે.
પરંતુ જો ત્યાં રૂમ માં બીજા વ્યક્તિ છે,
સંભાવના છે કે તેમના જન્મદિવસ અલગ છે શું?
ત્યાં 364 જ શક્ય દિવસના અવગણીને લિપ વર્ષ છે,
તેમના જન્મદિવસ માટે ટકરાતા નથી બીજી વ્યક્તિઓ સાથે.
તેથી / 365 364. જો ત્રીજી વ્યક્તિ આવે, તે / 363 365 છે, અને તેથી આગળ.
તેથી અમે સાથે આ અપૂર્ણાંક ગુણાકાર રાખવા, જે વધુ નાના અને નાના મેળવવામાં આવે છે,
બહાર આકૃતિ શક્યતા છે કે અમારા બધા અનન્ય જન્મદિવસ છે શું છે?
પરંતુ તે પછી આપણે, અલબત્ત, માત્ર શકો છો કે જવાબ ભરે છે અને તેને વિમાનની મુસાફરી આસપાસ
અને 1 બાદ તમામ કે, એક અભિવ્યક્તિ અમે આખરે મળશે કરવું
જો તમે તમારા ગણિત પુસ્તકો પાછળ યાદ રાખો કે, તે આ જેમ થોડું કંઈક જુએ છે,
જે ખૂબ વધુ સરળતાથી ગ્રાફિકલી અર્થઘટન છે.
અને આ અહીં ગ્રાફિક x અક્ષ પર જન્મદિવસ સંખ્યા ધરાવે છે,
અથવા જન્મદિવસો સાથે લોકો અને y અક્ષ પર નંબર મેચમાં સંભાવના છે.
અને આ કહેતા છે શું એ છે કે જો તમારી પાસે દો, કહો કે, પણ,
ચાલો 23 22, કંઈક પસંદ કરો.
જો ત્યાં રૂમ માં 22 અથવા 23 લોકો છે,
સંભાવના છે કે બે તે ખૂબ થોડા લોકો જ જન્મદિવસ હોય જવું છે
વાસ્તવમાં સુપર ઊંચી છે combinatorially.
50% મતભેદ કે 22 લોકોના માત્ર, એક પરિસંવાદ, વ્યવહારીક એક વર્ગ છે,
2 તે લોકો માટે જ જન્મદિવસ હોય જતાં હોય છે.
કારણ કે ત્યાં ઘણા માર્ગો કે જેમાં તમે જ જન્મદિવસ હોઈ શકે છે.
ખરાબ પણ, જો તમે ચાર્ટ બાજુ જમણી બાજુ જુઓ,
સમય દ્વારા તમે તેને 58 વિદ્યાર્થીઓ સાથે એક વર્ગ છે,
2 એક જન્મદિવસ કર્યા લોકોની સંભાવના સુપર, સુપર ઉચ્ચ લગભગ 100% છે.
હવે, કે જે વાસ્તવિક જીવન વિશે મજા હકીકત જેવું છે.
>> પરંતુ અસરો, હવે દશાંશ માહિતી માળખાં માટે, અને સંગ્રહવા માહિતી
એનો અર્થ એ થાય કે જે હમણાં જ ધારી રહ્યા છીએ તમે સરસ, સ્વચ્છ, માહિતી સમાન વિતરણ હોય
અને તમે એક મોટું માટે પૂરતી વસ્તુઓ સમૂહ ફિટ એરે છે
નથી તેનો અર્થ નથી તમે અનન્ય સ્થળોએ લોકો વિચાર જઈ રહ્યાં છો.
તમે અથડામણમાં હોય રહ્યા છીએ. પાસવર્ડ હેશીંગ આ વિચારને તેથી, કારણ કે તે કહેવાય છે,
જેમ કે "એલિસ" ઇનપુટ લેતા અને તે કેટલીક રીતે માલિશ
અને પછી પાછા 0 અથવા 1 અથવા 2 જેવા જવાબ મળતો.
પાછા પેલા વિધેય માંથી કેટલીક આઉટપુટ મેળવી રહ્યા છે અથડામણ આ સંભાવના દ્વારા ભારે ઉપદ્વવ છે.
તેથી અમે કેવી રીતે તે અકસ્માતથી સંભાળી શકે છે?
વેલ, એક કેસ પર, અમે વિચાર કે સૂચવવામાં આવ્યું હતું લઈ શકો છો.
અમે હમણાં જ દરેકને પાળી નીચે કરી શકો છો, અથવા કદાચ થોડી વધુ સરળ,
ચાલ બીજું દરેકને બદલે, ચાલો ફક્ત ઉપલબ્ધ હાજર નીચે અનિતા ખસેડો.
તેથી જો એલિસ 0 છે, બોબ 1 છે, ચાર્લી 2 માં છે,
અમે ફક્ત 3 સ્થાન પર અનિતા મૂકીશું.
અને આ માહિતી માળખાં એક તરકીબ રેખીય ચકાસણી કહેવાય છે.
લીનિયર કારણ કે તમે ફક્ત આ વાક્ય વૉકિંગ કરી રહ્યાં છો, અને તમે ચકાસણી જેવું છો
આ માહિતી માળખું ઉપલબ્ધ સ્થળો છે.
અલબત્ત, આ ઓ (n) માં devolves.
જો માહિતી માળખું ખરેખર સંપૂર્ણ છે, તેમાં 25 લોકો પહેલેથી જ છે,
અને પછી અનિતા સાથે આવે છે, તે શું સ્થાન Z હશે ખાતે થાય છે, અને તે લલિત છે.
તેમણે હજુ પણ ફીટ થઈ જાય છે, અને અમે તેના પછી શોધી શકો છો.
>> પરંતુ આ વસ્તુઓ ઝડપી અપ ધ્યેય વિપરીત હતી.
તેથી જો આપણે તેના બદલે આ ત્રીજા પરિમાણ પરિચય?
ટેકનીક જે સામાન્ય રીતે અલગ અલગ chaining કહેવાય છે, અથવા સાંકળો હોય છે.
અને હેશ કોષ્ટક શું હવે, આ કોઠા માળખું,
તમારા ટેબલ માત્ર પોઇંટરો ઝાકઝમાળ છે.
પરંતુ તે પોઇંટરો નિર્દેશિત કરવા માટે શું શું અનુમાન છે?
એક કડી થયેલ યાદી. તેથી જો અમે આ લોકના બંને શ્રેષ્ઠ લાગી?
અમે પ્રારંભિક નિર્દેશિકાઓની માટે એરે ઉપયોગ
આ માહિતી માળખામાં તેથી અમે તરત [1], [30] અથવા તેથી આગળ [0] જઈ શકો છો,
પરંતુ કે જેથી અમે કેટલીક ફ્લેક્સિબિલિટી હોય છે અને અમે અનિતા અને એલિસ અને આદમ ફિટ થઈ શકે છે
અને અન્ય કોઈ પણ એક નામ,
અમે બદલે દો અન્ય ધરી આપખુદ વિકસે છે.
અને અમે આખરે, સોમવાર તરીકે, સંલગ્ન યાદી સાથે એ વ્યક્ત કરવાની ક્ષમતા ધરાવે છે.
અમે એ માહિતી બંધારણ આપખુદ પ્રગતિ કરી શકે છે.
વૈકલ્પિક રીતે, અમે માત્ર એક વિશાળ એરે 2-પરિમાણીય બનાવી શકે છે,
પરંતુ તે એક ભયાનક પરિસ્થિતિ હોઈ શકે જો ચાલી રહ્યું છે એક એરે 2-પરિમાણીય માં પંક્તિઓની
પૂરતો મોટો વધારાના વ્યક્તિ નામ છે, જેની સાથે શરૂ થાય છે એ માટે નથી
ભગવાન મનાઈ ફરમાવવી અમે એક વિશાળ માળખું 2-પરિમાણીય reallocate છે
માત્ર કારણ કે ત્યાં ઘણા ફકત લોકો છે,
ખાસ કરીને જ્યારે ત્યાં તેથી થોડા Z કંઈક નામ લોકો છે.
તે માત્ર ખૂબ સ્પર્શ માહિતી માળખું જ હશે.
જેથી કોઇ પણ માધ્યમ દ્વારા સંપૂર્ણ નથી પરંતુ હવે અમે ઓછામાં ઓછી કરવાની ક્ષમતા હોય છે
તત્ક્ષણ શોધવા જ્યાં એલિસ અથવા અનિતા અનુલક્ષે,
ઓછામાં ઓછા ઊભી ધરી દ્રષ્ટિએ,
અને પછી અમે માત્ર નક્કી જ્યાં આ કડી થયેલ યાદીમાં અનિતા અથવા એલિસ મૂકવા માટે છે.
જો અમે વસ્તુઓ સૉર્ટ વિશે પડી નથી, ઝડપથી કેવી રીતે અમે આ જેવા માળખામાં એલિસ દાખલ કરી શકે છે?
તે સતત સમય છે. અમે [0] માં અનુક્રમણિકા, અને જો કોઈ વ્યક્તિના ત્યાં,
એલિસ કે યાદીની લિંક શરૂઆતમાં જાય છે.
પરંતુ તે એક વિશાળ સોદો નથી. જો કારણ કે અનિતા પછી સાથે આવે છે
કેટલાક પગલાંઓ નંબર બાદ, જ્યાં અનિતા સંબંધ નથી?
વેલ, [0]. Oop. એલિસ કે યાદીની લિંક પહેલેથી જ છે.
>> પરંતુ જો આપણે આ નામો સૉર્ટ વિશે પડી નથી,
અમે ફક્ત એલિસ પર, insert અનિતા ખસેડવા કરી શકો છો, પરંતુ તેમ છતાં પણ સતત સમય છે.
જો ત્યાં એલિસ અને આદમ અને આ બધા અન્ય એક નામો છે,
તે ખરેખર તેમને શારીરિક નથી સ્થળાંતર છે. શા માટે?
કારણ કે અમે માત્ર કડી થયેલ યાદી છે, જે જાણે છે અહીં કર્યું આ ગાંઠો રીતે છે હતા?
બધા તમારે હોય છે બ્રેડ crumbs ખસેડો.
આસપાસ તીરો ખસેડો; તમે શારીરિક કોઈપણ માહિતી ફરતે ખસવાની નથી.
તેથી અમે અનિતા દાખલ કરો, કે જે કિસ્સામાં કરી શકે છે તરત. સતત સમય.
તેથી અમે સતત સમય લૂકઅપ, અને અનિતા જેવા કોઇક લગાવ્યા સતત સમય હોય છે.
પરંતુ દુનિયાના oversimplifying પ્રકારની.
જો અમે પાછળથી એલિસ શોધવા માંગો છો?
કેટલી પગલાંઓ કે જે લાગી રહ્યું છે?
[વિદ્યાર્થી જવાબ, દુર્બોધ]
બરાબર. એલિસ પહેલાં લોકો સંકળાયેલા યાદીમાં સંખ્યા.
જેથી તે તદ્દન સંપૂર્ણ નથી કારણ કે અમારા દશાંશ માહિતી માળખું, ફરીથી, આ વર્ટીકલ ઍક્સેસ છે
અને પછી તેને આ સંલગ્ન અટકી યાદીઓ છે - વાસ્તવમાં, તેના એક એરે એક દોરવા ન દો.
આ કડી થયેલ યાદી છે તે છે આ બોલ પર અટકી છે કે આ પ્રકારનાં થોડું કંઈક જુએ છે.
પરંતુ સમસ્યા છે જો એલિસ અને આદમ અને આ બધા અન્ય એક નામો
અપ ત્યાં વધુ અને વધુ અંત,
શોધવામાં કોઈની અંત પગલાંઓ સમૂહ લઈ શકે છે,
bcause તમે સંલગ્ન યાદી પસાર હોય છે,
જે સુરેખ ઓપરેશન ધરાવે છે.
તેથી ખરેખર, ત્યારબાદ દાખલ સમય આખરે (એન) ઓ, જ્યાં n યાદીમાં સંખ્યાબંધ તત્વો છે.
દ્વારા વિભાજી, ચાલો આપખુદ તે મીટર, જ્યાં મીટર સંલગ્ન યાદીઓ સંખ્યા છે કૉલ
કે અમે આ વર્ટીકલ ધરી માં હોય છે.
અન્ય શબ્દોમાં, જો આપણે ખરેખર નામો ની ગણવેશ વિતરણ ધારે,
તદ્દન અવાસ્તવિક. ત્યાં દેખીતી રીતે બીજાઓ કરતાં કેટલાક અક્ષરોના વધુ છે.
>> પરંતુ જો આપણે થોડો સમાન વિતરણ માટે ધારે,
અને અમે કુલ લોકો, અને એમ કુલ સાંકળો n છે
અમને ઉપલબ્ધ છે, તો પછી આ સાંકળો દરેક લંબાઈ
એકદમ સરળ કુલ, એન સાંકળો સંખ્યા દ્વારા વિભાજી પ્રયત્ન રહ્યું છે.
તેથી n / એમ. પરંતુ અહીં જ્યાં અમે તમામ ગાણિતિક હોંશિયાર હોઈ શકે છે.
મીટર સતત હોય છે, કારણ કે ત્યાં આ એક નિશ્ચિત સંખ્યા છે.
તમે શરૂઆતમાં તમારું એરે જાહેર જઈ રહ્યાં છો,
અને અમે ઊભા ધરી માપ બદલવાની નથી. વ્યાખ્યા દ્વારા, કે જે સુધારાઈ રહે.
તે માત્ર ત્યારે જ આડી ધરી છે, તેથી બોલે છે, કે બદલાતી છે.
તેથી ટેકનિકલી, આ સતત છે. હવે તેથી, દાખલ સમય
ખૂબ ખૂબ ઓ (એન) છે.
જેથી તે બધા વધુ સારું ન લાગે નથી.
પરંતુ સત્ય શું અહીં? વેલ, આ બધા સમય, અઠવાડિયા માટે,
અમે કહેતા થઈ ઓ (n ²) હતું. (એન) ઓ, 2 x n ચોરસ - n એ, 2 દ્વારા વિભાજી. . . ech.
તે માત્ર n ચોરસ છે. પરંતુ હવે તો, સત્ર આ ભાગ માં,
અમે વાસ્તવિક દુનિયા વિશે ફરી વાત શરૂ કરી શકો છો.
એન્ડ એન m / સંપૂર્ણપણે માત્ર એકલા n કરતા ઝડપી છે.
જો તમે એક હજાર નામો હોય છે, અને તમે તેમને ઘણા buckets માં વિભાજન
જેથી તમે આ સાંકળો દરેક માત્ર દસ નામો હોય છે,
સંપૂર્ણપણે દસ વસ્તુઓ શોધ માટે એક હજાર વસ્તુઓ કરતાં ઝડપી પ્રયત્ન રહ્યું છે.
અને તેથી એક આગામી સમસ્યા સેટ કરવા માટે તમે પડકાર રહ્યું છે
બરાબર છે કે જે વિશે વિચારવું તેમ છતાં, હા,
asymptotically અને ગાણિતિક, આ હજુ હમણાં જ રેખીય,
જે સામાન્ય રીતે sucks જ્યારે વસ્તુઓ શોધવા પ્રયાસ કરે છે.
વાસ્તવમાં, તે કરતા વધુ ઝડપી જ હશે
કારણ કે આ ભાજક છે.
અને તેથી ફરી આ મડાગાંઠ જ હશે
અને સિદ્ધાંત અને વાસ્તવિકતા વચ્ચે આ સંઘર્ષ,
અને એક knobs ના સત્ર આ બિંદુએ દેવાનો શરૂ કરશે
એક વાસ્તવિકતા વધુ છે અમે સૉર્ટ ની semster ઓવરને માટે તૈયાર કરવા માટે,
અમે વેબ પ્રોગ્રામિંગ દુનિયામાં દાખલ,
ખરેખર, જ્યાં કામગીરી માટે ગણતરી રહ્યું છે કારણ કે તમારા વપરાશકર્તાઓ જોઈ રહ્યા છે
માટે લાગે છે અને ગરીબ ડિઝાઇન નિર્ણયો પ્રશંસા કરવાનું શરૂ કરો.
>> તેથી તમે કેવી રીતે સંકળાયેલી અમલીકરણ વિશે જવા નથી - 31 તત્વો સાથે હેશ ટેબલ?
અને અગાઉના ઉદાહરણ જન્મદિવસ વિશે આપખુદ હતો.
જો કોઈ જાન્યુઆરી 1 અથવા 1 ફેબ્રુઆરી જન્મદિવસ છે, અમે તેમને આ ડોલમાં મૂકીશું.
જો તે જાન્યુઆરી 2, 2 ફેબ્રુઆરી, માર્ચ 2 છે, ત્યારે અમે તેમને આ ડોલમાં મૂકીશું.
કે શા માટે તે 31 હતી. તમે હેશ કોષ્ટક કેવી રીતે જાહેર કરી શકું?
તે ખૂબ સરળ હોઈ શકે છે, નોડ * ટેબલ મારા તે માટે મનસ્વી નામ છે, [31] છે.
આ મને આપે ગાંઠો 31 પોઇન્ટર,
અને જે મને કડી થયેલ લિસ્ટ 31 પોઇંટરો માટે પરવાનગી આપે છે
પણ જો તે સાંકળો શરૂઆતમાં NULL છે.
મારે શું કરવું કરવા માંગો છો જો હું સંગ્રહવા માંગો છો "બોબ", "ચાર્લી" "એલિસ"?
વેલ, અમે એક માળખું તે વસ્તુઓ લપેટી જરૂર
કારણ કે અમે એલિસ બોબ માટે નિર્દેશ માટે, ચાર્લી માટે નિર્દેશ, અને તેથી આગળ. જરૂર
અમે હમણાં જ નામો એકલા નથી શકે છે, તેથી હું એક નવા નોડ અહીં કહેવાય માળખું બનાવી શકે છે.
>> એક વાસ્તવિક નોડ શું છે? આ નવી કડી થયેલ યાદીમાં નોડ શું છે?
પ્રથમ વસ્તુ, શબ્દ ઓળખાય છે, જે વ્યક્તિ નામ માટે છે.
LENGTH, કદાચ, એક માનવ નામ મહત્તમ લંબાઈ સંલગ્ન,
ગમે તે, 20, 30, ઉન્મત્ત ખૂણે કિસ્સાઓમાં 40 અક્ષરો,
અને +1 શું છે? તે માત્ર વધારાની NULL અક્ષર 0 \ છે.
તેથી આ નોડ પોતાની અંદર "કંઈક" રેપિંગ કરવામાં આવે છે,
પરંતુ તે પણ એક આગામી કહેવાય નિર્દેશક જાહેર
તેથી અમે બોબ માટે એલિસ ચાર્લી માટે સાંકળ અને તેથી આગળ કરી શકો છો જે.
NULL પ્રયત્ન શકે છે પરંતુ નથી હોવું જરૂરી નથી.
આ હેશ ટેબલો પર કોઈપણ પ્રશ્ન છે? યાહ?
[વિદ્યાર્થી પ્રશ્ન પૂછવા, દુર્બોધ] હારમાળા - સારો પ્રશ્ન.
એક જગ્યાએ માત્ર કોલસો બનાવો * એરે આ ઘરનાં પરચૂરણ કામો શબ્દ શા માટે છે?
આ મુનસફી ઉદાહરણમાં, હું આશરો નથી માંગતા હતા
મૂળ નામો દરેક માટે malloc છે.
હું શબ્દમાળા માટે મેમરી મહત્તમ રકમ જાહેર કરવા માગે છે
જેથી હું માળખામાં નકલ એલિસ 0 \ અને ન malloc અને મફત અને જેવા સાથે કામ કરી શકે છે.
પરંતુ હું આ કરી જો હું વધુ જગ્યા ઉપયોગ સભાન બનવા ઇચ્છે શકે છે. પ્રશ્ન સારું.
તેથી આપણે આ દૂર સામાન્યીકરણ પ્રયાસ
અને માહિતી બંધારણો પર આજે બાકીની વધુ સામાન્ય ફોકસ
અને અન્ય સમસ્યાઓ કે અમે એ જ ફંડામેન્ટલ્સ મદદથી હલ કરી શકો છો
પણ માહિતી માળખાં છતાં તેમને પોતાને વિગતો અલગ હોઈ શકે છે.
>> તેથી તે કોમ્પ્યુટર વિજ્ઞાન બહાર વળે છે, વૃક્ષો ખૂબ સામાન્ય છે.
અને તમે એક વૃક્ષ જેવું એક પરિવાર વૃક્ષ જેવી લાગે શકે છે,
જ્યાં ત્યાં કેટલાક મૂળ, કેટલાક matriarch અથવા પૂર્વજ છે,
દાદી અથવા grandpa અથવા પહેલાંની બેક,
જે નીચે મમ્મીનું અને પિતા અથવા વિવિધ ભાઇ અથવા ગમે છે.
તેથી એક વૃક્ષ માળખું ગાંઠો હોય છે અને તે બાળકો હોય છે,
સામાન્ય રીતે દરેક નોડ માટે 0 અથવા વધુ બાળકો.
અને કલકલ કેટલાક કે જે તમે આ અહીં ચિત્રમાં જુઓ
છે થોડું ધાર પર અથવા બાળકો grandkids કોઈપણ
જે કોઈ તેમને નીકળતી તીર છે,
તે કહેવાતા પાંદડા, અને અંદરના પર કોઈને છે
આંતરિક નોડ છે; તમે તેને તે રેખાઓ કંઈપણ કહી શકો છો.
પરંતુ આ માળખું ખૂબ સામાન્ય હોય છે. આ એક થોડો મનસ્વી છે.
અમે ડાબી પર એક બાળક છે, તો અમે જમણી બાજુ પર ત્રણ બાળકો હોય,
તળિયે બે બાળકોને છોડી ગયા.
તેથી અમે જુદા જુદા કદના વૃક્ષો હોય શકે છે, પરંતુ જો અમે વસ્તુઓ પ્રમાણિત શરૂ કરવા માટે,
અને તમે એક અગાઉની ટૂંકા માંથી દ્વિસંગી શોધ પર પેટ્રિક વિડિઓ આ યાદ શકે છે
ઑનલાઇન, દ્વિસંગી શોધ કરવા માટે એક એરે સાથે અમલ કરી શકાય નથી
એક બ્લેકબોર્ડ પર અથવા કાગળ ટુકડાઓ.
ધારો કે તમે વધુ વ્યવહારદક્ષ માહિતી માળખું તમારા નંબરો સ્ટોર કરવા માંગતા હતા.
તમે આ જેવા વૃક્ષ બનાવી શક્યા.
તમે એક સી જાહેર નોડ છે, અને શકે કે નોડ તે અંદર ઓછામાં ઓછા બે તત્વો હોય શકે છે.
એક નંબર તમે સંગ્રહવા માંગો છો, અને અન્ય છે - અને સાથે સાથે, અમે એક વધુ જરૂર છે.
અન્ય તેના બાળકો છે.
તેથી અહીં અન્ય માહિતી માળખું છે. આ જ સમયે, ગાંઠ નંબર સ્ટોર તરીકે વ્યાખ્યાયિત થયેલ છે n
અને પછી બે પોઇંટરો; ડાબી અને જમણી બાળક બાળક.
અને તેઓ આર્બીટરી નથી. શું આ વૃક્ષ વિશે રસપ્રદ છે?
>> કેવી રીતે અમે આ નાખ્યો કર્યું છે બહાર અથવા કેવી રીતે પેટ્રિક તેના વિડિઓ બહાર નાખ્યો માં પેટર્ન શું છે?
તે પ્રકારની છે સ્પષ્ટ કે ત્યાં અમુક અહીં રહ્યું સોર્ટિંગ છે,
પરંતુ સરળ નિયમ શું છે? યાહ?
[વિદ્યાર્થી જવાબ, દુર્બોધ]
પરફેક્ટ. જો તમે આ અંતે ઝબકવું, તો તમે ડાબી બાજુ નાના નંબરો જોવા માટે,
ડાબી બાજુ પર મોટી સંખ્યામાં છે, પરંતુ તે દરેક નોડ માટે સાચું છે.
દરેક નોડ માટે, તેના ડાબા બાળક તે કરતાં ઓછી, અને તેની યોગ્ય બાળક તે કરતાં વધારે હતો.
હવે એનો અર્થ એ થાય શું છે જો હું કહેવા માટે, 44 નંબર માટે આ માહિતી માળખું શોધવા માંગો છો,
હું રુટ શરૂ આ વધુ જટિલ માહિતી માળખાં હવે બધા સાથે કારણ કે છે,
અમે ફક્ત એક વસ્તુ માટે નિર્દેશક હોય, તો શરૂઆતમાં.
અને આ કિસ્સામાં, શરૂઆતમાં મૂળ છે. તે ડાબી ઓવરને નથી,
આ માળખું રુટ છે. તેથી હું જોઈ અહીં 55, અને હું 44 શોધી રહ્યો છું.
જે દિશામાં હું જવા માંગો છો?
વેલ, હું ડાબી પર જાઓ કરવા માંગો છો, કારણ કે દેખીતી રીતે, યોગ્ય કરવા માટે ખૂબ મોટી હશે છે.
તેથી અહીં નોટિસ, તમે કલ્પનાત્મક અડધા માં વૃક્ષ કકડો જેવું છો
કારણ કે તમે બાજુ જમણી બાજુ ક્યારેય રહ્યા છીએ.
તેથી હવે હું 55 થી 33 માટે જાઓ. તે ખૂબ સંખ્યાબંધ નાના છે.
હું 44 શોધી રહ્યો છું, પરંતુ હવે મને ખબર છે જો 44 આ વૃક્ષ છે, હું ચોક્કસપણે અધિકાર જઈ શકો છો.
તેથી ફરી, હું અડધી માં વૃક્ષ કાપણી છું.
તે ખરેખર ખૂબ ફોન બુકમાં માટે સરળ સમાન છે.
તે સમાન અમે શું બ્લેકબોર્ડ પર કાગળો સાથે હતી,
પરંતુ તે વધુ વ્યવહારદક્ષ બંધારણ છે કે અમને વાસ્તવમાં આવું કરવા માટે પરવાનગી આપે છે
આ વિભાજિત અને ગાણિતીક ડિઝાઇન દ્વારા જીતી,
અને હકીકતમાં, આ જેવા માળખું સરકાઉ - દેખીતી ભૂલ માટે માફી (માગવી તે).
આ જેવી માળખું સરકાઉ, જ્યાં તે માત્ર "આ રીતે જવું અથવા તે માર્ગ જાય છે,"
કે તમામ કોડ કે જે પ્રથમ તમારું મન વલણ જ્યારે તે વિભાગમાં અમલીકરણ અર્થ થાય છે
અથવા ઘરે તે મારફતે વૉકિંગ, દ્વિસંગી શોધ માટે, રિકર્ઝન અથવા પુનરાવૃત્તિ વાપરી રહ્યા હોય,
તે જે ગળામાં એક પીડા છે. મધ્યમ તત્વ શોધો, પછી તમારા rounding અથવા નીચે કામ કરે છે.
>> આ માટે એક સૌંદર્ય છે કારણ કે અમે હવે રિકર્ઝન ફરી ઉપયોગ કરી શકો છો,
પરંતુ ઘણી વધુ સ્વચ્છ. ખરેખર, જો તમે 55 નંબર પર છો અને તમે 44 શોધવા માંગો છો,
તમે જાઓ આ કિસ્સામાં બાકી છે, પછી તમે શું કરી શકું? તમે ચોક્કસ જ અલ્ગોરિધમનો ચલાવો.
તમે નોડ મૂલ્ય તપાસો, પછી તમે ડાબે અથવા જમણે જાઓ.
પછી તમારે નોડ કિંમત ચકાસવા માટે, ડાબે અથવા જમણે જાઓ.
આ સંપૂર્ણપણે રિકર્ઝન માટે અનુકૂળ છે.
તેથી ભલે ભૂતકાળમાં અમે કેટલીક એકદમ મનસ્વી રિકર્ઝન સંડોવતા ઉદાહરણો કર્યું છે
કે ફરી યાદ આવવું હોવું માહિતી stuctures સાથે જરૂર ન હતી,
ખાસ કરીને વૃક્ષો, તે સમસ્યા લેવાના આ વિચાર એક સંપૂર્ણ એપ્લિકેશન છે,
તે સંકોચાઇ, અને પછી એ જ પ્રકાર છે, પરંતુ નાના કાર્યક્રમ, ઉકેલ.
>> તેથી ત્યાં બીજી માહિતી બંધારણ છે કે અમે દાખલ કરી શકો છો.
આ એક પ્રથમ ભેદી જોવા નજરમાં રચાયેલ છે, પરંતુ આ એક આશ્ચર્યજનક છે.
તેથી આ એક માહિતી trie, trie છે, કે જે શબ્દ પુનઃપ્રાપ્તિ ઉતરી આવે છે માળખું છે,
જે ફરીથી પ્રયાસ કરો-Val ઉચ્ચાર થતો નથી, પરંતુ કે દુનિયા શું આ બાબતો કહે છે. પ્રયત્ન કરે છે. ટી-r-i-ઈ.
તે અમુક પ્રકારની એક વૃક્ષ માળખું છે, પરંતુ trie માં ગાંઠો દરેક
શું હોય તેવું લાગે છે? અને આ એક બીટ ભ્રામક છે કારણ કે તે સંક્ષિપ્ત પ્રકારની છે.
પરંતુ લાગે છે કે આ trie દરેક નોડ ખરેખર એક વ્યૂહરચના છે.
અને આમ છતાં આ રેખાકૃતિ લેખક નથી તે દર્શાવે છે,
આ કિસ્સામાં, આ trie એ માહિતી બંધારણ હેતુ જેના જીવન માં શબ્દો સ્ટોર છે
એક-l-i-c-ઈ અથવા B-o-બો જેવા હોય છે.
અને માર્ગ કે જેમાં આ માહિતી સ્ટોર્સ એલિસ અને બોબ અને ચાર્લી અને અનિતા અને તેથી આગળ
છે તે એરે ઉપયોગ કરે છે જેમાં એક trie એલિસ ઇન સંગ્રહ,
અમે રુટ નોડ કે જે એરે જેવી લાગે શરૂ થાય છે,
અને તે લઘુલિપિ નોટેશનમાં લખવામાં આવ્યું છે.
લેખક abcdefg અવગણવામાં કારણ કે ત્યાં સાથે કોઈ નામો હતા.
તેઓ માત્ર એમ અને અને પી ટી દર્શાવ્યું હતું, પરંતુ આ કિસ્સામાં,
ચાલો કેટલાક નામો છે કે અહીં એલિસ અને બોબ અને ચાર્લી દૂર ચાલ્યા જાય.
મેક્સવેલ આ ડાયાગ્રામમાં ખરેખર છે.
આમ કેવી રીતે લેખક સ્ટોર હતી એમ એક-x-વાઇડ ઈ-l-l?
તે અથવા તેણી રુટ નોડ શરૂ, અને ગયા [એમ], જેથી 13 આશરે, એરે માં 13 મી સ્થાન.
ત્યાંથી પછી, ત્યાં એક નિર્દેશક છે.
એક અન્ય એરે માટે અગ્રણી નિર્દેશક.
ત્યાં ના લેખક એક સ્થાન પર તે એરે માં અનુક્રમિત છે, ટોચ ડાબી બાજુએ ત્યાં ચિત્રિત,
અને પછી તે અથવા તેણીએ અન્ય એરે કે નિર્દેશક અનુસર્યું હોય,
અને સ્થાન એક્સ ખાતે નિર્દેશક ગયા
પછી આગળની એરે સ્થાન ડબલ્યુ, ઇ, એલ, એલ, અને તેથી આગળ છે,
અને છેલ્લે, ચાલો ખરેખર આ એક ચિત્ર મૂકવામાં પ્રયાસ કરો.
કોડ જેમ નોડ દેખાવ શું કરે છે?
એક trie એક નોડ વધુ ગાંઠો પોઇંટરો ઝાકઝમાળ સમાવે છે.
પરંતુ ત્યાં પણ બુલિયન કિંમત કેટલાક પ્રકારની આ અમલીકરણ, ઓછામાં ઓછું હોવું મળ્યું છે.
હું તેને is_word કૉલ થાય છે. શા માટે?
કારણ કે જ્યારે તમે મેક્સવેલ દાખલ કરી રહ્યાં છો, તમે નથી કરી રહ્યાં છો દાખલ
આ માહિતી માળખામાં કંઈપણ.
તમે એમ ન લખવાનું તમે એક્સ નથી લખી રહ્યાં રહ્યાં છો
બધા તમે કરી રહ્યા પોઇંટરો પગલે છે.
આ નિર્દેશક કે એમ, પછી નિર્દેશક કે એક પ્રતિનિધિત્વ દર્શાવે છે,
પછી નિર્દેશક કે એક્સ, પછી ડબલ્યુ, ઇ, એલ, એલ રજૂ કરે છે,
પરંતુ તમે ઓવરને અંતે જરૂર શું જાય છે, તપાસ જેવું છે, હું આ સ્થાન પર પહોંચ્યા છો.
ત્યાં એક શબ્દ કે માહિતી માળખું અહીં અંત થાય હતું.
>> તેથી શું trie ખરેખર ભરવામાં આવે છે અને લેખક માટે પ્રતિનિધિત્વ પસંદ કર્યું
થોડું ત્રિકોણ સાથે આ terminuses.
આ માત્ર અર્થ એ છે કે હકીકત આ ત્રિકોણ છે, સાચું આ બુલિયન કિંમત
અર્થ છે જો તમે વૃક્ષ પાછળની જાઓ,
કે જે મેક્સવેલ આ છે નામવાળી શબ્દ અર્થ છે.
પરંતુ હમણાં પૂરતું શબ્દ foo,
આ વૃક્ષ નથી, તો હું રુટ નોડ પર ટોચ પર અહીં શરૂ કારણ કે,
ત્યાં કોઈ એફ નિર્દેશક, કોઈ ઓ નિર્દેશક, કોઈ ઓ નિર્દેશક છે. Foo આ શબ્દકોશમાં એક નામ નથી.
પરંતુ તેનાથી વિપરીત, ટ્યુરિંગ, ટી યુ-r-i-n-ત. ફરીથી, હું ટી અથવા યુ અથવા r અથવા i અથવા n અથવા ત ન સંગ્રહિત નહોતો.
પરંતુ હું આ માહિતી માળખું સ્ટોર સાચું નીચે આ નોડ અહીં માર્ગ ની કિંમત કર્યું - આ વૃક્ષ
સાચું માટે is_word આ બુલિયન કિંમત સુયોજિત કરીને.
તેથી trie આ ખૂબ જ રસપ્રદ મેટા માળખું પ્રકારની છે,
જ્યાં તમે ખરેખર આ શબ્દો પોતે સ્ટોર કરી રહ્યાં છો શબ્દકોશ આ પ્રકારની છે.
સ્પષ્ટ હોય છે, તમે માત્ર હા અથવા ના સ્ટોર કરી રહ્યાં છો, ત્યાં એક શબ્દ છે જે અહીં થાય છે.
>> હવે સૂચિતાર્થ શું છે?
જો તમે શબ્દકોશમાં 150,000 શબ્દો હોય કે જે તમે મેમરીમાં સ્ટોર કરવાનો પ્રયાસ કરી રહ્યાં છો
એક કડી થયેલ યાદી કંઈક વાપરી રહ્યા હોય,
તમે તમારા કડી થયેલ યાદીમાં 150,000 નોડ્સ ધરાવતા નથી જતા હોય છે.
અને એક તે શબ્દો મૂળાક્ષરોની શોધવામાં ઓ સમય (એન) લઇ શકે છે.
લીનિયર સમય. પરંતુ trie ના અહીં કિસ્સામાં,
એક શબ્દ શોધવાની ચાલી રહેલ સમય શું છે?
તેને સુંદરતા વળે અહીં એ છે કે જો તમે આ શબ્દકોશ પહેલેથી જ 149.999 શબ્દો છે,
કારણ કે આ માહિતી બંધારણ સાથે અમલ,
કેટલી સમયે તે શોધવા માટે અથવા વધુ એક વ્યક્તિ સામેલ છે કે જે માં, એલિસને જેવા એલિસ, લે!
વેલ, તે માત્ર 5 છે, કદાચ પાછળનો અક્ષર માટે 6 પગલાંઓ.
કારણ કે માળખામાં અન્ય નામોની presense
એલિસ દાખલ ના રીતે મળી નથી.
વધુમાં, એલિસ શોધવામાં એક વખત આ શબ્દકોશમાં 150,000 શબ્દો છે
નથી બધા વિચાર નથી એલિસ શોધવામાં તમારી રીતે,
કારણ કે એલિસ છે. . . . . અહીં, કારણ કે હું એક બુલિયન કિંમત મળી નથી.
અને જો ત્યાં કોઈ બુલિયન સાચું હોય, તો પછી એલિસ છે શબ્દો અને આ માહિતી માળખું નથી.
અન્ય શબ્દોમાં, વસ્તુઓ શોધવામાં અને દાખલ આ નવા માં વસ્તુઓ ચાલી રહેલ સમય
trie ઓફ માહિતી માળખું ઓ છે - તે નથી n છે.
કારણ કે 150,000 લોકો presense એલિસ પર કોઈ અસર થતી નથી, એવું લાગે છે.
તેથી આપણે તે k, જ્યાં k ઇંગલિશ એક શબ્દ મહત્તમ લંબાઈ છે કૉલ
જે સામાન્ય રીતે કોઈ વધુ અક્ષરો 20-કંઈક કરતાં.
તેથી k સતત છે. હોલી ગ્રેઇલનો તેથી અમે હવે મળી છે એવું લાગે છે
એક trie, દાખલ માટે સતત સમય કે નાશ માટે લુકઅપો માટે, છે.
કારણ કે માળખું પહેલેથી જ વસ્તુઓ સંખ્યા,
જે પણ શારીરિક ત્યાં નથી. ફરીથી, તેઓ માત્ર સૉર્ટ કરી રહ્યા છો બંધ ચકાસાયેલ, હા અથવા ના,
તેના ભાવિ ચાલી સમય પર કોઇ અસર ધરાવે છે.
>> પરંતુ એક કેચ પ્રયત્ન મળ્યું છે, અન્યથા અમે ખૂબ જ સમય ન પામે કરશે
આ તમામ અન્ય માહિતી માળખા પર માત્ર આખરે ગુપ્ત એક કે આશ્ચર્યજનક છે મેળવવા માટે.
તેથી શું કિંમત અમે આ મહત્તા અહીં હાંસલ ભરવા આવે છે? જગ્યા.
આ બાબત વ્યાપક છે. અને કારણ કે લેખક
નહોતી અહીં હાજર નથી તે નોટિસ, આ વસ્તુઓ છે કે જે એરે આના જેવો તમામ કે,
તેમણે વૃક્ષ બાકીના માટે, trie બાકીના ન દોરવા નહોતી,
કારણ કે તેઓ ફક્ત વાર્તા સાથે સંબંધિત નથી.
પરંતુ આ ગાંઠો બધી વ્યાપક સુપર છે, અને વૃક્ષ દરેક નોડ અપ લે છે
26 અથવા વાસ્તવમાં, 27 અક્ષરો કારણ કે આ કિસ્સામાં હું એપોસ્ટ્રોફી માટે જગ્યા સહિત હતી હોઈ શકે છે
તેથી અમે apostrophized શબ્દો હોઇ શકે છે.
આ કિસ્સામાં, આ વિશાળ એરે છે. તેથી ભલે તેઓ picutured કરી રહ્યાં છો,
આ અપ RAM ની એક વ્યાપક જથ્થો લે છે.
જે દંડ હોઇ શકે છે, આધુનિક હાર્ડવેર especilly શકે છે,
પણ જે સંતુલિત છે. અમે વધુ જગ્યા ખર્ચીને ઓછો સમય મળે છે.
તેથી જ્યાં આ તમામ રહ્યું છે?
વેલ, જે દો - માતાનો અહીં જોવા દો.
માતાનો આ વ્યક્તિ માટે જમ્પ અહીં દો.
>> તે માને છે કે નહિં, કારણ કે ખૂબ મજા તરીકે સી કેટલાક સમય માટે કરવામાં આવી છે, હવે,
અમે સત્ર જ્યાં તેને વધુ આધુનિક વસ્તુઓ પર સંક્રમિત કરવા સમય માં બિંદુ સુધી પહોંચી રહ્યાં છો.
ઊંચા સ્તર પર વસ્તુઓ. અને પણ અઠવાડિયા ના આગળના દંપતિ માટે છતાં
અમે હજુ જાતને પોઇંટરો અને મેમરી વ્યવસ્થાપનની વિશ્વમાં નિમજ્જન ચાલુ રાખીશું
કે આરામ કે જેની સાથે આપણે પછી પર બિલ્ડ કરી શકો છો,
ઓવરને અંતે રમત છે રજૂઆત, કટાક્ષરૂપે આ ભાષામાં નથી.
અમે, 10 એચટીએમએલ વિશે વાત મિનિટ જેવી ખર્ચવા પડશે.
બધા HTML છે એક માર્કઅપ ભાષા છે, અને એક માર્કઅપ ભાષા શું છે
ઓપન કૌંસ અને બંધ કૌંસ છે કે કહેવું 'આ છૂટ લેવી' આ શ્રેણી છે
'બનાવવા આ ત્રાંસા', 'આ કેન્દ્રિત બનાવે છે.'
તે બધા બુદ્ધિપૂર્વક રસપ્રદ, નથી પરંતુ તે ઉપયોગી સુપર છે.
અને તે ચોક્કસપણે છે સર્વવ્યાપી આ દિવસોમાં.
પરંતુ શું HTML ની ​​વિશ્વ વિશે શક્તિશાળી છે, અને વેબ પ્રોગ્રામિંગ વધુ સામાન્ય રીતે,
છે ગતિશીલ વસ્તુઓ મકાન; PHP અથવા Python અથવા રૂબી અથવા જાવા અથવા C # જેવી ભાષાઓમાં કોડ લખ્યું.
ખરેખર, ગમે પસંદગીના તમારી ભાષા છે, અને HTML ગતિશીલ બનાવવા.
સીએસએસ ગતિશીલ કહેવાય કંઈક પેદા.
કેસ્કેડીંગ સ્ટાઇલ શીટ્સ, જે સૌંદર્ય શાસ્ત્ર વિષે પણ છે.
અને તેથી આજે ભલે, જો હું પરિચિત Google.com જેવા કેટલાક વેબસાઇટ પર જાઓ,
અને હું જોવા, વિકાસકર્તા, દૃશ્ય સ્ત્રોત છે, જે કદાચ તમે પહેલાં કર્યું જાઓ,
પરંતુ સ્ત્રોત જોઈ જવાનું, આ સામગ્રી કદાચ ખૂબ ભેદી જુએ છે.
પરંતુ આ અંતર્ગત કોડ કે Google.com અમલીકરણ છે.
આ બોલ પર ઓવરને. અને ખરેખર આ તમામ રુંવાટીવાળું સૌંદર્ય શાસ્ત્ર સામગ્રી છે.
આ અહીં CSS છે અપ. જો હું સ્ક્રોલિંગને નીચે રાખવા અમે કેટલીક સામગ્રી રંગ કોડેડ મળશે.
આ HTML છે. Google ની કોડ વાસણ જેવી લાગે છે, પરંતુ જો હું ખરેખર એક અલગ વિન્ડોમાં ખોલો,
અમે આ માટે કેટલાક માળખું જોઈ શકો છો.
જો હું આ અપ ખોલવા માટે, અહીં નોટિસ, તે થોડી વધુ વાંચનીય છે.
અમે લાંબા સમય અગાઉ આ ટૅગને જોઈ રહ્યા છીએ, [શબ્દ] ટૅગ છે,
HTML, માથું, શરીર, div, સ્ક્રિપ્ટ, લખાણ વિસ્તારમાં, span, કેન્દ્રી, DIV.
અને આ પણ પ્રથમ નજરમાં છે ભેદી દેખાવ ઓફ સૉર્ટ,
પરંતુ આ વાસણ તમામ કેટલીક ચોક્કસ પ્રકારની પેટર્ન, અને પુનરાવર્તિત પેટર્ન અનુસરે છે,
જેથી કરીને અમે મૂળભૂત વિચાર નીચે, તમે આ જેવી કોડ લખી કરવાનો પ્રયત્ન કરીશું
અને પછી હજુ સુધી બીજી ભાષા, જાવાસ્ક્રીપ્ટ કહેવાય મદદથી આ જેવી કોડ ચાલાકી.
અને જાવાસ્ક્રિપ્ટ એક બ્રાઉઝર એક ભાષા કે અંદર ચલાવે છે
આજે કે અમે જે કોર્સમાં શોપિંગ સાધન કે Google નકશાઓ વાપરે માટે હાર્વર્ડ અભ્યાસક્રમો પર ઉપયોગ
તમને dynamism સંપૂર્ણ ઝૂડો આપો, ફેસબુક તમે આપે ઇન્સ્ટન્ટ સ્થિતિ અપડેટ્સ બતાવે છે,
Twitter પર તે વાપરે તમે ટ્વીટ્સ તત્કાલ દર્શાવે છે.
આ તમામ અમે જાતને નિમજ્જન સાઇન શરૂ થશે
પરંતુ ત્યાં વિચાર, અમે ઇન્ટરનેટ વિશે થોડું કંઈક સમજી જરૂર છે.
આ અહીં ક્લિપ માત્ર એક લાંબા મિનિટ છે, અને ચાલો ધારે હવે માટે આ હકીકત છે,
કેવી રીતે ઈન્ટરનેટ શું આવવા વિશે માટે સતામણી કરનાર તરીકે કામ કરે છે. હું તમને આપી "વોરિયર ઓફ ધ નેટ."
>> [♫ ધીમો સમૂહગીત સંગીત ♫]
[પુરૂષ વર્ણનકાર] તેમણે એક સંદેશો હતો.
એ પ્રોટોકોલ છે તેના બધા પોતાની સાથે.
[♫ ઝડપી ઇલેક્ટ્રોનિક સંગીત ♫]
તેમણે ઠંડી ફાયરવોલ એક વિશ્વ આવ્યા હતા, રાઉટર્સ uncaring,
અને અત્યાર સુધી મૃત્યુ કરતાં વધુ ખરાબ જોખમો.
તેમણે ઝડપી છે. તેમણે મજબૂત છે. તેમણે TCP / IP છે, અને તે તમારું સરનામું મળ્યું છે.
વોરિયર ઓફ ધ નેટ.
[Malan] આગળ સપ્તાહ, પછી. ઇન્ટરનેટ. વેબ પ્રોગ્રામિંગ. આ CS50 છે.
[CS50.TV]