Skip to main content

Algorithms with Stacks

So thought of training with some stack in the beginning of algorithms. I'm gonna use java for the coding.

So as the word says its a stack, like a stack of plate. what is special about it is how the elements come in and out of it. The first plate to come in is the first plate to get out. we call this Fist In First Out (FIFO). Without further ado lets go straight in to the code.

The first thing I created was the stack. Here in Class StackA I initially defined the array, array size and the top element.


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
public class StackA {
    private int MaxSize;    // size of the stack
    private int[] arr;   // the stack
    private int top;        // the top element
    
    public StackA(int s){   // constructor initiate stack
        MaxSize = s;        // assign the size
        arr = new int[s];//creating the stack
        top = -1;           // initial top element
    }
    
    public void push(int k){
        arr[++top] = k;     //pre incrementing top, post incrementing will give ArryOutOfBoundException 
    }
    public void pop(){
        System.out.println(arr[top--]);
    }
    
    
    public static void main(String[] args) {
        StackA A = new StackA(4);   //creating object
        A.push(3);                  //pushing 3 to the top
        System.out.println("pop the top element");
        A.pop();                    //pop the top element
       
    }

    }

So this may not be very difficult to understand but I have defined two methods namely pop and push in the code. 

Push is the method that you simply place an element in the top of the satck and pop is the method where you remove the top element in the stack. (Popping it out).


So lets see some other functions later.

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 4 - PoS tagging

Natural Language Processing  PoS tagging or Part of Speech tagging is a commonly used mechanism. This will allow NLTK to tag the words that is in your corpus and give the tags accordingly. There are many tags predefined by the NLTK and here are the list. Number Tag Description 1. CC Coordinating conjunction 2. CD Cardinal number 3. DT Determiner 4. EX Existential  there 5. FW Foreign word 6. IN Preposition or subordinating conjunction 7. JJ Adjective 8. JJR Adjective, comparative 9. JJS Adjective, superlative 10. LS List item marker 11. MD Modal 12. NN Noun, singular or mass 13. NNS Noun, plural 14. NNP Proper noun, singular 15. NNPS Proper noun, plural 16. PDT Predeterminer 17. POS Possessive ending 18. PRP Personal pronoun 19. PRP$ Possessive pronoun 20. RB Adverb 21. RBR Adverb, comparative 22. RBS ...