User Tools

Site Tools


study_2

This is an old revision of the document!


Binary Heaps

Good Binary Heap Tutorial

enqueue or dequeue items in O(logn)

Priority Queues use a min heap or max heap

Reverse Singly Linked List
prev = None
cur = head
while cur:
  next_node = cur.next
  cur.next = prev
  prev = cur
  cur = next_node
head = prev
Reverse Double Linked List
void reverse() { 
        Node temp = null; 
        Node current = head; 
  
        /* swap next and prev for all nodes of  
         doubly linked list */
        while (current != null) { 
            temp = current.prev; 
            current.prev = current.next; 
            current.next = temp; 
            current = current.prev; 
        } 
  
        /* Before changing head, check for the cases like empty  
         list and list with only one node */
        if (temp != null) { 
            head = temp.prev; 
        } 
    } 
Power Sets

All combinations of letters in a string.

Trick = use an integer counter.

        /*set_size of power set of a set 
        with set_size n is (2**n -1)*/
        long pow_set_size =  
            (long)Math.pow(2, set_size); 
        int counter, j; 
      
        /*Run from counter 000..0 to 
        111..1*/
        for(counter = 0; counter <  
                pow_set_size; counter++) 
        { 
            for(j = 0; j < set_size; j++) 
            { 
                /* Check if jth bit in the  
                counter is set If set then  
                print jth element from set */
                if((counter & (1 << j)) > 0) 
                    System.out.print(set[j]); 
            } 
              
            System.out.println(); 
        } 
Tries
N Choose K

n!/((n-k)!k!)

Knapsack
Coins
Quick Sort
Heaps
Spiral
Quick Sort
Priority Queues
study_2.1592841472.txt.gz · Last modified: 2020/06/22 15:57 by jrseti