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

📄 guangdubianlitu.cpp

📁 关于数据结构的各章节的c原代码实现
💻 CPP
字号:
// guangdubianlitu.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#define  MAX 20
typedef struct node
{
	int vertex;
	struct node* next;
}ajnode;
typedef ajnode* link;
ajnode head[6];
int visited[6];
int queue[MAX];
int front=-1;
int rear=-1;
int enqueue(int value)
{
  if(rear>=MAX)return -1;
  queue[++rear]=value;
}
int dequeue()
{
	if(front==rear)return -1;
	return queue[++front];
}
void bfs(int current)
{
	link p;
	enqueue(current);
	visited[current]=1;
	printf("顶点[%d]",current);
	while (front!=rear)
	{
		current=dequeue();
		p=head[current].next;
		while (p!=NULL)
		{    
		if(visited[p->vertex]==0)
		{
			printf("顶点[%d]",p->vertex);
            visited[p->vertex]=1;
			enqueue(p->vertex);
		}
         p=p->next;
		}
	}

}
void creategraph(int *node,int n)
{
   link p,newnode;
   int from,to;
   for (int i=0;i<n;i++)
   {
	   from=node[2*i];
	   to=node[2*i+1];
	   newnode=(link)malloc(sizeof(ajnode));
	   newnode->vertex=to;
	   newnode->next=NULL;
	   p=&(head[from]);
	   while(p->next!=NULL)p=p->next;
	     p->next=newnode;


   }

}
int main(int argc, char* argv[])
{   int node[12][2]={{1,2},{2,1},{1,3},{3,1},{2,3},{3,2},{2,4},{4,2},{3,5},{5,3},{4,5},{5,4}};
        link p;
	   for (int i=1;i<6;i++)
	 {
		head[i].vertex=i;
		head[i].next=NULL;
        visited[i]=0;
    }
	creategraph(node[0],12);
	for (i=1;i<6;i++)
	{
		printf("顶点%d",head[i].vertex);
		p=head[i].next;
		while (p!=NULL)
		{
			printf("=>%d",p->vertex);
			p=p->next;
		}
printf("\n");
	}
	bfs(1);
	
	printf("\n");

	return 0;

}

⌨️ 快捷键说明

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