Code that finds a shortest path in a dense graph, using Dijkstra's algorithm in the simple array version. You write a function
struct listnode shortest path(int n, int s, int t, int *dist) with struct listnode f struct listnode * next; int vertexnumber; g ;
Being used to return the list of vertices on the shortest path. Your function has the following arguments:
- n: the number of vertices of the graph, - s: the start vertex, - t: the target vertex - dist: the matrix of edgelengths.
The vertices are numbered from 0 to n -1, so s and t are numbers in that range. dist is a pointer to the n * n matrix of edgelengths; vertices which are not connected will be joined by an edge of length 9999. To access the array element dist[i][j], we can use *(dist + i*n + j). Your function should return the list of vertices on the shortest path from s to t, starting with s and ending with t.
I'm working on a maze solving program. So far I got the program to solve a maze using the recursive backtracking algorithm. I represent the maze as vector<vector<Square>> where Square is an enum that contains the kind of square (empty, wall, etc.). I use a class Point that contains 2 ints which are used for subscripting the vector of vectors. I have a Point begin and Point end. Now I want the program to solve the maze using the shortest path. I can either use the A* algorithm, Dijkstra's algorithm, or the breadth first search algorithm.
I am needing to code a shorted path algorithm through a sort of sudo-linked list. I say sudo because its not a true linked list as in *next *prev. The Data in memory that i need to do this through is in memory via a class.
The important parts of the class is one element is just an int that tells me the current node number, the second is an int that tells me how many neighbors this node has, and the third is a vector of ints containing the number of the neighboring nodes.
The vector was needed because each node type can have a different amount of neighbors.
For example if the class data looks like this:
0 1 1
that means that it is node 0, it has 1 neighbor, and the neighboring node is 1
another example:
8 3 1 2 3
means node 8, 3 neighbors, and the neighbors are nodes 1 2 3
I need to find a way to get from 1 node to another using this linked list, and the shortest path if we plan the data points well enough can be determined by how many nodes there are from start to finish.
In my C++ program, lets call it menu.exe, I want the user to be able to run a specific program when selecting a specific menu, let's call this program cios.exe.
As the users of my program can have the cios.exe installed in any folder location, I need a way to first locate where the cios.exe is located and then start it with ShellExecute. My problem is : How do I find the path to where cios.exe is located in anyones PC as it can be installed it any folder location.
I am using the gnu glpk library to calculate a linear program for my matrices. Why I get the error message exit code 3 which apparently means "The system cannot find the path specified"?
I made the code that stores and prints 5 row by 5 column values but how to find the largest number from them.What should I do to find the largest number?If I use if-else then it would be very tedious but I think there is way out with for loop but still I can't frame the logic. Here is the code
Code: #include<stdio.h> main() { int lnum[5][5]; int i,j; for(i=0;i<=4;i++) {
I have a paradigm in a loop of queues of a vector,if a condition is true,increase sizes of the queue of that particular queue in the loop of queues, if condition is false, the queuesize is left as such in loop of queues. After this operation i need to search the queue sizes of all queues and enqueue in the shortest queue.
I am trying to implement a Task scheduler where i have n number of tasks. The Idea behind my task scheduler is that in a loop of queues of a vector, task should get enqueued to the shortest queue among the loop of queues, which is done by the following code.
#include <vector> #include <queue> std::vector<std::queue<int> > q int min_index = 0; task t // implemented in the other part of the program
[Code] ....
Next i am trying to extend this paradigm to reduce the overhead time of the scheduler, Instead of searching the shortest queue every time, search after some condition ie. search the shortest queue after 5 tasks gets enqueued to the shortest queue.
i need to do something like this
#include <vector> #include <queue> std::vector<std::queue<int> > q task t // implemented in the other part of the program while(q[min_index].size()!=q[min_index].size()+5) // check whether current min_index queue's size is increased 5 more times if not goto enqueue
Write a class called MyTriangle, which models a triangle with 3 vertices, is designed as follows. It contains:
1. The MyTriangle class uses three MyPoint instances as the three vertices.
2. Three private instance variables v1, v2, v3 (instances of MyPoint), for the three vertices.
3. A constructor that constructs a MyTriangle with three points v1=(x1, y1), v2=(x2, y2), v3=(x3, y3).
4. An overloaded constructor that constructs MyTriangle given three instances of MyPoint.
5. A toString() function that returns a string description of the instance in the format "Triangle @ (x1, y1), (x2, y2), (x3, y3)".
6. A getPerimeter() function that returns the length of the perimeter in double. You should use the distance() method of MyPoint to compute the perimeter.
7. Also write a test program (called main.cpp) to test all the functions defined in the class (example of a triangle: (-2, 1), (1, 3) and (3, -3)).
class MyTriangle { MyPoint v1; MyPoint v2; MyPoint v3;
The method doesn't work properly, the point of the code is to tell the minimum value in the given matrix "m", it's supposed to take the first value of the matrix store it in min_ and then compare it to every value of the matrix, if the value stored in min_ is bigger than the current value in the loop then it's stored as the new min_ and at the end it's supposed to print that minimum...
Code: #include <stdio.h> #include <stdlib.h> #define SIZE 3 void minimum (int mat[SIZE][SIZE]){ int r,c; int min_; printf("
I want to get non-singular matrix with the C++ linear algebra library eigen, but I do not know which function works.
assume that X is matrix with dimension of 100*50. I want to get (X.transpose()*X).inverse() in C++, but error is that singular matrix occurs. Multicollinearity occurs in some columns of matrix, i just want to get non-singular matrix. Here is the matrix pivot in R software:
qr(X)$pivot
and the result is: qr(X)$pivot= 1 2 4 5 7 10 ..(11-41).. 42 45 49 50 3 6 8 9 43 44 46 47 48, that is non-singular matrix contains columns except for 3 6 8 9 43 44 46 47 48
Here is the draft of code that i designed. My task is here to create the matrix, allocate the dynamic memory for it, and to find the biggest sum of the column elements that is located over main diagonal. So main points is correct memory allocation, and the sorting to the biggest sum of column higher than diagonal.
How to find the biggest column of the matrix (higher of main diagonal) Here is the draft of code that i desighned/ Of cause it has a several mistake. My task is here to create the matrix, allocate the dynamic memory for it, and to find the biggest sum of the column elements that is located over main diagonal. So main points is correct memory allocation, and the sorting to the biggest sum of column higher than diagonal.
#include<iostream> #include<conio.h> #include<time.h> using namespace std;
I got a little question about getting the data path of my c program. I heard something like it's already given in the "int main(int argc, char **argv)". But with witch function can I get it?
For example: The program is called Pathfinder and the path is 'D:Path1Path2Pathfinder.exe'.
I am really desperate on trying to make my code work. The code is to find the eigen values of any given matrix of dimension NxN. The input can be the diagonal of any NxN matrix alongwith its subdiagonal. The code works fine for N~350 or so but when i go beyond that these errors appear.
First-chance exception at 0x00425ea4 in divide.exe: 0xC0000005: Access violation writing location 0x01141000. Unhandled exception at 0x00425ea4 in divide.exe: 0xC0000005: Access violation writing location 0x01141000.
But as i have never declared any variable statically and when i dynamically allocating memory with variables it should work like it does for smaller N values.
So I have a template, part of a larger code, that is designed to calculate the number of multiplications it took to reach a certain number. The problem is, whenever I execute the program, mults is always printing out a strange number, perhaps its actual address.
template <class T> T power3(T x, unsigned int n, unsigned int& mults) { if (n == 0) return 1; if (n == 1) return x; if (n == 2){
Main is supposed to be sending values to the power function.Write a prototype and function for calculating powers of numbers.This version should have an integer return type and take two integer inputs, for the base and the exponent. It should do the following:
• handle negative bases • return an error on negative exponents (we’re not doing those yet) • handle zero exponents
Call your function from a nested loop in main(), which calls the function using every combination of negative, zero and positive numbers for both base and exponent. This will test your function without the user having to input all the data.Any code which calls the library pow() function will lose half of the assignment points.
#include <iostream> using namespace std; int power (int, int); int main() { int size = 10; int test[size]; int base;
I am trying to do a compute and output a power set program. The numbers will be input through a file. How to do a power set. Here is my code :
#include <iostream> #include <fstream> #include <string> #include <ostream> using namespace std; int main () { string array[21]; // creates array to hold names