Transcript for:
लिंक्ड लिस्ट में इन्सर्शन की प्रक्रिया

इंसर्शन की बात करेंगे यहाँ पर link list में, तो यहाँ पर जारा लिख देता हूँ insertion, तो यहाँ पर insertion in a link list, ठीक है, और link list में insertion किस तरह होता है, यह मैं आज आप लोग को बताऊंगा, देखो, यहाँ पर एक बात करना चाहूँगा, ठीक है, देखो, अगर आप लोगों पढ़ना पड़ेगा एक बार लेकिन ये insertion एक ऐसी चीज़ है जो कि आप एक बार link list आपको आगई तो आप ये खुद भी कर सकते हो मेरे कहने का क्या मतलब है मेरे कहने का मतलब ये है कि ये बात कि एक link list होती है यहाँ पर 8 है यहाँ पर एक pointer है ये दूसरे note को point कर रहा है और फिर मान लो यहाँ पर 9 है यहाँ पर एक दूसरा pointer है ये एक दूसरे note को point कर रहा है ये बात मैं आपको बताऊंगा तो आपको नहीं लगेगी लेकिन अभी जो हम करने जा रहे हैं वो simple एक तरह से C programming की problem समझ लो उसको ऐसी है यहाँ पर जो insertion, deletion ये सब आने वाला है, link list में, ये सब बहुत आसान है, तो यहाँ पर मैं क्या करूँगा, एक बड़ी link list पना लेता हूँ सबसे पहले, मान लो मैंने 7 बनाया यहाँ पर, और उसके बाद मैं यहाँ पर और आगे बढ़ा रहा हूँ, और फाइनली मान लो यह नल को पॉइंट कर रहे है, नल, ठी NU double L, अब मान लो कि मैं insert करना चाहता हूँ इस link list के अंदर, तो मैं तीन cases यहाँ पर consider करूँगा, तो case 1 मेरा क्या होगा, insert at, at the starting of the linked list, या insert at first बोलो, आप कुछ भी बोल सकते हो उसको, insert at the beginning लिख देता हूँ उसको, ठीक है, और इसके बाद एक दूसरा case हो सकता है आपका, case 2 जिसको मैं बोलूंगा, वो होगा, insert in between, ठीक है, और एक case 3 मैं यहाँ पर लिखूंगा, और case 3 यहाँ पर क्या होगा, insert at the end, यानि कि सबसे अंत में insert कर दो, और यह जो case 4 है यह थोड़ा सा interesting है, इसके बारे में मैं बात करूँगा, यह है insert, आफ्टर ठीक है और इनकी कॉम्प्लेक्सिटी की भी बात करेंगे इनसर्ट आफ्टर अनोड लिख देता हूं यहाँ पर इनसर्ट आफ्टर अनोड सबसे पहले इनसर्ट आट द बिगिनिंग को थोड़ा सही से समझाऊंगा ठीक है तो इनसर्ट आट द बिगिनिंग को स� नोड है मेरा ठीक है और इस नोड में एक एलिमेंट है वन और यह मैंने वालो नोड बना लिया यह स्ट्रक्चर है मेरा स्ट्रक्ट नोड का एक यह जिस तरह से हम लोगों ने बात की थी कि हमारा जो बन रहे हैं यह सारे नोड वह स्ट्रक्ट नोड टाइप टाइप के वेरिबल है तो यह एक स्ट्रक्ट नोट टाइप का वेरिबल है अब मुझे इसको स्टार्टिंग में फिट करना है अब मुझे लिंग लिस्ट का एक्सेस कैसे मिलता है मुझे लिंग लिस्ट का एक्सेस मिलता है हेड नोट की मदद से ठीक है एक्सेस मिलता है इस लिंग लिस्ट का हेड नोट पॉइंट कर रहा है पहले एलिमेंट को मैं चाहता हूं कि यह बन जाए क्या करना पड़ेगा आप खुद ही सोचो सबसे पहले तो मैं क्या करूंगा इसको लिंक कर दूंगा इससे कुछ इस तरह से ठीक है स्टेप वन तो मान लो यह मेरा पीटी आ रहा है अगर मान लो मैंने यह डाइनेमिक मेमोरी एलोकेशन के बनाया कुछ इस तरह से मैंने कुछ इस तरह से लिखा स्ट्रक नोट स्टार पीटी आर इस इक्वल टू और स्ट्रक नोट स्टार मलॉक और साइज ऑफ स्ट्रक नोट ठीक है मलॉक और यह तो आपको मैंने करा रखा है यार मैं मैं लिख रहा हूँ इसलिए just for completion size of struck node, ये तो आप कर लोगे, तो ये बन गया है dynamically हमने PTR बना लिया, मैं कहूँगा कि भाई जो PTR का next है, जो PTR का next है, उसको बराबर कर दो head के, ठीक है, तो क्या होगा, ये linkage बना दिया मैंने यहाँ पर, मैंने कहा कि इस PTR का जो next है, वो अब वहाँ point कर रहा है, जहाँ पर head point कर रहा है, और point करने का मतलब क्या है, कि address store कर रहा है, अगर इसका address, 2 है तो यहाँ पर value 2 है तब यह point कर रहा है इसको कि यह एक pointer है और pointer का काम क्या होता है address को store करना और जब वो किसी का address store करता है तो हम कहते हैं कि यह point कर रहा है उस node में point कर रहा है ठीक है यहाँ पर मैंने ptnx को head से point करा दिया अब एक और step जो मैं करूँगा मैं head को यहां से हटा के मैं head को यहां से हटाऊंगा और head को क्या करूँगा यहां point करा दूँगा मैं कहूँगा head अब बना दो इस वाले node को तो अगर मैं ऐसा करूँगा तो ये मैंने आपसे हटा दिया तो ये दो note था ये मैंने आपसे हटा दिया linkage हटा दिया यहां से मैंने और ये जो वाला note था मेरा नया जो PTR की मदद से मैंने dynamically allocate किया था मैंने कह दिया कि बाई जो head है मेरा वो अब हो जाए क्या वो हो जाए मेरा PTR को क्योंकि मैं मेरा जो है वह चेंज हो गया मैं कहूंगा अब अगर लिंग लिस्ट ट्रावर्स करोगे तो नया वाला है जो है वह यूज करके करना है डिकॉल अपडेट कर लो पहले यहां पॉइंट करता बैठ यहां पॉइंट कर रहा है ठीक है तो यह एड बिगिनि एलिमेंट जो है वो इंसर्ट हो चुका है लिस्ट के, अब हाँ मैंने इस एलिमेंट को नीचे बनाया है, आप यहाँ भी बना सकते हो, आप ब्लैक कलर से भी बना सकते हो एकी लाइन में, लेकिन यह लिंकेज एक बार इसको मिल गया है और हेड पॉइंटर यहाँ पर आ ग list के पहले element के तौर पे शामिल कर लिया तो हमारा case one हमने successfully done कर दिया आप लोगों से एक सवाल पूछना चाहूँगा time complexity क्या होगी इस चीज की देखो भाई time complexity का simple सा एक मतलब होता है कि भाई देखो अगर यहाँ पर 5 element थे तो कितना time लग रहा था और 5 लाक time complexity होती है यहाँ पर यार आप कितने भी element आगे आगे हो इसने एलिमेंट को देखा भी नहीं इसने अपना चुपचाप यहां पर ऑपरेशन किया और यहां पर अपने आपको अटैच कर लिया पहले वाले नोट से ठीक है तो टाइम कॉम्प्लेक्सिटी क्या होगी बिग वॉफ वन टाइम कॉम्प्लेक्सिटी लिए उतनी मेहनत 10 एलिमेंट के लिए उतनी मेहनत और 10 अरब एलिमेंट्स के लिए उतनी ही मेहनत लगेगी जितनी यहां नहीं करता तो हमने देखा इस टाइम कॉलिटी वाली लेसन में बेगो ऑफ वन गैस अगर आप लोगों ने अभी तक प्लेलिस्ट एक्सेस नहीं करिए डाइटर टॉप इस एलगॉरिथम्स की तो जरूर से कर लेना इसमें मैंने सारे वीडियोस से रिपोस्ट करता हूं यहां पर केस टू में आऊंगा इंसर्ट इन बिट्ट्वीन यह केस जो बहुत इंपोर्टेंट है इंसर्ट इन बिट्ट्वीन करने के लिए मुझे क्या करना पड़ेगा यह देख लेते हैं एक बार ठीक है तो यह चीज आप लोगों को एक बार क्लियर हो गई अब मैं यहाँ पर क्या करूँगा इरेजर लेकर इसको मिटा दूंगा यहाँ पर जरा सी सफाई कर लूँगा और यह सब मैं मिटा दूंगा हमारे लिए जो यह लिंग लिस्ट है को जिस तरह से देखती है और यहाँ पर मैं अपने हेड नोट को नोट जो है वह इंसर्ट करना मांगता है काम आगे इंसर्ट करना हमें किसी भी एक इंडेक्स पर हम इंसर्ट कर सकते हैं नोट को जैसे मान लो अगर मैं चाहता हूं कि यहां पर insert हो इधर insert हो तो मैं इसको index 1 बोल रहा हूं ठीक है not 0 मैं इसको index 1 बोलूंगा क्योंकि अगर हम array से compare करें तो यहाँ पर अगर मैं इसको 0, 1, 2, 3, 4 करो यहाँ पर मैं अगर यहाँ डाल दो एक node को तो वो 0, 1 करके index 1 पे आएगा इसको मान लो मैं 2 कर देता हूं इसको मैं 3 कर देता हूं इसको मैं 4 कर देता हूं इसको मान लो मैं इन में से कहीं पर एक node insert करना चाहता हूं मान लो यहाँ पर करना चाहता हूं node को insert ठीक है अगर मैं ऐसा कर देखा हूं कर रहा हूं अगर मैं नोट को इंसर्ट कर रहा हूं तो मुझे क्या करना पड़ेगा इंसर्ट एट इंडेक्स नाम का मैं एक फंक्शन लिख लूंगा और उसके अंदर मैं क्या करूंगा सबसे पहले मैं नोट बनाऊंगा मान लो मुझे यहां पर इंसर्ट करना है टू पर ठीक है सबसे पहले मैं क्या करूंगा नोट बनाऊंगा सबसे पहले नोट बनाऊंगा और यहां पर नोट बनाने के बाद मैं क्या करूंगा कि मैं यह कहूंगा कि भाई देखो ऐजा इसके अंदर एक एलिमेंट जो इसके अंदर डाटा है वह एक वन है कुछ भी हो सकता है दाट डिपेंड्स उसके बाद इसका जो next है उसको point करा दो यहाँ से ठीक है तो सबसे पहले मैं यहाँ पर क्या करूंगा मैं इसको मिटा देता हूं यहाँ पर मैं इसको मिटा देता हूं आप लोग जो है नोट्स तो ऐसे मैं दे दूंगा आप लोगों को लेकिन फिर भी अगर आप लिख लिखा रहे हो कहीं तो लिख लेना ठीक है इसको भी मैं मिटा देता हूं और मैं वापस से यहां पर पीटी आए मैं कहूंगा जो मेरा पीटी आए है उसके नेक्स्ट को कर दो अ मालो ये मेरा एक pointer चल ला है, मालो एक p pointer चल ला है मेरा, ठीक है, मैं आपर आके अपनी p pointer को रोग दूँगा, मैं कहूँगा जो ptr का next है उसको बराबर कर दो, p के next के, ठीक है, ऐसा करने से क्या होगा, ऐसा करने से मैंने ये linkage बढ़ाईएंगे, बना लिया यह linkage जो दिख रहा है ना आपको तो मैं अगर यहाँ पर इसको mark करूँ number 1 से तो मैं यह कहूँगा मैं नहीं कि number 1 वाला linkage यहाँ बनाया है यह step 1 हो गया उसके बाद मैं कहूँगा जो p का next है जो p का next है उसको मैं क्या करूँगा मैं उसको बरा कर दूंगा किसके मैं उसको बराबर कर दूंगा पीटी आर के मैं कहूंगा कि अब तो पीटी आर को पॉइंट करो यानी कि यह वाला जो लिंकेज था यह इस तरह से हो गया और यह लिंक जो है वह मैंने तोड़ दिया ठीक है यह लिंकेज करके इस तरह से हमने जोड़ दिया है, ठीक है, एक chain के form में हमने इसको जोड़ दिया है, I hope कि आप समझ गए होगे, किसी भी index पर मैं यहाँ पर insert कर सकता हूँ एक element को, ठीक है तो यह मैंने दो steps करी ठीक है अब यह दो steps तो मैंने कर दी लेकिन यहाँ पर जब मैं coding करूँगा इसकी तो मुझे एक और चीज करनी पड़ेगी मुझे एक pointer चलाना पड़ेगा p नाम का जो कि मैं यहाँ से start करता हुआ चलाऊंगा head के बराबर करूँगा p को और इसक अब इसकी complexity की बात करते हैं, insert in between की complexity की, इसकी complexity होगी, big O of n, ठीक है, क्योंकि मैं अगर इसकी worst case complexity की बात करूँ, तो आपको यहाँ पर insert करना पड़ सकता है, और आपको pointer को चलाना पड़ेगा यहाँ तक, ठीक है, तो इसकी worst case complexity क्या होगी, इसकी worst case complexity big O of n होगी, आप हर बार constant time में काम कर लोगे, लेकिन अच्छी चीजे ना हर बार नहीं होती हैं, हमेशा अत्ते lucky हम होते नहीं हैं जिन्दगी में, तो हम यहाँ पर इसलिए worst case complexity को ढूंढते हैं, हम कहते हैं बाई big O of n, big O of n है हमारी worst case complexity, insert in between की, तो insert in between जो function है, उसको एक हम index भी supply करेंगे, हम कहेंगे यार की जब यह insert हो जाए, 0, 1, 2 होनी चाहिए, तो यह जो number है जो मैं pass करूँगा अपने function को, 3 हो या 4 हो, element जो है वो insert हो जाएगा case four की बात करते है insert at the end में क्या करूँगा मैं एक p नाम का pointer चलाऊँगा यहाँ से मैं तोड़ी सी सफाई कर लेता हूँ यार तोड़ी सी सफाई ये note हटा देता हूँ मैंने यार कुछ जादा ही सफाई कर द ठीक है और यह काटा जो लगा रखा है मैंने इसको मुझे हटाना है मैं नहीं हटा पा रहा हूं इसको कोई बात नहीं काटा इनोर करना आप लोग ठीक है या फिर हम लोग काम करेंगे इसको ऐसे कर देंगे और फिर इसको बना लेते हैं तो यार कर दिया लो ठीक है अब यहां पर मैं क्या करूंगा कि मैं एड आंड ऑफ द लिंग लिस्ट एक नोट इंसर्ट करना चाहता no doubts, ठीक है, वो तो आपको पता ही है, उसके साथ सब मुझे क्या करना पड़ेगा, कि जैसे ही मैं अपने एक P नाम के pointer को, मैं यहाँ पर चला के ले आओ, जैसे ही यहाँ पर ले आओ, P को चला के, जब उसका P next null हो जाए, तो मैं P को चलाता रहूंगा आगे कि जो पी का next है वो हो जाए PTR के बरापर और PTR का जो next है वो null के बरापर हो जाए क्योंकि PTR जो है वो अब हमारा last node है तो यहाँ पर अगर मैंने बना लिया एक PTR नाम का node तो मैं सबसे पहले क्या कह रहा हूँ पी का next PTR हो जाए यानि कि इसका next क्या हो जाए null ना होके अब है यानि कि यह PTR जो मेरा है इसका next जो है यानि कि यह null हो जाए तो क्या होगा ऐसा करने से ऐसा करने से यह null को जो point करेगा तो यह आखरी element बन जाएगा और मैं अपनी link list के end में element को insert कर पाउँगा तो यह था insert at the end ठीक है I hope कि आप लोग समझ गए होंगे insert at the end को भी insert after a note को जाना समझते है insert at the end की worst case complexity भी go off end ठीक है बिग ओफ एन कॉम्पलेक्सिटी की हमेशा रहेगी, जो कि आपको एक pointer चलाना पड़ेगा यहाँ से, और आपको अंत नगलाना पड़ेगा, और उसकी साहिता से आप लोग insert at end की कॉम्पलेक्सिटी को calculate कर सकते हैं, insert after a node की बात करता हूँ अब यहाँ पर, insert after a node की, और insert after a node की अब बात करता हूँ, insert after a node की बात करूँगा अभी, देता हूँ और insert after a note क्या है देखो मान लो मुझे एक note का address मालूम है पहले से मुझे मालूम है उसका address यह है मालूम मुझे इसका address मालूम है इसको null कर देता हूँ यह null है यार इसको इस तरह से कर देता हूँ और वापस दूसरा कोई color का pen ले गए इस बार मैं क्या करूँगा आप लोगों को insert after a note की complexity बताऊंगा मान लो मेरे पास एक pointer given है जो की q है ठीक है यह pointer क्या है यह ये pointer क्यों है ये गिवेन है, ऐसा नहीं कि मैं यहाँ से चला के ला रहा हूँ पॉइंटर अपना, ना, मुझे गिवेन है वो, मैं ट्रैवर्स करता हुआ नहीं आ रहा हूँ, मुझे एक Q पॉइंटर गिवेन है, आपका यह Q पॉइंटर है, आपको इसके बाद इंसर्ट करना एक एलिमेंट, पहले मैं कहूँगा जो मेरा PTR का next है, उसको मैं point करा दूँगा किस से, Q के next से, मैं कहूँगा इसको Q के next से point करा दूँगा, तो यह यहाँ पर ऐसे point करेगा, और मैं कहूँगा जो Q का next है, है उसको बराबर कर दो किसके क्योंकि next को बराबर कर दो ptr के तो यह linkage कुछ इस तरह से आ गया तो यह linkage ऐसे हो गया और यह अब इसको point नहीं कर रहा तो यह linkage तोड़ दिया मैंने तो अब मैंने क्या किया यहाँ पर insert after a note कर दिया simple जी steps में देखो यहाँ पर q मेरे पास given था ताकि मैं जब आपका comment देखूं तो मैं देख लूं आपने किसका सवाल का जवाब दिया है I am waiting for your comment चलो बढ़िया, हो सकता है कुछ लोगों ने बिग ओ अफ एन बताया हो, ठीक है, कोई बात नहीं, मैं explain करूँगा यहाँ पर हूँ explain करने के लिए, अगर आपने बिग ओ अफ एन बताया, तो आपने कहाँगा कि यार ये element आखरी भी तो हो सकता है, तो बिग तो 50,000 बार चला रहे हो, ऐसा नहीं है, आपको एक बार ये pointer गिवन है, तो आपको सिर्फ इतना करना है, बस इतना, कोई pointer चला के नहीं लाना है आपको एंड की तरफ, तो ये constant time में हो जाएगा काम, ये चारो case बहुत important है, link list में insertion के, और ये पू की ये चीज आपको समझ में आ गई होगी मैं क्या करूँगा अगले वीडियो में आप लोगो को बताऊंगा कि किस तरह से हम लोग ये चारो केसेस को कोड कर सकते हैं हम लोग इनको कोड में देखेंगे चारो केसेस को और लिस्ट को कि क्या हमारे जो इंसर्शन हो रहे हैं और नहीं हो रहे हैं कोड करके बहुत बढ़ती है, और अगर data structure का course आपने access नहीं किया, तो उसको कर लेना, जितने भी लोग share कर रहे हैं, सब को tag कर रहा हूँ बाई, Instagram पे, कोई ऐसा नहीं है, जो शिकायत करते हैं, कि मैं मेरे को tag नहीं किया, सब को कर रहा है, मैंने tag है, एक को, tag नहीं किया, मैंने data structure को share किया, मुझे tag ही नहीं किया, आपने, bookmark करो, यहाँ click करके save करो, आप access करो, यहाँ नीचे description में दिया हुआ है लाइक करना बिल्कुल भी मत बोलना और अगर शेयर करोगे आप लोग तो बहुत हेल्प हो जाएगी मैं दिल से आप लोगों से बोल रहा हूँ प्लीज शेयर कर दो इस प्लेलिस्ट को मैं आप लोगों के लिए धमाकेदर वीडियो नोट्स के साथ और अच्छे learning experience के साथ आ