 # C++ Programming Code Examples

## C++ > Computer Graphics Code Examples

### Program to Find the Shortest Path Between Two Vertices Using Dijkstra's Algorithm

``` Program to Find the Shortest Path Between Two Vertices Using Dijkstra's Algorithm This is a C++ Program to check whether path exists between two given nodes. The idea is to run the depth first search algorithm with the given source node, if during dfs we visit destination node, path exists, not otherwise. #include <iostream> #include <list> using namespace std; // This class represents a directed graph using adjacency list representation class Graph { int V; // No. of vertices list<int> *adj; // Pointer to an array containing adjacency lists public: Graph(int V); // Constructor void addEdge(int v, int w); // function to add an edge to graph bool isReachable(int s, int d); // returns true if there is a path from s to d }; Graph::Graph(int V) { this->V = V; adj = new list<int> [V]; } void Graph::addEdge(int v, int w) { adj[v].push_back(w); // Add w to v's list. } // A BFS based function to check whether d is reachable from s. bool Graph::isReachable(int s, int d) { // Base case if (s == d) return true; // Mark all the vertices as not visited bool *visited = new bool[V]; for (int i = 0; i < V; i++) visited[i] = false; // Create a queue for BFS list<int> queue; // Mark the current node as visited and enqueue it visited[s] = true; queue.push_back(s); // it will be used to get all adjacent vertices of a vertex list<int>::iterator i; while (!queue.empty()) { // Dequeue a vertex from queue and print it s = queue.front(); queue.pop_front(); // Get all adjacent vertices of the dequeued vertex s // If a adjacent has not been visited, then mark it visited // and enqueue it for (i = adj[s].begin(); i != adj[s].end(); ++i) { // If this adjacent node is the destination node, then return true if (*i == d) return true; // Else, continue to do BFS if (!visited[*i]) { visited[*i] = true; queue.push_back(*i); } } } return false; } // Driver program to test methods of graph class int main() { // Create a graph given in the above diagram Graph g(4); g.addEdge(0, 1); g.addEdge(0, 2); g.addEdge(1, 2); g.addEdge(2, 0); g.addEdge(2, 3); g.addEdge(3, 3); cout << "Enter the source and destination vertices: (0-3)"; int u, v; cin >> u >> v; if (g.isReachable(u, v)) cout << "\nThere is a path from " << u << " to " << v; else cout << "\nThere is no path from " << u << " to " << v; int temp; temp = u; u = v; v = temp; if (g.isReachable(u, v)) cout << "\nThere is a path from " << u << " to " << v; else cout << "\nThere is no path from " << u << " to " << v; return 0; } ```

C Coding Find sum of Odd Numbers 1 to n - C program find sum of all odd numbers from 1 to n using for loop. Input upper limit to find sum of odd numbers from user. Store it in a variable say N and initialize other variable to

Code Calculate Score Intersecting Ngrams - C Get ngrams for first word. Get ngrams for second word. Compare two arrays, count duplicates. Calculate score. Clean up. Return array of ngrams. Padd word according to one

Trim Leading & Trailing white spaces from - I already explained how to remove leading as well as trailing white space characters from a given string. In this program we will Combine the logic of both in a single program. Logic to

A Single Line Comment in C++ Language - Any words in a line after "//" are "ignored" by the compiler. if you want to write a comment about 'what is about code doing' you have to write it in the following way: The "//" symbols

C++ Sorts a given Data using Stooge Sort - Stooge sort is a recursive sorting algorithm. It Divides the Array into 2 overlapping parts, 2/3 each. Sort the first part. Sort second part and again sort the first part. Then Print the Result

Find ith Largest Number from a Given List - It is an improvement in BST by adding 2 more key functions - 'rank()' and 'select()'. The time complexity of Order-Statistic tree generation is O(n+n*log(n)). Once the tree is constructed

Collection of Sorting & Selection Routines - Shellsort, using Shell's (poor) increments. An Internal method for heapsort. i is the index of an item in the heap. Returns the index of the left child. Internal method for heapsort that is

Program Code Demonstrate Nested Printf - Print to 'abcdefghijklmnopqrstuvwxyz' while executing inner printf. Length of the "abcdfg hijklmnopqrstuvwxyz" is 26. Printf will return Length of String. It returns 26 to outer printf