-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgraph.txt
More file actions
128 lines (126 loc) · 1.81 KB
/
graph.txt
File metadata and controls
128 lines (126 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
//THIS SOURCE CODE WAS PROGRAMMED BY O.R.SENTHIL KUMARAN
//GRAPH TRAVERSAL
#include"stdio.h"
#include"malloc.h"
#define TRUE 1
#define FALSE 0
int i,n,m[10][10],j;
struct node
{
int data;
int visited;
char str[30];
}*a[50];
df_search()
{
for(i=0;i<n;i++)
a[i]->visited=FALSE;
for(i=0;i<n;i++)
{
if(!a[i]->visited)
{
search_from(i);
}
}
return 0;
}
search_from(int k)
{
int j;
a[k]->visited=TRUE;
strcpy(a[k]->str,"VISITED");
printf("\t%d",a[k]->data);
for(j=0;j<n;j++)
{
if((!a[j]->visited)&&(m[k][j]!=0))
search_from(j);
}
return 0;
}
bf_search()
{
int i,j,b[50];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
b[j]=0;
if(m[i][j]==1||m[0][0]==0)
{
if(b[j]!=1)
{
b[j]=1;
m[0][0]=1;
printf("\t%d",a[j]->data);
strcpy(a[j]->str,"VISITED");
}
}
}
}
return 0;
}
getdata()
{
printf("\nENTER THE NUMBER OF NODES");
scanf("%d",&n);
for(i=0;i<n;i++)
{
clrscr();
printf("\nENTER THE DATA FOR THE NODE");
fflush(stdin);
printf("\n\tNODE %d",i+1);
a[i]=(struct node *)malloc(sizeof(struct node));
scanf("%d",&a[i]->data);
for(j=0;j<n;j++)
{
printf("\nENTER THEVALUE OF THE ADJECENCY MATRIX 1 OR 0\t");
fflush(stdin);
scanf("%d",&m[i][j]);
}
}
}
void main()
{
int ch;
clrscr();
getdata();
do
{
printf("\n\tGRAPH TRAVERSAL");
printf("\n1.DEPTH FIRST SEARCH\n");
printf("\n2.BREADTH FIRST SEARCH\n");
printf("\n3.DISPLAY");
printf("\n4.EXIT");
printf("\nENTER YOUR CHOICE");
fflush(stdin);
scanf("%d",&ch);
switch(ch)
{
case 1:
df_search();
break;
case 2:
bf_search();
break;
case 3:
display();
break;
case 4:
exit();
break;
default:
printf("\nINVALID CHOICE");
break;
}
}while(ch!=4);
}
display()
{
int i;
for(i=0;i<n;i++)
{
printf("\nDATA: %d",a[i]->data);
printf("\n %s",a[i]->str);
}
return 0;
}