java - মরফ - জাভা শিক্ষা




কিভাবে আমি জাভা একটি লিঙ্ক তালিকা তথ্য গঠন করতে পারি? (4)

জাভা একটি লিঙ্ক তালিকা করতে সবচেয়ে ভাল উপায় কি?


Java.util.LinkedList ব্যবহার করার জন্য এটি আরও ভাল, কারন এটি সম্ভবত আরও বেশি অপটিমাইজড, যেটি আপনি লিখবেন তার চেয়েও বেশি।


উপরের লিঙ্ক তালিকা বিপরীত দিক প্রদর্শন। আমি মনে করি সন্নিবেশ পদ্ধতি সঠিক বাস্তবায়ন করা উচিত

public void insert(int d1, double d2) { 
    Link link = new Link(d1, d2); 

    if(first==null){
        link.nextLink = null;
        first = link; 
        last=link;
    }
    else{
        last.nextLink=link;
        link.nextLink=null;
        last=link;
    }
} 

জাভা থেকে পরিচিত ডেভেলপারদের সুস্পষ্ট সমাধানটি ইতিমধ্যে java.utilলিঙ্কেডলিস্ট ক্লাস ব্যবহার করা। বলুন, যাইহোক, আপনি কিছু কারণে আপনার নিজের বাস্তবায়ন করতে চেয়েছিলেন। এখানে একটি লিঙ্ক তালিকাটির একটি দ্রুত উদাহরণ রয়েছে যা তালিকার শুরুতে একটি নতুন লিঙ্ক সন্নিবেশ করায়, তালিকাটির শুরু থেকে মুছে ফেলে এবং এতে থাকা লিঙ্কগুলিকে মুদ্রণ করতে তালিকাগুলির মাধ্যমে loops। এই বাস্তবায়নের উন্নতিতে এটি একটি ডাবল-লিঙ্কযুক্ত তালিকা তৈরি করে , মধ্যম বা শেষ থেকে সন্নিবেশ এবং মুছে ফেলার পদ্ধতিগুলি যোগ করে, এবং পদ্ধতিগুলি পেতে এবং সাজানোরও যোগ করে।

দ্রষ্টব্য : উদাহরণস্বরূপ, লিংক বস্তুর প্রকৃতপক্ষে অন্য লিংক অবজেক্ট নেই - পরবর্তী লিংক আসলে অন্য লিঙ্কের শুধুমাত্র একটি রেফারেন্স।

class Link {
    public int data1;
    public double data2;
    public Link nextLink;

    //Link constructor
    public Link(int d1, double d2) {
        data1 = d1;
        data2 = d2;
    }

    //Print Link data
    public void printLink() {
        System.out.print("{" + data1 + ", " + data2 + "} ");
    }
}

class LinkList {
    private Link first;

    //LinkList constructor
    public LinkList() {
        first = null;
    }

    //Returns true if list is empty
    public boolean isEmpty() {
        return first == null;
    }

    //Inserts a new Link at the first of the list
    public void insert(int d1, double d2) {
        Link link = new Link(d1, d2);
        link.nextLink = first;
        first = link;
    }

    //Deletes the link at the first of the list
    public Link delete() {
        Link temp = first;
        if(first == null){
         return null;
         //throw new NoSuchElementException(); // this is the better way. 
        }
        first = first.nextLink;
        return temp;
    }

    //Prints list data
    public void printList() {
        Link currentLink = first;
        System.out.print("List: ");
        while(currentLink != null) {
            currentLink.printLink();
            currentLink = currentLink.nextLink;
        }
        System.out.println("");
    }
}  

class LinkListTest {
    public static void main(String[] args) {
        LinkList list = new LinkList();

        list.insert(1, 1.01);
        list.insert(2, 2.02);
        list.insert(3, 3.03);
        list.insert(4, 4.04);
        list.insert(5, 5.05);

        list.printList();

        while(!list.isEmpty()) {
            Link deletedLink = list.delete();
            System.out.print("deleted: ");
            deletedLink.printLink();
            System.out.println("");
        }
        list.printList();
    }
}

LinkedList ব্যবহার করুন। এটার মত:

list = new java.util.LinkedList()






linked-list