《数据结构B》实验报告
系 计算机与电子 专业 级 01 __班
姓名学号2010年1 0月 9日
1. 上机题目: 图的存储和遍历
2. 详细设计
#include<>
#define GRAPHMAX 10
#define FALSE 0
#define TRUE 1
#define error printf
#define QueueSize 30
typedef struct
{
char vexs[GRAPHMAX];
int edges[GRAPHMAX][GRAPHMAX];
int n,e;
}MGraph;
int visited[10];
typedef struct
{
int front,rear,count;
int data[QueueSize];
}CirQueue;
void InitQueue(CirQueue *Q)
{
Q->front=Q->rear=0;
Q->count=0;
}
int QueueEmpty(CirQueue *Q)
{
return Q->count=QueueSize;
}
int QueueFull(CirQueue *Q)
{
return Q->count==QueueSize;
}
void EnQueue(CirQueue *Q,int x)
{
if(QueueFull(Q))
error("Queue overflow");
else
{ Q->count++;
Q->data[Q->rear]=x;
Q->rear=(Q->rear+1)%QueueSize;
}
}
int DeQueue(CirQueue *Q)
{
int temp;
if(QueueEmpty(Q))
{ error("Queue underflow");
return NULL;
}
else
{ temp=Q->data[Q->front]; Q->count--;
Q->front=(Q->front+1)%QueueSize;
return temp;
}
}
void CreateMGraph(MGraph *G)
{
int i,j,k;
char ch1,ch2;
printf("\n\t\t请输入定点数,边数并按回车(格式如:3,4):");
scanf("%d,%d",&(G->n),&(G->e));
for(i=0;i<G->n;i++)
{ getchar();
printf("\n\t\t请输入第%d个定点数并按回车:",i+1);
scanf("%c",&(G->vexs[i]));
}
for(i=0;i<G->n;i++)
for(j=0;j<G->n;j++)
G->edges
【数据结构】图的存储和遍历实验报告 来自淘豆网m.daumloan.com转载请标明出处.