জাভাতে লিঙ্কযুক্ত তালিকা ব্যবহারের একটি ভূমিকা

জাভাতে লিঙ্কযুক্ত তালিকা ব্যবহারের একটি ভূমিকা

একটি ডেটা স্ট্রাকচার বিভিন্ন পূর্বনির্ধারিত পদ্ধতি ব্যবহার করে ডেটা সঞ্চয়, পুনরুদ্ধার এবং মুছে ফেলার জন্য যা কার্যকরী প্রোগ্রাম তৈরির পরিণতি লাভ করে। একটি সংযুক্ত তালিকা হল একটি জনপ্রিয় ডেটা স্ট্রাকচার, যা সংযুক্ত নোডগুলির একটি তালিকা নিয়ে গঠিত যা সংযুক্ত (বা সংযুক্ত)।





কিন্তু আপনি কিভাবে জাভাতে একটি লিঙ্কযুক্ত তালিকা তৈরি করবেন? এর কটাক্ষপাত করা যাক.





কিভাবে একটি লিঙ্কযুক্ত তালিকা কাজ করে?

প্রতিটি সংযুক্ত তালিকা একটি বিশেষ নোড দিয়ে শুরু হয় যা প্রায়শই 'হেড' হিসাবে উল্লেখ করা হয়, যা সর্বদা তালিকার শুরুতে নির্দেশ করার দায়িত্ব রাখে। মাথাটি গুরুত্বপূর্ণ কারণ লিঙ্কযুক্ত তালিকার প্রতিটি নোডের শারীরিকভাবে তার উত্তরসূরি অনুসরণ করার প্রয়োজন নেই (অর্থাত্ পূর্বসূরি এবং উত্তরসূরিদের শারীরিকভাবে সংলগ্ন হতে হবে না)।





প্রতিটি ডেটা স্ট্রাকচারের মতো, লিঙ্কযুক্ত তালিকা পূর্বনির্ধারিত ফাংশনগুলির একটি সেটের মাধ্যমে সৃষ্টি, পুনরুদ্ধার, সন্নিবেশ এবং ধ্বংসের সুবিধা দেয় যা যে কোনও বিকাশকারী ব্যবহার করতে পারে।

জাভাতে একটি লিঙ্কযুক্ত তালিকা তৈরি করা

একটি জাভা প্রোগ্রাম যা লিংক করা তালিকা তৈরি এবং ম্যানিপুলেট করার জন্য ডিজাইন করা হয়েছে তাতে তিনটি স্বতন্ত্র বিভাগ থাকবে; নোড ক্লাস, লিঙ্কড লিস্ট ক্লাস এবং ড্রাইভার। যদিও এই তিনটি বিভাগ এক ফাইলে একত্রিত হতে পারে, কম্পিউটার বিজ্ঞানে একটি নকশা নীতি রয়েছে যা 'উদ্বেগের বিভাজন' নামে পরিচিত যা প্রতিটি বিকাশকারীর জানা উচিত।



উদ্বেগের বিচ্ছেদ নীতি নির্দেশ করে যে কোডের প্রতিটি বিভাগ যা একটি নির্দিষ্ট উদ্বেগের সমাধান করে তা পৃথক করা উচিত। এই নীতি আপনাকে ক্লিনার (আরো পঠনযোগ্য) কোড তৈরি করতে সাহায্য করবে এবং ডেটা স্ট্রাকচার তৈরির জন্য আদর্শ।

জাভাতে একটি লিঙ্কযুক্ত তালিকা তৈরির প্রথম ধাপ হল একটি নোড ক্লাস তৈরি করা। একটি নোড ক্লাসের দুটি বৈশিষ্ট্য থাকা উচিত; বৈশিষ্ট্যগুলির মধ্যে একটি নোডের ডেটা অংশকে প্রতিনিধিত্ব করবে, অন্য বৈশিষ্ট্যটি সংযুক্ত অংশকে প্রতিনিধিত্ব করবে। একটি নোড ক্লাসে একটি কনস্ট্রাক্টর, গেটারস এবং সেটার থাকতে হবে।





সম্পর্কিত: জাভাতে ক্লাস তৈরি করতে শিখুন

গেটার এবং সেটাররা অন্যান্য ক্লাসকে (যেমন লিঙ্কড লিস্ট ক্লাস) লিঙ্কযুক্ত তালিকার মধ্যে বিভিন্ন নোড অ্যাক্সেস করার অনুমতি দেবে।





নোড ক্লাস উদাহরণ

নীচে একটি নোড শ্রেণীর উদাহরণ দেওয়া হল যাতে আপনি আমাদের অর্থ সম্পর্কে ধারণা পেতে পারেন:


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;
}
}

উপরের কোডটি একটি লিঙ্কযুক্ত তালিকা শ্রেণী তৈরি করবে, তবে, তার বিভিন্ন অপারেশন ছাড়া, ক্লাসটিকে একটি খালি শেলের সমতুল্য হিসাবে দেখা যেতে পারে। লিঙ্কযুক্ত তালিকা ডেটা কাঠামোর বেশ কয়েকটি অপারেশন রয়েছে যা এটি তৈরি করতে ব্যবহার করা যেতে পারে:

  • সামনে Insোকান।
  • মাঝখানে োকান।
  • পিছনে ertোকান।

সম্পর্কিত: কিভাবে জাভাস্ক্রিপ্ট 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();
}
}

এখন যে প্রদর্শন AllNodes পদ্ধতিতে যোগ করা হয়েছে যোজিত তালিকা ক্লাসে আপনি ড্রাইভার ক্লাসে কোডের একক লাইন যোগ করে লিঙ্ক করা তালিকা দেখতে পারেন।

ডিসপ্লে অল নোড মেথড উদাহরণ ব্যবহার করে

নীচে, আপনি দেখতে পাবেন কিভাবে আপনি প্রদর্শন সব নোড পদ্ধতি ব্যবহার করবেন।

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

উপরের কোডের লাইন চালানো কনসোলে নিম্নলিখিত আউটপুট তৈরি করবে:

ক্রমতালিকা:

2 4 6 8 10

ফাইন্ড নোড পদ্ধতি ব্যবহার করে

এমন উদাহরণ থাকবে যখন ব্যবহারকারী একটি লিঙ্কযুক্ত তালিকায় একটি নির্দিষ্ট নোড খুঁজে পেতে চাইবে।

উদাহরণস্বরূপ, এমন ব্যাংকের জন্য ব্যবহারিক হবে না যার লক্ষ লক্ষ গ্রাহক তাদের ডাটাবেসে সমস্ত গ্রাহকদের মুদ্রণ করে যখন তাদের শুধুমাত্র নির্দিষ্ট গ্রাহকের বিবরণ দেখার প্রয়োজন হয়।

অতএব, এর পরিবর্তে প্রদর্শন AllNodes পদ্ধতি, একটি আরো কার্যকর পদ্ধতি হল প্রয়োজনীয় তথ্য সম্বলিত একক নোড খুঁজে বের করা। এই কারণেই লিঙ্কযুক্ত তালিকা ডেটা কাঠামোতে একটি একক নোড পদ্ধতির অনুসন্ধান গুরুত্বপূর্ণ।

নোড পদ্ধতির উদাহরণ খুঁজুন

নীচের ফাইন্ড নোড পদ্ধতি ব্যবহার করার একটি উদাহরণ।

//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;
}

সঙ্গে প্রদর্শন AllNodes পদ্ধতি, আপনি নিশ্চিত করেছেন যে যোজিত তালিকা 2 থেকে 10 পর্যন্ত 5 টি সমান সংখ্যা রয়েছে findNode উপরের উদাহরণটি নিশ্চিত করতে পারে যে, যদি এই সংখ্যার মধ্যে একটি সংখ্যা 4 হয় তবে কেবল ড্রাইভার ক্লাসে পদ্ধতিটি কল করে এবং একটি পরামিতি হিসাবে নম্বর প্রদান করে।

ফাইন্ড নোড পদ্ধতি ব্যবহার করে উদাহরণ

অনুশীলনে আপনি কীভাবে ফাইন্ড নোড পদ্ধতি ব্যবহার করবেন তার একটি উদাহরণ নিচে দেওয়া হল।

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

উপরের কোডটি কনসোলে নিম্নলিখিত আউটপুট তৈরি করবে:

The node is in the list

Delete a Node পদ্ধতি ব্যবহার করে

উপরে থেকে একই ব্যাংকের উদাহরণ ব্যবহার করে, ব্যাঙ্কের ডাটাবেসের একজন গ্রাহক তাদের অ্যাকাউন্ট বন্ধ করতে চাইতে পারেন। এই যেখানে একটি নোড মুছে ফেলা দরকারী হবে। এটি সবচেয়ে জটিল লিঙ্কযুক্ত তালিকা পদ্ধতি।

একটি নোড মুছুন পদ্ধতি একটি প্রদত্ত নোডের জন্য অনুসন্ধান করে, সেই নোডটি মুছে ফেলে এবং যে নোডটি মুছে ফেলা হয়েছে তার সাথে আগের নোডটিকে লিঙ্ক করে।

একটি নোড পদ্ধতির উদাহরণ মুছুন

নীচে একটি নোড পদ্ধতি মুছে ফেলার একটি উদাহরণ।

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

এখন আপনি জাভাতে লিঙ্কযুক্ত তালিকা তৈরি করতে পারেন

আপনি যদি এই টিউটোরিয়াল নিবন্ধের শেষে এটি তৈরি করেন, তাহলে আপনি শিখেছেন:

  • কিভাবে একটি নোড ক্লাস তৈরি করবেন।
  • কিভাবে একটি লিংকড লিস্ট ক্লাস তৈরি করবেন।
  • কিভাবে একটি পূর্বনির্ধারিত পদ্ধতি দিয়ে একটি লিঙ্কযুক্ত তালিকা শ্রেণী তৈরি করা যায়।
  • কীভাবে একটি ড্রাইভার শ্রেণী তৈরি করবেন এবং কাঙ্ক্ষিত ফলাফল অর্জনের জন্য বিভিন্ন লিঙ্কযুক্ত তালিকা পদ্ধতি ব্যবহার করবেন।

একটি সংযুক্ত তালিকা হল অনেকগুলি ডেটা স্ট্রাকচারের মধ্যে একটি যা আপনি ডেটা সংরক্ষণ, পুনরুদ্ধার এবং মুছে ফেলার জন্য ব্যবহার করতে পারেন। যেহেতু আপনি শুরু করার জন্য প্রয়োজনীয় সবকিছু পেয়ে গেছেন, কেন জাভাতে নিজের জন্য এই উদাহরণগুলি চেষ্টা করবেন না?

শেয়ার করুন শেয়ার করুন টুইট ইমেইল জাভাতে অ্যারেগুলিতে কীভাবে অপারেশন তৈরি এবং সম্পাদন করবেন

জাভা শিখছেন? অ্যারেগুলি সহজেই আপনার ডেটা পরিচালনা করতে দিন।

পরবর্তী পড়ুন
সম্পর্কিত বিষয়
  • প্রোগ্রামিং
  • জাভা
  • প্রোগ্রামিং
  • কোডিং টিপস
লেখক সম্পর্কে কাদিশা কেন(21 নিবন্ধ প্রকাশিত)

Kadeisha Kean একজন ফুল স্ট্যাক সফটওয়্যার ডেভেলপার এবং টেকনিক্যাল/টেকনোলজি রাইটার। কিছু জটিল প্রযুক্তিগত ধারণাকে সরলীকরণ করার তার স্বতন্ত্র ক্ষমতা আছে; এমন উপাদান তৈরি করা যা সহজেই যে কোন প্রযুক্তি নবজাতক দ্বারা বোঝা যায়। তিনি লেখালেখি, আকর্ষণীয় সফটওয়্যার বিকাশ এবং বিশ্ব ভ্রমণ (তথ্যচিত্রের মাধ্যমে) সম্পর্কে উত্সাহী।

Kadeisha Kean থেকে আরো

আমাদের নিউজলেটার সদস্যতা

প্রযুক্তি টিপস, রিভিউ, ফ্রি ইবুক এবং এক্সক্লুসিভ ডিলের জন্য আমাদের নিউজলেটারে যোগ দিন!

সাবস্ক্রাইব করতে এখানে ক্লিক করুন