This page is no longer maintained on GeeksforGeeks. It is now being maintained @ below link on GeeksQuiz.
GATE Corner on GeeksQuiz

GATE CS 2016 Syllabus and Important Dates
GATE CS Notes
GATE CS Forum

GATE CS 2015 Mock Tests

Topic wise solutions of previous year question papers:

Mock tests of previous year papers:

Year wise solutions of previous year question papers:

Topic wise Mock Tests

Data Structures and Algorithms:

Operating Systems:

DBMS: 

Compiler Design:

Computer Organization and Architecture:

Computer Networks:

Theory of Computation:

Aptitude:

Engineering Mathematics:

Topic wise Reference Books/Material

1) Data Structures and Algorithms:

2) Database Management System

3) Computer Networks

4) Operating Systems

5) Compiler Design

See the previous year questions papers here.

We will be adding more reference books/material soon.



Company Wise Coding Practice    Topic Wise Coding Practice

  • ketan

    please provide for digital electronics.

  • gate aspirant

    plzz provide the solution for gate 2013 also

  • roshni mishra

    For Detail syllabus of gate visit GATE Exam Syllabus 2014

  • Somya Jain

    Please send some code re factoring codes example in c or suggest some site for the same.

     
    /* Paste your code here (You may delete these lines if not writing code) */
     
  • RM

    Thanks a lot for compiling such useful information at one place.

  • Aruna

    #include
    #include
    #include
    #include

    // A structure to represent a Point in 2D plane
    struct Point
    {
    int x, y;
    };

    /* Following two functions are needed for library function qsort().
    Refer: http://www.cplusplus.com/reference/clibrary/cstdlib/qsort/ */

    // Needed to sort array of points according to X coordinate
    int compareX(const void* a, const void* b)
    {
    Point *p1 = (Point *)a, *p2 = (Point *)b;
    return (p1->x – p2->x);
    }
    // Needed to sort array of points according to Y coordinate
    int compareY(const void* a, const void* b)
    {
    Point *p1 = (Point *)a, *p2 = (Point *)b;
    return (p1->y – p2->y);
    }

    // A utility function to find the distance between two points
    float dist(Point p1, Point p2)
    {
    return sqrt( (p1.x – p2.x)*(p1.x – p2.x) +
    (p1.y – p2.y)*(p1.y – p2.y)
    );
    }

    // A Brute Force method to return the smallest distance between two points
    // in P[] of size n
    float bruteForce(Point P[], int n)
    {
    float min = FLT_MAX;
    for (int i = 0; i < n; ++i)
    for (int j = i+1; j < n; ++j)
    if (dist(P[i], P[j]) < min)
    min = dist(P[i], P[j]);
    return min;
    }

    // A utility function to find minimum of two float values
    float min(float x, float y)
    {
    return (x < y)? x : y;
    }

    // A utility function to find the distance beween the closest points of
    // strip of given size. All points in strip[] are sorted accordint to
    // y coordinate. They all have an upper bound on minimum distance as d.
    // Note that this method seems to be a O(n^2) method, but it's a O(n)
    // method as the inner loop runs at most 6 times
    float stripClosest(Point strip[], int size, float d)
    {
    float min = d; // Initialize the minimum distance as d

    qsort(strip, size, sizeof(Point), compareY);

    // Pick all points one by one and try the next points till the difference
    // between y coordinates is smaller than d.
    // This is a proven fact that this loop runs at most 6 times
    for (int i = 0; i < size; ++i)
    for (int j = i+1; j < size && (strip[j].y – strip[i].y) < min; ++j)
    if (dist(strip[i],strip[j]) < min)
    min = dist(strip[i], strip[j]);

    return min;
    }

    // A recursive function to find the smallest distance. The array P contains
    // all points sorted according to x coordinate
    float closestUtil(Point P[], int n)
    {
    // If there are 2 or 3 points, then use brute force
    if (n <= 3)
    return bruteForce(P, n);

    // Find the middle point
    int mid = n/2;
    Point midPoint = P[mid];

    // Consider the vertical line passing through the middle point
    // calculate the smallest distance dl on left of middle point and
    // dr on right side
    float dl = closestUtil(P, mid);
    float dr = closestUtil(P + mid, n-mid);

    // Find the smaller of two distances
    float d = min(dl, dr);

    // Build an array strip[] that contains points close (closer than d)
    // to the line passing through the middle point
    Point strip[n];
    int j = 0;
    for (int i = 0; i < n; i++)
    if (abs(P[i].x – midPoint.x) < d)
    strip[j] = P[i], j++;

    // Find the closest points in strip. Return the minimum of d and closest
    // distance is strip[]
    return min(d, stripClosest(strip, j, d) );
    }

    // The main functin that finds the smallest distance
    // This method mainly uses closestUtil()
    float closest(Point P[], int n)
    {
    qsort(P, n, sizeof(Point), compareX);

    // Use recursive function closestUtil() to find the smallest distance
    return closestUtil(P, n);
    }

    // Driver program to test above functions
    int main()
    {
    Point P[] = {{2, 3}, {12, 30}, {40, 50}, {5, 1}, {12, 10}, {3, 4}};
    int n = sizeof(P) / sizeof(P[0]);
    printf("The smallest distance is %f ", closest(P, n));
    return 0;
    }

  • ankush gupta
     
    From which site can i practice for a page table numerical question
     
  • shashank
  • harish

    please add some links for Discrete mathematics

  • harish

    helpful for gate prep