 بسم اللہ الرحمن الرحیم آج ہم موڈیول 69 دسکس کریں گے موڈیول 69 ہے working with multiple heaps پریوش لی ہم نے heaps کو دسکس کیا پھر ہم نے کہا کہ ایک ثرد کے ساتھ ایک سزادہ heaps بھی associate کی جا سکتے ہیں پریوش جتنی بھی آپ run time library کے اندر programming کی ہوگی تو اس کے اندر عام طور بھی یہ ہوتا ہے کہ ایک process کے ساتھ ایک ہیب associate ہوتی ہے لیکن ایدر ہم کہہ رہے ہیں کہ windows کے اندر آتے بے آپ ایک ثرد کے ساتھ multiple heaps جو ہے ان کو associate کر سکتے ہیں اور programming کے point of view سے دیکھا جائے تو اس کے اندر کافی flexibility آ جاتی آپ کی programming کے اندر آپ کی programming سان ہو جاتی ہے اور more کہہ لیں کہ efficient اور optimal ہو جاتی ہے اگر آپ multiple heaps کو use کریں اس کے کئی scenarios ہو سکتے ہیں ایک چھوٹا سناریو یہاں پر ہم لے رہے ہیں اور اس کو discuss کریں یہ سناریو جو ہے اس کے اندر ہم کہہ رہے ہیں کہ جی اگر آپ کے پاس دو heaps ہیں اور آپ کئی records جو ہے ان کو save کرنا چاہے تو آپ کس طرح سے ان کو save کر سکتے ہیں جو آپ نے records کو save کرنا تو اس کی sorting اور اس کی searching ہے that is an important aspect یعنی کہ آپ اس کو کسی data structure میں رکھنا چاہیں گے لیکن data structure کے اندر بھی اگر آپ رکھنا چاہیں گے کوئی dynamic data structure ہے تو وہ ہر node کے اندر بہت زیادہ دیتا نہیں ہونا چاہیے جس کو کہ آپ manage نہ کر پائیں تو پھر یہاں پر ہمیں need مصوص ہوتی ہے دو heaps کی ہم دو heaps کو اس طریق سے use کریں گے کہ ہم زیادہ data کو بھی store کر سکیں اور کسی data structure کی مد سے ہم اس کو ایک more optimal طریقہ سے store کر سکیں تاکہ sorting اور searching جو ہے اس کے اندر اسان ہو تو اس اگزامپل کے اندر ہم نے کیا کیا ہم نے دو heaps منالی ایک heap کو کا node heap اور دوسری کو کا record heap یا data heap node heap کے اندر nodes ہم store کریں ہمارے data structure کی for example اگر tree ہے تو tree کی nodes جو ہے وہ ہم this node heap کے اندر store کریں گے اور دوسرہ جو actual records ہیں اون actual records کو ہم data heap کے اندر store کریں گے اور node heap کی اندر کیا پڑاو گا as such پورا data ہی پڑاو گا اس کا reference پڑاو گا اور وہ جو اس کے اندر node heap ہے اس کے اندر اگر کوئی tree use کریں یا کوئی be data structure use کریں وہ اسی node کی اندر جو بھی values پڑی بھی اس کے اندر جو key value ہے اس کی lexical اس کی key value کے مطابق lexicalی اس کو range کیا دائے گا یعنی کہ جو آپ کے data کے اندر key values ہے ان کے according لی lexicalی ایک tree بنائے دائے گا اور اس tree کے اندر values نہیں ہوں گی references ہوں گے to the other heap جس other heap کے اندر آپ کے records بڑے گا آپ کا data پڑاو گا اس کو اس slide کی مدہ سے بھی ہم تھوڑا سا illustratively سمجھ سکتے ہیں کہ کیا اس کا تریکہ کر کیا جاتا سکتا آپ نے یہاں پہ دو heaps لی ایک آپ نے process heap لی ایک آپ نے create کر کے heap بنالی اور ایک کو ہم کہریں record heap ایک کو ہم کہریں node heap آپ کے پاس record heap ہے اور ایک node heap ہے اس کے لوہ ایک process heap ہے آپ کے پاس 3 heaps ہے اس ناریوں کے اندر آپ کے پاس 3 heaps ہے جو process heap ہے process heap کے پاس root کا ڈرس ہے جو بھی آپ کا data سکتا بنے کا اس کی root کا ڈرس ہے وہ process heap کے پاس موجود ہے اب آپ دیکھ لیں یہاں پہ illustratively show کیا جا سکتا ہے کہ جو record heap ہے record heap کے اندر آپ کے records save ہونے جب بھی ایک record وہ create ہوتا ہے اس کے لیے memory allocate ہوتی ہے into the record heap اور وہ record heap میں جاکے store ہو جاتی ہے یہ why loop کے اندر آپ دیکھ سکتا ہے اور node heap کے اندر کیا ہورا ہے ایک node بنتی ہے اور اس node کے لیے memory allocate ہوتی ہے اور وہ جاکے node وہ اس node heap کے اندر store ہو جاتی ہے اور in the end جب آپ ان دونوں کو use کرلتے ہیں جب آپ نے sorting یا searching کرنی ہے تو آپ node heap کے اندر sorting کریں گے node heap سے آپ کو reference ملے گا of record heap وہاں سے آپ کو وہ پورا record مل دے گا node heap کے اندر آپ نے کو دیتا سرکچر مینٹین کیا ہوگا کوئی کہ لیں کہ tree ہوگا for example tree کا data structure ہوگا sorting کرنی ہے tree سے اسان ہے searching کرنی ہے tree میں اسان ہے sorting searching کر کے اس tree کے اندر سچ کریں گے اور پورا record جو ہے وہ آپ کو record heap کے اندر ملے گا جب آپ نے ساری processing کر لی ہے in the end آپ کو دونوں heaps کو دیسٹوائے کرنا پڑھے گا دونوں heaps کو دیسٹوائے کرنے کے بعد جو وہ جو third heap ہے جو آپ کی process heap ہے اس کو of course آپ دیسٹوائے نہیں کریں گے کیونکہ وہ get process heap کی مدل سے بنائی گئی ہے تو اس کو دیسٹوائے کرنے کا point نہیں ہے باقی جو آپ نے heap create کی مدل سے دونوں heaps بنائی ہیں ان کو آپ ultimately destroy کریں جب آپ کو ان کی ضرورتی