Здравствуйте ))) Помогите пожалуйста. Нужно написать программу поиска в глубину и в ширину.

В коде где то ошибка. Помогите кто может, буду очень благодарен))
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <locale.h>
void Stack(int *,int);
void Vertex(int *,int);
void Delete(int *,int);
int *A=0;
struct graf
{
int first;
int second;
};
void main()
{
bool k;
int m,n,i,val,b,*A,*V;
setlocale( LC_ALL, "rus" );
graf g[10];
printf("\n\t Введите количество вершин: ");
scanf("%d",&n);
printf("\n\t Введите количество ребер: ");
scanf("%d",&m);
A=(int *)calloc(n, sizeof(int));
V=(int *)calloc(n, sizeof(int));
for(i=0;i<n;i++)
A[i]=(int )calloc(n, sizeof(int));
for(i=0;i<n;i++)
V[i]=(int )calloc(n, sizeof(int));

printf("\n\t Введите через пробел имя первой вершины и имя второй вершины, смежной с первой: \n");
for(i=0;i<m;i++)
scanf("%d %d", &g[i].first, &g[i].second);
printf("\t Граф: \n\t");
for(i=0;i<m;i++)
printf("%d) %d %d\n\t",i+1,g[i].first,g[i].second);
printf("\n\t Введите начальную вершину, с которой хотите начать поиск: ");
scanf("%d",&val);
printf("\n\t Введите конечную вершину, в которой хотите закончить поиск: ");
scanf("%d",&b);
Stack(A,val);
Vertex(V,val);
for(i=0;i<1;i++)
printf("\n\t Стек1: %d",A[i]);
do
{
if(val==b)
{
printf("\n\t Вершина %d найдена",b);
break;
}
else
{
k=false;
for(i=0;i<m;i++)
if((g[i].first==val)||(V[val]!=1)||(val!=b))
{
val=g[i].second;
Stack(A,val);
Vertex(V,val);
k=true;
}
for(i=0;i<m;i++)
if((g[i].second==val)||(V[val]!=1)||(val!=b))
{
val=g[i].first;
Stack(A,val);
Vertex(V,val);
k=true;
}
if(!k)
Delete(A,val);
}
}
while(val==b);
system("pause");
}
void Stack(int *A,int val)
{
int SP=0;
A[SP]=val;
SP++;
printf("\n\t В стек добавлена вершина %d",val);
}
void Vertex(int *V,int val)
{
V[val]=1;
}
void Delete(int *A,int val)
{
int SP;
A[SP]=0;
SP--;
}

Регистрируйтесь, делитесь ссылками в соцсетях, получайте на WMR кошелек 20% с каждого денежного зачисления пользователей, пришедших на проект по Вашей ссылке. Подробнее
После регистрации Вы также сможете получать до 100 руб за каждую тысячу уникальных поисковых переходов на Ваш вопрос или ответ Подробнее
ЛУЧШИЙ ОТВЕТ
@
Советник (4304)
Могу только в высоту.))
ЕЩЕ ОТВЕТЫ
Наставник (43243)
Вы хотя бы рисунок привели бы, чтобы лучше по6ять то, что Вы задумали. Кстати вопрос можно разместить и в категории программирование. Вполне подходит!