Unlocking the Enumeration/enum Mystery

    by nikoo28

    What are enums actually?

    Enums provide an opportunity to the user to define a shorthand for fixed set of constants like months in a year, gender etc. Enumeration is the list of constant integer values, which means that the enum values can’t be modified.
    Here we are going to explain Enumeration usage rules and constraints in C language.
    In C Enums are defined by enum keyword. The enum definition is analogous to the way a structure is defined .
    Syntax:

    enum tagname{CONST1=1,CONST2,…} enumVariable;
    

    tagname – It is the name given to the enum and it is optional to provide it or not.
    {CONST1=1,CONST2,…} – Set of string literals representing the constants. Each element is equal to integral value starting with 0,the next 1 and so on, unless explicitly defined by the user like CONST1=1. In this case the values of the elements after the explicitly defined element are in consecutive order of its value. For example if CONST2=6 then values of the elements after it will be 7,8,9 and so on respectively.

    enumVariable – It is the list of variables of enum type, as the enum is of integral type so are these variables. These variables can be assigned any integer values other then the enum constants also. It is optional to use these variable(s). We may also define these variables later in the program as follows:

    enum tagname enumVariable;
    

    Here is a sample program that uses enums

    #include <stdio.h>
    
    //Defining the enum
    enum week
    {
    MONDAY= -1,TUESDAY,WEDNESDAY,THURSDAY=6,FRIDAY,SATURDAY,SUNDAY
    };
    
    int main(void)
    {
    	//Declaring an enum in the program
    	enum week day=FRIDAY;
    	
    	switch(day)
    	{
    		case MONDAY:
    		printf("Monday Sucks");
    		break;
    		
    		case SATURDAY:
    		printf("Weekends are fun");
    		break;
    		
    		case SUNDAY:
    		printf("Weekends are fun");
    		break;
    		
    		default:
    		printf("It depends on the mood :D %d",day);
    		break;
    	}
    	
    	return 0;
    }
    

    Here is the running link of the program:- http://ideone.com/EKe6DO

    0 comments
    0 FacebookTwitterLinkedinWhatsappEmail
  • Question: Given 2 sorted arrays, find the intersection elements between them. Array 1: 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26 Array 2: 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33 Output: 6, 12, 18, 24 Let’s called Array1 as “A” and Array2 as “B”, each with size m and n. The obvious brute-force solution is to scan through each element in A, and for each element in A, scan if that element exist in B. The running time complexity is O(m*n).…

    0 FacebookTwitterLinkedinWhatsappEmail
  • Arrays

    The Stock Market Problem

    by nikoo28
    3 minutes read

    Question: Let us suppose we have an array whose ith element gives the price of a share on the day i. If you were only permitted to buy one share of the stock and sell one share of the stock, design an algorithm to find the best times to buy and sell. When we talk about the best times to sell and buy, we mean that we want the best profit possible. A profit is possible when our buying rate is less than the selling rate. We need to maximize…

    0 FacebookTwitterLinkedinWhatsappEmail
  • Strings

    Longest substring without repeating characters

    by nikoo28
    3 minutes read

    Question: Given a string, find the length of the longest substring without repeating characters. Input: “abcabcbb” Output: “abc” Input: “bbbb” Output: “b” The longest substring without repeating letters for “abcabcbb” is “abc”, which the length is 3. For “bbbbb” the longest substring is “b”, with the length of 1. We definitely have the brute-force method, where we find each string and then compare. But we want to speed up the process. How can we can look up if a character had existed in the substring instantaneously? The answer is using…

    0 FacebookTwitterLinkedinWhatsappEmail
  • Misc

    Make a fair coin from a biased coin.

    by nikoo28
    2 minutes read

    Question: You are given a function foo() that represents a biased coin. When foo() is called, it returns 0 with 60% probability, and 1 with 40% probability. Write a new function that returns 0 and 1 with 50% probability each. Your function should use only foo(), no other library method. We know foo() returns 0 with 60% probability. How can we ensure that 0 and 1 are returned with 50% probability? If we can somehow get two cases with equal probability, then we are done. We call foo() two times.…

    0 FacebookTwitterLinkedinWhatsappEmail
  • Trees

    Find the left view of a binary tree.

    by nikoo28
    2 minutes read

    Question: Given the root pointer to a binary tree, find the left view of the tree. Input: Sample Tree (Pointer to node 1 is given). Output: 1, 2, 4 At a single glance of the problem, we can understand that we need to perform a level order traversal on the tree. This is similar to finding the number of levels in a tree. At the start of each level, we just print the first element. This can be done with the algorithm below:- void leftViewOfBinaryTree(struct binaryTreeNode * root) { //…

    0 FacebookTwitterLinkedinWhatsappEmail

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More