NetSim Source Code Help
Loading...
Searching...
No Matches
OSPF_dijkstra.h
Go to the documentation of this file.
1/************************************************************************************
2* Copyright (C) 2021 *
3* TETCOS, Bangalore. India *
4* *
5* Tetcos owns the intellectual property rights in the Product and its content. *
6* The copying, redistribution, reselling or publication of any or all of the *
7* Product or its content without express prior written consent of Tetcos is *
8* prohibited. Ownership and / or any other right relating to the software and all *
9* intellectual property rights therein shall remain at all times with Tetcos. *
10* *
11* This source code is licensed per the NetSim license agreement. *
12* *
13* No portion of this source code may be used as the basis for a derivative work, *
14* or used, for any purpose other than its intended use per the NetSim license *
15* agreement. *
16* *
17* This source code and the algorithms contained within it are confidential trade *
18* secrets of TETCOS and may not be used as the basis for any other software, *
19* hardware, product or service. *
20* *
21* Author: Ramsaran Giri *
22* *
23* ----------------------------------------------------------------------------------*/
24#ifndef _NETSIM_APP_ROUTING_H_
25#define _NETSIM_APP_ROUTING_H_
26#ifdef __cplusplus
27extern "C" {
28#endif
29
30 // A structure to represent a node in adjacency list
32 {
33 int dest;
34 int weight;
37 };
38
39 // A structure to represent an adjacency list
40 struct AdjList
41 {
42 struct AdjListNode* head; // pointer to head node of list
43 };
44
45 // A structure to represent a graph. A graph is an array of adjacency lists.
46 // Size of array will be V (number of vertices in graph)
47 struct Graph
48 {
49 int V;
50 struct AdjList* array;
51 };
52
53 //A structure to store the shortest path from source to destination
54 typedef struct Path
55 {
56 int node;
57 struct Path* next;
59
60 // Structure to represent a min heap node
61 typedef struct MinHeapNode
62 {
63 int v;
64 int dist;
66
67 // Structure to represent a min heap
68 struct MinHeap
69 {
70 int size; // Number of heap nodes present currently
71 int capacity; // Capacity of min heap
72 int* pos; // This is needed for decreaseKey()
74 };
75
76#ifdef __cplusplus
77}
78#endif
79#endif //_NETSIM_APP_ROUTING_H_
struct Path PATH
struct MinHeapNode MINHEAP
struct MinHeapNode * ptrMINHEAP
struct Path * ptrPATH
struct AdjListNode * head
Definition: OSPF_dijkstra.h:42
struct AdjListNode * next
Definition: OSPF_dijkstra.h:36
struct AdjList * array
Definition: OSPF_dijkstra.h:50
struct MinHeapNode ** array
Definition: OSPF_dijkstra.h:73
int capacity
Definition: OSPF_dijkstra.h:71
int * pos
Definition: OSPF_dijkstra.h:72
int node
Definition: OSPF_dijkstra.h:56
struct Path * next
Definition: OSPF_dijkstra.h:57