جاوا میں منسلک فہرستوں کے استعمال کا تعارف

جاوا میں منسلک فہرستوں کے استعمال کا تعارف

ڈیٹا کا ڈھانچہ ڈیٹا کو ذخیرہ کرنے ، بازیافت کرنے اور حذف کرنے کے لیے پہلے سے طے شدہ مختلف طریقے استعمال کرتا ہے جو کہ موثر پروگراموں کی تشکیل میں اختتام پذیر ہوتا ہے۔ لنکڈ لسٹ ایک مشہور ڈیٹا سٹرکچر ہے ، جو نوڈس کی ایک فہرست پر مشتمل ہوتا ہے جو جڑے ہوئے (یا منسلک) ہوتے ہیں۔





لیکن آپ جاوا میں لنکڈ لسٹ کیسے بناتے ہیں؟ آئیے ایک نظر ڈالتے ہیں۔





لنکڈ لسٹ کیسے کام کرتی ہے؟

ہر منسلک فہرست ایک خاص نوڈ سے شروع ہوتی ہے جسے اکثر 'ہیڈ' کہا جاتا ہے ، جو ہر وقت فہرست کے آغاز کی طرف اشارہ کرنے کی ذمہ داری رکھتا ہے۔ سر اہم ہے کیونکہ منسلک فہرست میں ہر نوڈ کو جسمانی طور پر اس کے جانشین کی پیروی کرنے کی ضرورت نہیں ہے (مطلب یہ ہے کہ ایک پیشرو اور جانشین کو جسمانی طور پر ملحق نہیں ہونا چاہئے)۔





ہر ڈیٹا ڈھانچے کی طرح ، منسلک فہرست پہلے سے طے شدہ افعال کے ایک سیٹ کے ذریعے تخلیق ، بازیافت ، اندراج اور تباہی کی سہولت فراہم کرتی ہے جسے کوئی بھی ڈویلپر استعمال کرسکتا ہے۔

جاوا میں لنکڈ لسٹ بنانا

ایک جاوا پروگرام جو لنک کردہ فہرستوں کو بنانے اور ہیرا پھیری کے لیے ڈیزائن کیا گیا ہے اس کے تین مخصوص حصے ہوں گے۔ نوڈ کلاس ، منسلک فہرست کلاس ، اور ڈرائیور۔ اگرچہ یہ تین حصے ایک فائل میں جمع ہو سکتے ہیں ، کمپیوٹر سائنس میں ایک ڈیزائن اصول ہے جسے 'خدشات کی علیحدگی' کہا جاتا ہے جسے ہر ڈویلپر کو معلوم ہونا چاہیے۔



خدشات کی علیحدگی کا اصول یہ بتاتا ہے کہ کوڈ کے ہر حصے کو جو ایک مخصوص تشویش کو حل کرتا ہے علیحدہ ہونا چاہیے۔ یہ اصول آپ کو صاف ستھرا (زیادہ پڑھنے کے قابل) کوڈ بنانے میں مدد دے گا اور ڈیٹا ڈھانچے بنانے کے لیے مثالی ہے۔

جاوا میں لنکڈ لسٹ بنانے کا پہلا مرحلہ نوڈ کلاس بنانا ہے۔ نوڈ کلاس میں دو صفات ہونی چاہئیں۔ صفات میں سے ایک نوڈ کے ڈیٹا حصے کی نمائندگی کرے گا ، جبکہ دوسرا وصف منسلک حصے کی نمائندگی کرے گا۔ نوڈ کلاس میں کنسٹرکٹر ، گیٹرس اور سیٹرز بھی ہونے چاہئیں۔





متعلقہ: جاوا میں کلاسز بنانے کا طریقہ سیکھیں۔

گیٹرس اور سیٹرز دوسری کلاسوں (جیسے لنکڈ لسٹ کلاس) کو لنکڈ لسٹ کے اندر مختلف نوڈس تک رسائی کی اجازت دیں گے۔





نوڈ کلاس کی مثال

ذیل میں ایک نوڈ کلاس کی مثال آپ کے لیے یہ سمجھنے کے لیے ہے کہ ہمارا کیا مطلب ہے:


public class Node {
private int Data;
private Node NextNode;
//constructor
public Node() {
Data = 0;
NextNode = null;
}
//getters and setters
public int getData() {
return Data;
}
public void setData(int data) {
Data = data;
}
public Node getNextNode() {
return NextNode;
}
public void setNextNode(Node nextNode) {
NextNode = nextNode;
}
}

اس مثال میں ، ڈیٹا وصف عددی اقدار کو محفوظ کرے گا۔ اب چونکہ آپ کے پاس نوڈ کلاس ہے ، اب وقت آگیا ہے کہ لنکڈ لسٹ پر جائیں۔

منسلک فہرست کی مثال۔

ذیل میں جاوا میں منسلک فہرست کی ایک مثال ہے۔

public class LinkedList {
private Node Head;
//constructor
public LinkedList() {
Head = null;
}
}

مذکورہ کوڈ ایک لنکڈ لسٹ کلاس بنائے گا ، تاہم ، اس کی مختلف کارروائیوں کے بغیر ، کلاس کو خالی خول کے برابر دیکھا جاسکتا ہے۔ لنکڈ لسٹ ڈیٹا سٹرکچر میں کئی آپریشن ہوتے ہیں جو اسے آباد کرنے کے لیے استعمال کیے جا سکتے ہیں۔

  • سامنے والے حصے میں داخل کریں۔
  • درمیان میں داخل کریں۔
  • پچھلے حصے میں داخل کریں۔

متعلقہ: جاوا اسکرپٹ ES6 کلاسز کے ساتھ ڈیٹا سٹرکچر بنانے کا طریقہ

اندراج کے طریقوں کا لنکڈ لسٹ کلیکشن ایک وجہ ہے کہ ایک ڈویلپر اس ڈیٹا ڈھانچے کو دوسرے ڈیٹا ڈھانچے جیسے اسٹیکس (جو صرف اوپر سے داخل کرنے اور حذف کرنے کی اجازت دیتا ہے) پر استعمال کرنے کا انتخاب کرسکتا ہے۔

سامنے کا طریقہ داخل کریں۔

سامنے کے طریقہ کار میں داخل کریں ، جیسا کہ نام سے پتہ چلتا ہے ، منسلک فہرست کے سامنے نئے ڈیٹا (یا نئے نوڈس) داخل کرتا ہے۔

فرنٹ میتھڈ کی مثال پر داخل کریں۔

ذیل میں ایک مثال ہے کہ آپ اپنی فہرست کے اگلے حصے میں نیا ڈیٹا کیسے داخل کریں گے۔

//insert node at front method
public void insertAtFront(int key) {
//create a new node using the node class
Node Temp = new Node();
//check if the Temp node was successfully created
//assign the data that was provides by the user to it
if(Temp != null) {
Temp.setData(key);
Temp.setNextNode(null);

//check if the head of the linked list is empty
//assign the node that was just created to the head position
if(Head == null) {
Head = Temp;
}
//if a node is already at the head position
//add the new node to it and set it as the head
else {
Temp.setNextNode(Head);
Head = Temp;
}
}
}

کی insertAtFront مندرجہ بالا مثال میں طریقہ صارف کو دی گئی لنک کردہ فہرست میں نئے نوڈس شامل کرنے کی اجازت دیتا ہے۔

سامنے مثال پر داخل کریں کو لاگو کرنا۔

ذیل میں ایک مثال دی گئی ہے کہ آپ سامنے والے حصے میں داخل کیسے کریں گے۔

public class Driver {
//executes the program
public static void main(String[] args) {
//create a new linked list called List
LinkedList List = new LinkedList();
//add each value to the front of the linked list as a new node
List.insertAtFront(10);
List.insertAtFront(8);
List.insertAtFront(6);
List.insertAtFront(4);
List.insertAtFront(2);
}
}

کی ڈرائیور کلاس (جو وہ نام ہے جو اکثر جاوا میں قابل عمل کلاس کو تفویض کیا جاتا ہے) ، لنکڈ لسٹ کلاس کو پانچ مساوی نمبروں کی لنکڈ لسٹ بنانے کے لیے استعمال کرتا ہے۔ اوپر والے کوڈ کو دیکھتے ہوئے یہ دیکھنا آسان ہونا چاہیے کہ نمبر '2' منسلک فہرست میں سر پوزیشن پر ہے۔ لیکن آپ اس کی تصدیق کیسے کر سکتے ہیں؟

وائی ​​فائی کے ذریعے کسی کے فون تک کیسے رسائی حاصل کی جائے۔

ڈسپلے آل نوڈز کا طریقہ استعمال کرنا۔

ڈسپلے آل نوڈز کا طریقہ ایک لازمی لنکڈ لسٹ طریقہ ہے۔ اس کے بغیر ، ایک ڈویلپر منسلک فہرست میں نوڈس نہیں دیکھ سکے گا۔ یہ لنکڈ لسٹ کے ذریعے سفر کرتا ہے (سر سے شروع ہوتا ہے) ہر نوڈ میں محفوظ ڈیٹا کو پرنٹ کرتا ہے جو فہرست بناتا ہے۔

تمام نوڈس کے طریقہ کار کی مثال دکھائیں۔

ذیل میں جاوا میں تمام نوٹ کا طریقہ ڈسپلے استعمال کرنے کی ایک مثال ہے۔

//display all nodes method
public void displayAllNodes() {
//create a new node call Temp and assign it to the head of the linked list
//if the head has a null value then the linked list is empty
Node Temp = Head;
if (Head == null){
System.out.println('The list is empty.');
return;
}
System.out.println('The List:');

while(Temp != null) {
//print the data in each node to the console(starting from the head)
System.out.print(Temp.getData() + ' ');
Temp = Temp.getNextNode();
}
}

اب کہ ڈسپلے آل نوڈز۔ طریقہ کار میں شامل کر دیا گیا ہے۔ لنکڈ لسٹ۔ کلاس آپ ڈرائیور کلاس میں کوڈ کی ایک لائن شامل کرکے لنکڈ لسٹ دیکھ سکتے ہیں۔

ڈسپلے آل نوڈس طریقہ استعمال کرتے ہوئے مثال۔

ذیل میں ، آپ دیکھیں گے کہ آپ ڈسپلے کے تمام نوڈس کا طریقہ استعمال کریں گے۔

//print the nodes in a linked list
List.displayAllNodes();

مندرجہ بالا کوڈ کی لائن پر عملدرآمد کنسول میں درج ذیل آؤٹ پٹ پیدا کرے گا:

فہرست:

2 4 6 8 10

نوڈ تلاش کرنے کا طریقہ استعمال کریں۔

ایسی مثالیں ہوں گی جب کوئی صارف لنکڈ لسٹ میں مخصوص نوڈ تلاش کرنا چاہے گا۔

مثال کے طور پر ، یہ ایک ایسے بینک کے لیے عملی نہیں ہوگا جس کے لاکھوں گاہکوں کو تمام صارفین کے ڈیٹا بیس میں پرنٹ کرنا ہو جب انہیں صرف ایک مخصوص گاہک کی تفصیلات دیکھنے کی ضرورت ہو۔

لہذا ، استعمال کرنے کے بجائے ڈسپلے آل نوڈز۔ طریقہ ، ایک زیادہ موثر طریقہ یہ ہے کہ مطلوبہ ڈیٹا پر مشتمل واحد نوڈ کو تلاش کیا جائے۔ یہی وجہ ہے کہ لنکڈ ڈیٹا کے ڈھانچے میں ایک نوڈ کے طریقہ کار کی تلاش اہم ہے۔

نوڈ طریقہ کی مثال تلاش کریں۔

ذیل میں فائنڈ نوڈ طریقہ استعمال کرنے کی ایک مثال ہے۔

//search for a single node using a key
public boolean findNode(int key) {
//create a new node and place it at the head of the linked list
Node Temp = Head;
//while the current node is not empty
//check if its data matches the key provided by the user
while (Temp != null) {
if (Temp.getData() == key) {
System.out.println('The node is in the list');
return true;
}
//move to the next node
Temp = Temp.getNextNode();
}
//if the key was not found in the linked list
System.out.println('The node is not in the list');
return false;
}

کے ساتہ ڈسپلے آل نوڈز۔ طریقہ ، آپ نے تصدیق کی ہے کہ لنکڈ لسٹ۔ 2 سے 10 تک 5 یکساں نمبر پر مشتمل ہے۔ findNode مذکورہ بالا مثال اس بات کی تصدیق کر سکتی ہے کہ اگر ان میں سے کوئی بھی نمبر نمبر 4 ہے تو صرف ڈرائیور کلاس میں طریقہ کو کال کرکے اور پیرامیٹر کے طور پر نمبر فراہم کرکے۔

نوڈ کے طریقہ کار کی مثال استعمال کریں۔

ذیل میں ایک مثال دی گئی ہے کہ آپ عملی طور پر فائنڈ نوڈ طریقہ کیسے استعمال کریں گے۔

//check if a node is in the linked list
List.findNode(4);

مندرجہ بالا کوڈ کنسول میں درج ذیل آؤٹ پٹ تیار کرے گا۔

The node is in the list

ڈیلیٹ نوڈ طریقہ استعمال کرنا۔

اوپر سے اسی بینک کی مثال کا استعمال کرتے ہوئے ، بینک کے ڈیٹا بیس میں کوئی صارف اپنا اکاؤنٹ بند کرنا چاہتا ہے۔ یہیں سے ڈیلیٹ نوڈ طریقہ کارآمد ہوگا۔ یہ فہرست کا سب سے پیچیدہ طریقہ ہے۔

ایک نوڈ کو حذف کرنے کا طریقہ کسی نوڈ کو تلاش کرتا ہے ، اس نوڈ کو حذف کرتا ہے ، اور پچھلے نوڈ کو اس نوڈ سے جوڑتا ہے جو اس نوڈ کو حذف کرتا ہے جو حذف ہوچکا ہے۔

نوڈ طریقہ کی مثال حذف کریں۔

ذیل میں ایک نوڈ حذف کرنے کی ایک مثال ہے۔

public void findAndDelete(int key) {
Node Temp = Head;
Node prev = null;
//check if the head node holds the data
//and delete it
if (Temp != null && Temp.getData() == key) {
Head = Temp.getNextNode();
return;
}
//search the other nodes in the list
//and delete it
while (Temp != null) {
if (Temp.getNextNode().getData() == key ) {
prev = Temp.getNextNode().getNextNode();
Temp.setNextNode(prev);
return;
}
Temp = Temp.getNextNode();
}
}

ڈیلیٹ نوڈ میتھڈ کی مثال استعمال کرنا۔

عملی طور پر ڈیلیٹ نوڈ طریقہ استعمال کرنے کی ایک مثال یہ ہے۔

فیس بک پر لڑکیوں سے بات کرنے کا طریقہ
//delete the node that holds the data 4
List.findAndDelete(4);
//print all nodes in the linked list
List.displayAllNodes();

پہلے سے موجود ڈرائیور کلاس میں کوڈ کی دو لائنوں کا استعمال کنسول میں درج ذیل آؤٹ پٹ پیدا کرے گا۔

The List:
2 6 8 10

اب آپ جاوا میں لنکڈ لسٹ بنا سکتے ہیں۔

اگر آپ نے اس ٹیوٹوریل آرٹیکل کے اختتام تک پہنچا دیا ہے تو آپ نے سیکھا ہوگا:

  • نوڈ کلاس بنانے کا طریقہ
  • لنکڈ لسٹ کلاس بنانے کا طریقہ
  • لنکڈ لسٹ کلاس کو اس کے پہلے سے طے شدہ طریقوں سے کیسے آباد کیا جائے۔
  • ڈرائیور کلاس بنانے کا طریقہ

ایک منسلک فہرست بہت سے ڈیٹا ڈھانچے میں سے ایک ہے جسے آپ ڈیٹا کو ذخیرہ کرنے ، بازیافت کرنے اور حذف کرنے کے لیے استعمال کرسکتے ہیں۔ چونکہ آپ کو ہر وہ چیز مل گئی ہے جس کی آپ کو ضرورت ہے ، جاوا میں اپنے لیے یہ مثالیں کیوں نہ آزمائیں؟

بانٹیں بانٹیں ٹویٹ ای میل۔ جاوا میں Arrays پر آپریشن بنانے اور انجام دینے کا طریقہ

جاوا سیکھنا؟ صفوں کو آسانی سے آپ کے ڈیٹا کو سنبھالنے دیں۔

اگلا پڑھیں۔
متعلقہ موضوعات۔
  • پروگرامنگ۔
  • جاوا
  • پروگرامنگ۔
  • کوڈنگ ٹپس۔
مصنف کے بارے میں کدیشا کیان۔(21 مضامین شائع ہوئے)

کدیشا کین ایک مکمل اسٹیک سافٹ ویئر ڈویلپر اور ٹیکنیکل/ٹیکنالوجی رائٹر ہیں۔ وہ کچھ انتہائی پیچیدہ تکنیکی تصورات کو آسان بنانے کی مخصوص صلاحیت رکھتی ہے۔ ایسا مواد تیار کرنا جسے کسی بھی ٹیکنالوجی کے نوآموز آسانی سے سمجھ سکیں۔ وہ لکھنے ، دلچسپ سافٹ وئیر تیار کرنے اور دنیا کا سفر کرنے کے بارے میں پرجوش ہے (ڈاکومنٹریز کے ذریعے)

Kadeisha Kean سے مزید

ہماری نیوز لیٹر کو سبسکرائب کریں

ٹیک ٹپس ، جائزے ، مفت ای بکس ، اور خصوصی سودوں کے لیے ہمارے نیوز لیٹر میں شامل ہوں!

سبسکرائب کرنے کے لیے یہاں کلک کریں۔