📄 new.c
字号:
#include"stdio.h"
#include"malloc.h"
#define M 30
/*/////////////////////*ILLUSION-EX*////////////////////////*/
typedef struct node /*节点定义*/
{
int vex;
struct node *link;
}NODE;
typedef struct tnode /*数组节点*/
{
int data;
NODE *link;
}TNODE;
/*/////////////////////*ILLUSION-EX*////////////////////////*/
void create(TNODE a[],int n) //创建节点
{
NODE *p;
int i,j;
for (i=1;i<=n;i++) //指针域清零
{
a[i].link=0;
}
printf("请输入两个关系节点(节点-节点):");
scanf("%d-%d",&i,&j);
while((j>0)&&(i>0)) //循环属于节点关系
{
p=(NODE*)malloc(sizeof(NODE));
p->vex=j;
p->link=a[i].link;
a[i].link=p;
p=(NODE*)malloc(sizeof(NODE));
p->vex=i;
p->link=a[j].link;
a[j].link=p;
printf("请输入两个关系节点(节点-节点): ");
scanf("%d-%d",&i,&j);
}
}
/*/////////////////////*ILLUSION-EX*////////////////////////*/
void output(TNODE a[], int n) //深度遍历
{
int i;
NODE *p;
printf("创建数组链表 :\n");
for (i=1;i<=n;i++)
{
printf("第%d个数组节点:",i);
p=a[i].link;
while(p)
{
printf("%d ",p->vex);
p=p->link;
}
printf("\n");
}
}
/*/////////////////////*ILLUSION-EX*////////////////////////*/
void dfs(TNODE g[],int v) //??????????????
{
int w; NODE *ptr;
ptr=g[v].link;
printf("%d\n",v);
g[v].data=1;
while (ptr)
{
w=ptr->vex;
if ( g[w].data==0) dfs(g,w);
ptr=ptr->link;
}
}
/*/////////////////////*ILLUSION-EX*////////////////////////*/
main()
{
int i,n;
TNODE adj[M];
printf("请输入图中节点的个数 : ");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
adj[i].data=0;
}
create(adj,n);
output(adj,n);
dfs(adj,1);
}
/*/////////////////////*ILLUSION-EX*////////////////////////*/
/*/////////////////////*ILLUSION-EX*////////////////////////*/
/*/////////////////////*ILLUSION-EX*////////////////////////*/
/*/////////////////////*ILLUSION-EX*////////////////////////*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -