急需建立无向图的邻接表,并实现该图的广度优先遍历(C语言代码) 如果可以运行追加分数
我们只是学过这几个#include<stdio.h>#include<malloc.h>#include<math.h>#include<string.h>请问“慢慢习惯...
我们只是学过这几个#include<stdio.h> #include<malloc.h> #include<math.h> #include<string.h> 请问“慢慢习惯_欣 ”你的程序没有打完吗 后边那些函数的定义都没有啊
展开
3个回答
展开全部
我只有有向图生成的算法
#include <iostream>
#include <malloc.h>
#include <string.h>
using namespace std;
struct BitNode
{
char bitdata[10];
struct BitNode *lchild,*rchild;
};
class Dui
{
public:
Dui();
void In(struct BitNode *p);
void Out();
~Dui();
struct Node
{
struct BitNode *p;
struct Node *next;
};
struct Node *front,*rear,*temp;
};
Dui::Dui()
{
front=rear=(struct Node *)malloc(sizeof(struct Node));
}
Dui::~Dui()
{
cout<<"调用了析构函数"<<endl;
}
void Dui::In(struct BitNode *p)
{
rear->p=p;
rear->next=(struct Node *)malloc(sizeof(struct Node));
rear=rear->next;
}
void Dui::Out()
{
if(rear==front)
{
cout<<"No data"<<endl;
}
else
{
temp=(struct Node *)malloc(sizeof(struct Node));
temp=front;
front=front->next;
free(temp);
}
}
int main()
{
Dui Q;
struct BitNode *BT=NULL,*R;
char a[10],b[10],S[10];
while(1)
{
cout<<"Please input a,b,S:"<<endl;
cin>>a>>b>>S;
if(strcmp("#",b)==0)
{
cout<<"OVER"<<endl;
exit(0);
}
struct BitNode *p;
p=(struct BitNode *)malloc(sizeof(struct BitNode));
strcpy(p->bitdata,b);
if(strcmp("#",a)!=0)
{
heaven: R=Q.front->p;
if(strcmp(R->bitdata,a)==1)
{
if(strcmp(S,"L")==1)
{
R->lchild=p;
}
else
{
R->rchild=p;
Q.Out();
}
}
else
{
Q.Out();
goto heaven;
}
Q.In(p);
}
else
{
BT=p;
Q.In(p);
}
}
return 0;
}
#include <iostream>
#include <malloc.h>
#include <string.h>
using namespace std;
struct BitNode
{
char bitdata[10];
struct BitNode *lchild,*rchild;
};
class Dui
{
public:
Dui();
void In(struct BitNode *p);
void Out();
~Dui();
struct Node
{
struct BitNode *p;
struct Node *next;
};
struct Node *front,*rear,*temp;
};
Dui::Dui()
{
front=rear=(struct Node *)malloc(sizeof(struct Node));
}
Dui::~Dui()
{
cout<<"调用了析构函数"<<endl;
}
void Dui::In(struct BitNode *p)
{
rear->p=p;
rear->next=(struct Node *)malloc(sizeof(struct Node));
rear=rear->next;
}
void Dui::Out()
{
if(rear==front)
{
cout<<"No data"<<endl;
}
else
{
temp=(struct Node *)malloc(sizeof(struct Node));
temp=front;
front=front->next;
free(temp);
}
}
int main()
{
Dui Q;
struct BitNode *BT=NULL,*R;
char a[10],b[10],S[10];
while(1)
{
cout<<"Please input a,b,S:"<<endl;
cin>>a>>b>>S;
if(strcmp("#",b)==0)
{
cout<<"OVER"<<endl;
exit(0);
}
struct BitNode *p;
p=(struct BitNode *)malloc(sizeof(struct BitNode));
strcpy(p->bitdata,b);
if(strcmp("#",a)!=0)
{
heaven: R=Q.front->p;
if(strcmp(R->bitdata,a)==1)
{
if(strcmp(S,"L")==1)
{
R->lchild=p;
}
else
{
R->rchild=p;
Q.Out();
}
}
else
{
Q.Out();
goto heaven;
}
Q.In(p);
}
else
{
BT=p;
Q.In(p);
}
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
#include <iostream>
#include <cstring>
using namespace std;
int e, uu, vv, n, m, i, l, r, j, k;
int edge[100], next[1000], point[1000], back[1000], q[1000];
bool v[100];
void link(int u, int v)
{
point[++e] = v; next[e] = edge[u]; edge[u] = e;
point[++e] = u; next[e] = edge[v]; edge[v] = e;
back[e] = e-1; back[e-1] = e;
}
int main()
{
freopen(
freopen(
#include <cstring>
using namespace std;
int e, uu, vv, n, m, i, l, r, j, k;
int edge[100], next[1000], point[1000], back[1000], q[1000];
bool v[100];
void link(int u, int v)
{
point[++e] = v; next[e] = edge[u]; edge[u] = e;
point[++e] = u; next[e] = edge[v]; edge[v] = e;
back[e] = e-1; back[e-1] = e;
}
int main()
{
freopen(
freopen(
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我编写了一个你看看吧!应该没有什么问题。
#include<stdio.h>
#include<malloc.h>
#define NULL 0
#define maxvernum 100
typedef struct node
{
int adjvex;
struct node *next;
}nodetype;
typedef struct frontnode
{
int data;
struct node *next;
}frontnodetype;
frontnodetype adjlist[maxvernum];
/*********************************************/
void main()
{
void bfs(frontnodetype g[],int v,int c[]);
void travelgraph(frontnodetype g[],int n);
frontnodetype adjlist[6];
int i,j,m;
for(i=1;i<=5;i++)
{
adjlist[i].data=i;
adjlist[i].next=NULL;
}
for(j=1;j<=5;j++)
{
printf("进入第%d次循环\n",j);
printf("开始输入前请输入一个不为0的m值以便输入\n");
scanf("%d",&m);
while(m!=0)
{
int x;
printf("请输入结点序号(x=0表示后面没有结点):\n");
if(x!=0)
{
scanf("%d",&x);
nodetype *p;
p=(nodetype *)malloc(sizeof(nodetype));
p->adjvex=x;p->next=NULL;
p->next=adjlist[j].next;
adjlist[j].next=p;
}
else break;
printf("是否停止?(m为0时停止输入,m为1时继续输入。)\n");
scanf("%d",&m);
}
}
printf("广度优先搜索序列为:\n");
travelgraph(adjlist,5);
}
/************************************************/
void bfs(frontnodetype g[],int v,int c[])
{
int q[6],r=0,f=0;
nodetype *p;
c[v]=1;
printf("%d\n",v);
q[0]=v;
whille(f<=r)
{
v=q[f++];
p=g[v].next;
while(p!=NNLL)
{
v=p->adjvex;
if(c[v]==0)
{
c[v]=1;
printf("%d\n",v);
}
p=p->next;
}
}
}
/************************************************/
void travelgraph(frontnodetype g[],int n)
{
int v;
int c[6];
for(v=1;v<=n;v++)
c[v]=0;
for(v=1;v<=n;v++)
if(c[v]==0)
dfs(g,v,c);
}
#include<stdio.h>
#include<malloc.h>
#define NULL 0
#define maxvernum 100
typedef struct node
{
int adjvex;
struct node *next;
}nodetype;
typedef struct frontnode
{
int data;
struct node *next;
}frontnodetype;
frontnodetype adjlist[maxvernum];
/*********************************************/
void main()
{
void bfs(frontnodetype g[],int v,int c[]);
void travelgraph(frontnodetype g[],int n);
frontnodetype adjlist[6];
int i,j,m;
for(i=1;i<=5;i++)
{
adjlist[i].data=i;
adjlist[i].next=NULL;
}
for(j=1;j<=5;j++)
{
printf("进入第%d次循环\n",j);
printf("开始输入前请输入一个不为0的m值以便输入\n");
scanf("%d",&m);
while(m!=0)
{
int x;
printf("请输入结点序号(x=0表示后面没有结点):\n");
if(x!=0)
{
scanf("%d",&x);
nodetype *p;
p=(nodetype *)malloc(sizeof(nodetype));
p->adjvex=x;p->next=NULL;
p->next=adjlist[j].next;
adjlist[j].next=p;
}
else break;
printf("是否停止?(m为0时停止输入,m为1时继续输入。)\n");
scanf("%d",&m);
}
}
printf("广度优先搜索序列为:\n");
travelgraph(adjlist,5);
}
/************************************************/
void bfs(frontnodetype g[],int v,int c[])
{
int q[6],r=0,f=0;
nodetype *p;
c[v]=1;
printf("%d\n",v);
q[0]=v;
whille(f<=r)
{
v=q[f++];
p=g[v].next;
while(p!=NNLL)
{
v=p->adjvex;
if(c[v]==0)
{
c[v]=1;
printf("%d\n",v);
}
p=p->next;
}
}
}
/************************************************/
void travelgraph(frontnodetype g[],int n)
{
int v;
int c[6];
for(v=1;v<=n;v++)
c[v]=0;
for(v=1;v<=n;v++)
if(c[v]==0)
dfs(g,v,c);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询