এই স্ল্যাশডট সাক্ষাত্কারে লিনাস টরভাল্ডস উদ্ধৃত হয়েছে:
আমি অনেক লোককে দেখেছি যারা "পূর্ব" এন্ট্রি ট্র্যাক করে এককভাবে সংযুক্ত তালিকার তালিকা মুছুন এবং তারপরে এন্ট্রি মুছতে, এমন কিছু করে
if (prev)
prev-> next = enter-> next;
অন্য
তালিকা_সামগ্রী = এন্ট্রি-> পরবর্তী;এবং যখনই আমি এর মতো কোড দেখি, আমি কেবল "এই ব্যক্তি পয়েন্টার বোঝে না" go এবং দুঃখজনকভাবে এটি খুব সাধারণ।
পয়েন্টার বোঝে এমন লোকেরা কেবল "এন্ট্রি পয়েন্টারটিতে পয়েন্টার" ব্যবহার করে এবং তালিকা_ইডের ঠিকানা দিয়ে এটি সূচনা করে। এবং তারপরে তারা তালিকাটি অতিক্রম করে, কেবল কোনও "* পিপি = এন্ট্রি->" পরবর্তী করে কোনও শর্ত ছাড়াই তারা প্রবেশ সরিয়ে ফেলতে পারে।
পিএইচপি বিকাশকারী হিসাবে আমি এক দশক আগে বিশ্ববিদ্যালয়ে সি পরিচয় হওয়ার পর থেকে পয়েন্টারগুলিকে স্পর্শ করি নি । তবে আমি অনুভব করি যে এটি এমন এক ধরণের পরিস্থিতি যার সাথে আমার অন্তত পরিচিত হওয়া উচিত। লিনাস কী সম্পর্কে কথা বলছে? সত্য কথা বলতে গেলে, যদি আমাকে লিঙ্কযুক্ত তালিকাটি কার্যকর করতে এবং কোনও আইটেম সরাতে বলা হয়, তবে উপরের 'ভুল' উপায়টি আমি এর পথে যাব। লিনাস সবচেয়ে ভাল বলে তাই কোড করার জন্য আমার কী জানা দরকার?
আমি স্ট্যাক ওভারফ্লো না করেই এখানে জিজ্ঞাসা করছি কারণ প্রোডাকশন কোডে আমার আসলে এটির সমস্যা নেই।
prev
পুরো নোডটি সংরক্ষণ করার পরিবর্তে লোকেশনটির অবস্থান সংরক্ষণ করতে হবে তখন আপনি কেবলমাত্র সেই অবস্থানটি সংরক্ষণ করতে পারেনprev.next
, যেহেতু 'আপনার আগ্রহী একমাত্র জিনিস a এবং যদি আপনি এটি করেন তবে আপনি মূর্খতা এড়ানif
, যেহেতু এখন আপনার কাছেlist_head
কোনও নোডের বাইরে থেকে পয়েন্টার হওয়ার মতো বিশ্রী ঘটনা নেই । তালিকার শিরোনামের পয়েন্টারটি পরে শব্দার্থগতভাবে পরবর্তী নোডের পয়েন্টারের সমান হয়।