من جستجوي عمقي يا dfs رو با استفاده از ماتريس مجاورت پياده سازي كردم
عملكرد برنامه هم به اين صورت هست كه به هر يك از گره هاي گراف يا درخت يك شماره (0 ريشه جستجو هست) داده ميشه و پس از وارد كردن ماتريس مجاورت، شماره گرهي رو كه دنبالش مي گرديم رو وارد مي كنيم و برنامه شروع به پيمايش به روش عمقي ميكنه
اينم كد
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int **w,*visit;
int v,s,i,j,n,t,f=0;
int pdfs(int v)
{
int k;
visit[v]=1;
printf("% d",v);
if (v==t)
{
f=1;
return 0;
}
for(k=0;k<n;k++)
if (w[v][k]==1)
if (!visit[k])
pdfs(k);
}
void main()
{
clrscr();
s=0;
printf("\nEnter number of vertex:");
scanf("%d",&n);
w=new int*[n];
for(i=0;i<n;i++)
w[i]=new int[n];
visit=new int[n];
for(i=0;i<n;i++)
visit[i]=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("w[%d][%d] ==> ",i,j);
scanf("%d",&w[i][j]);
}
printf("\nEnter Your Node Number to search:");
scanf("%d",&t);
printf("\nYour depth first search traverse is:");
pdfs(s);
if (f==0)
printf("\n\nPath not found from %d to %d",s,t);
getch();
}