Skip to main content

Further with Stacks

So done with Push and Pop. Then lest go further with some more functions. Here I'm gonna present the code for peek in a stack, check if its empty and check if its full. 
Peek is just having a look at the top element in the stack. Wait so does the pop , what's the difference? The difference is pop removes the element and peek does not, it only gives a sneak peek.
Since the other two are more obvious Lets get straight to code:



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
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 void peek(){
        System.out.println("the top element");
        System.out.println(arr[top]);
    }
    public boolean isEmpty(){
        return (top == -1);
    }
    public boolean isFull(){
        return (top == (MaxSize-1));
    }
    
    public static void main(String[] args) {
        StackA A = new StackA(4);   //creating object
        A.push(3);                  //pushing 3 to the top
        A.push(5);                  //pushing 5 to the top
        A.push(7);                  //pushing 7 to the top
        A.push(8);                  //pushing 8 to the top
        if (A.isEmpty() == true){
            System.out.println("This stack is empty");
        }else {
            if(A.isFull() == true){
                System.out.println("This stack is full");
            }else{
                A.peek();
            }
        }
    }

    }

Here in the main method what I've done is populate the stack untill it becomes full. Then check if its empty (return false), Then check if its full (returns true). The Print "This stack is full". If you bit into experimenting go ahead. remove one element then it will only peek into the top element. Remove all the elements, then it will return "This stack is empty"
One other thing always remember that the array index is one less than the count we take. i.e. arr[0] is the 1st element.

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...