Skip to main content

Quickly with the Linked List Implementation

So previous post described about the Linked List thought of doing the implementation.
The implementation is done using Java.
As you can see below it contains two classes. The first class is used to create a node. A one single node in the linked list. Then through tjat implementation we join the next node with the earlier created node.


1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
public class nodeClass {
    public int info; //contains the information part (Data)
    public nodeClass next; // The next node
    public nodeClass(int i){    //constructor to assign
        this(i,null);
    }
    public nodeClass(int x, nodeClass n){// assign values to info and next node
        info = x;
        next = n;
    }
}


Next on the initiating the Linked List and adding functionalists.



1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package linkedlist;

public class Llist {
    protected nodeClass head,tail;  //head =>; the first element 
                                    //tail =>; the last element 
    public Llist(){
        head = tail = null;//single node
    }
    public boolean isEmpty(){
        return head == null;    //check if the head is null if so no nodes
    }
    //FUnctions
    //Insert at head
    public void InsertAtHead(int y){
        head = new nodeClass(y,head);
        if(tail == null){
            tail = head; //if this was the first element added then head = tail
        }
    }
    //Insert at Tail
    public void InsertAtTail(int y){
        if(!isEmpty()){
            tail.next = new nodeClass(y);   // if there is already elements the do this
                                            //step 1: create a new node for the new tail element
                                            //Step 2: update the tail for the new tail element
            tail = tail.next;
        }else{
            head = tail = new nodeClass(y);
        }
    }
    //delere for head (This will delete the value and return the deleted value)
    public int DeleteFromHead(){
        //step 1 : take the value to an variable
        //step 2 : update the head value to its successor
        //step 3 : display the value taken
        int k = head.info;
        if (head == tail){
            head = tail = null;//if there was only one node
        }else{
            head = head.next;
        }
    return k;   // This thing just got deleted
    }

   // Final thing for today Delete from tail(Tricky)
    public int DeleteFromTail(){ //like earlier delete and display the deleted one
        //Step 1 : check if only one node then easy delete that thing
        //Step 2 : Find the predecessor (Through a loop)
        //step 3 : Delete tail
        //Step 4 : Make the predecessor the next tail 
        int k = tail.info;
        if(head == tail){
            head = tail = null;
        }else{
            nodeClass temp;// temp node to hold the predecessor 
            for(temp = head; temp.next !=tail ; temp = temp.next);
                tail = temp; // predecessor is assigned
                tail.next = null; //bye bye old tail
        }
        return k;// This just got deleted
    }
    public static void main(String[] args) {
        Llist list = new Llist();
        list.InsertAtHead(70);
        list.InsertAtTail(100);
        list.InsertAtHead(56);
        list.InsertAtHead(175);
        System.out.println("Head :" + list.head.info);
        System.out.println("Tail :" + list.tail.info);
        list.DeleteFromHead();
        list.DeleteFromTail();
        System.out.println("*****After Delete********");
        System.out.println("Nead head : "+ list.head.info);
        System.out.println("Nead tail : "+ list.tail.info);
        
        
    }
}

So finally one thing to remember. Nothing is deleted from JVM. you just remove the connection to it by making it null. That's how you delete it.


Popular posts from this blog

Natural Language Processing with Python NLTK part 5 - Chunking and Chinking

Natural Language Processing Using regular expression modifiers we can chunk out the PoS tagged words from the earlier example. The chunking is done with regular expressions defining a chunk rule. The Chinking defines what we need to exclude from the selection. Here are list of modifiers for Python: {1,3} = for digits, u expect 1-3 counts of digits, or "places" + = match 1 or more ? = match 0 or 1 repetitions. * = match 0 or MORE repetitions $ = matches at the end of string ^ = matches start of a string | = matches either/or. Example x|y = will match either x or y [] = range, or "variance" {x} = expect to see this amount of the preceding code. {x,y} = expect to see this x-y amounts of the preceding code source: https://pythonprogramming.net/regular-expressions-regex-tutorial-python-3/ Chunking import nltk from nltk.tokenize import word_tokenize # POS tagging sent = "This will be chunked. This is for Test. World is awesome. Hello world....

Natural Language Processing with Python NLTK part 1 - Tokenizer

Natural Language Processing Starting with the NLP articles first we will try the  tokenizer  in the NLTK package. Tokenizer breaks a paragraph into the relevant sub strings or sentences based on the tokenizer you used. In this I will use the Sent tokenizer, word_tokenizer and TweetTokenizer which has its specific work to do. import nltk from nltk.tokenize import sent_tokenize, word_tokenize, TweetTokenizer para = "Hello there this is the blog about NLP. In this blog I have made some posts. " \ "I can come up with new content." tweet = "#Fun night. :) Feeling crazy #TGIF" # tokenizing the paragraph into sentences and words sent = sent_tokenize(para) word = word_tokenize(para) # printing the output print ( "this paragraph has " + str(len(sent)) + " sentences and " + str(len(word)) + " words" ) # print each sentence k = 1 for i in sent: print ( "sentence ...

Natural Language Processing with Python NLTK part 6 - Named Entity Recognition

Natural Language Processing - NER Named entities are specific reference to something. As a part of recognizing text NLTK has allowed us to used the named entity recognition and recognize certain types of entities. Those types are as follows NE Type Examples ORGANIZATION Georgia-Pacific Corp. ,  WHO PERSON Eddy Bonte ,  President Obama LOCATION Murray River ,  Mount Everest DATE June ,  2008-06-29 TIME two fifty a m ,  1:30 p.m. MONEY 175 million Canadian Dollars ,  GBP 10.40 PERCENT twenty pct ,  18.75 % FACILITY Washington Monument ,  Stonehenge GPE South East Asia ,  Midlothian Source:  http://www.nltk.org/book/ch07.html Simple example on NER: import nltk from nltk.tokenize import word_tokenize, sent_tokenize para = " America is a country. John is a name. " sent = sent_tokenize(para) for s in sent: word = word_tokenize(s) tag = nltk . pos_tag(word) n...