⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 停车厂.txt

📁 停车场内只有一个可停放n辆汽车的狭长通道
💻 TXT
字号:
#include <stdlib.h>
#define maxvex 30
struct edgenode
{int adjvex;
 char info;
 struct edgenode*next;
};
struct vexnode
{char data;
 struct edgenode*link;
};
typedef struct vexnode adjlist[maxvex];
adjlist tu1;
void creategraph(adjlist g,int n)
{int e,i,s,d;
 struct edgenode*p,*q;
 printf("the point(n) and edge(e):");
 scanf("%d,%d",&n,&e);
 for(i=1;i<=n;i++)
  {getchar();
   printf("\tthe %d information:",i);
   scanf("%c",&g[i].data);
   g[i].link=NULL;
   }
  for(i=1;i<=e;i++)
  {printf("\nthe%d edges=>\n\t :",i);
   scanf("%d,%d",&s,&d);
   p=(struct edgenode*)malloc(sizeof(struct edgenode));
   q=(struct edgenode*)malloc(sizeof(struct edgenode));
   p->adjvex=d;
   p->info=g[d].data;
   q->adjvex=s;
   q->info=g[s].data;
   p->next=g[s].link;
   g[s].link=p;
   q->next=g[d].link;
   g[d].link=q;
   }
}
int visited[maxvex];
void dfs(adjlist adj,int v)
{int i;
 struct edgenode*p;
 visited[v]=1;
 printf("now is at point %d",v);
 p=adj[v].link;
 printf("the data is %c \n",adj[v].data);
 getch();
 while(p)
  {if(visited[p->adjvex]==0)
     dfs(adj,p->adjvex);
   p=p->next;
  }
}
int quene[maxvex];
void bfs(adjlist adj,int vi)
{int m=maxvex;
 int front=0,rear=1,v;
 struct edgenode*p;
 visited[vi]=1;
 printf("now visit the point:%d\n",vi);
 getch();quene[rear]=vi;
 while(front!=rear)
  {front=(front+1)%m;
   v=quene[front];
   p=adj[v].link;
   while(p)
    {if(visited[p->adjvex]==0)
      {visited[p->adjvex]=1;
       printf("now visit the point:%d\n",p->adjvex);
       getch();
       rear=(rear+1)%m;
       quene[rear]=p->adjvex;
       }
     p=p->next;
    }
  }
}
void main()
{int i;clrscr();
 creategraph(tu1,0);
 for(i=1;i<maxvex;i++)
  visited[i]=0;
 dfs(tu1,1);getch();
 for(i=1;i<maxvex;i++)
  visited[i]=0;
 bfs(tu1,1);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -