HEAVEN00011 2021-12-15 09:12 采纳率: 83.3%
浏览 23
已结题

输入后就没反应了 运行时间过长 为什么啊

#include<stdio.h>
#include<stdlib.h>
typedef struct line
{
int a;
struct line *f;
}line,*linek;
void make(linek n[],int v,int r,int u[])
{
linek p;
u[v]=1;
p=n[v]->f;
while(p!=NULL)
{
v=p->a;
if(u[v]!=1)
{
if(v==r)
{
printf("T");
break;
}
make(n,v,r,u);
p=p->f;
}
}
}
int main()
{
linek n[7];
int i;
n[0]=(linek)malloc(sizeof(line));
n[0]->a=0;
n[0]->f=NULL;
for(i=1;i<7;i++)
{
n[i]=(linek)malloc(sizeof(line));
n[i]->a=i;
n[i]->f=NULL;
}
linek p,y;
p=(linek)malloc(sizeof(line));
p->f=NULL;
p->a=2;
n[1]->f=p;
y=p;
p=(linek)malloc(sizeof(line));
p->f=NULL;
p->a=4;
y->f=p;
p=(linek)malloc(sizeof(line));
p->f=NULL;
p->a=5;
n[2]->f=p;
p=(linek)malloc(sizeof(line));
p->f=NULL;
p->a=6;
n[3]->f=p;
y=p;
p=(linek)malloc(sizeof(line));
p->f=NULL;
p->a=5;
y->f=p;
p=(linek)malloc(sizeof(line));
p->f=NULL;
p->a=2;
n[4]->f=p;
p=(linek)malloc(sizeof(line));
p->f=NULL;
p->a=4;
n[5]->f=p;
p=(linek)malloc(sizeof(line));
p->f=NULL;
p->a=6;
n[6]->f=p;
int v;
int e,r;
scanf("%d",&e);
scanf("%d",&r);
v=e;
int u[7]={0,0,0,0,0,0,0};
make(n,v,r,u);
return 0;
}

  • 写回答

1条回答 默认 最新

  • 书山客 2021-12-15 09:22
    关注
    #include<stdio.h>
    #include<stdlib.h>
    typedef struct line
    {
        int a;
        struct line* f;
    }line, * linek;
    void make(linek n[], int v, int r, int u[])
    {
        linek p;
        u[v] = 1;
        p = n[v]->f;
        while (p != NULL)
        {
            v = p->a;
            if (u[v] != 1)
            {
                if (v == r)
                {
                    printf("T");
                    break;
                }
                make(n, v, r, u);
            }
            p = p->f;
        }
    }
    int main()
    {
        linek n[7];
        int i;
        n[0] = (linek)malloc(sizeof(line));
        n[0]->a = 0;
        n[0]->f = NULL;
        for (i = 1; i < 7; i++)
        {
            n[i] = (linek)malloc(sizeof(line));
            n[i]->a = i;
            n[i]->f = NULL;
        }
        linek p, y;
        p = (linek)malloc(sizeof(line));
        p->f = NULL;
        p->a = 2;
        n[1]->f = p;
        y = p;
        p = (linek)malloc(sizeof(line));
        p->f = NULL;
        p->a = 4;
        y->f = p;
        p = (linek)malloc(sizeof(line));
        p->f = NULL;
        p->a = 5;
        n[2]->f = p;
        p = (linek)malloc(sizeof(line));
        p->f = NULL;
        p->a = 6;
        n[3]->f = p;
        y = p;
        p = (linek)malloc(sizeof(line));
        p->f = NULL;
        p->a = 5;
        y->f = p;
        p = (linek)malloc(sizeof(line));
        p->f = NULL;
        p->a = 2;
        n[4]->f = p;
        p = (linek)malloc(sizeof(line));
        p->f = NULL;
        p->a = 4;
        n[5]->f = p;
        p = (linek)malloc(sizeof(line));
        p->f = NULL;
        p->a = 6;
        n[6]->f = p;
        int v;
        int e, r;
        scanf("%d", &e);
        scanf("%d", &r);
        v = e;
        int u[7] = { 0,0,0,0,0,0,0 };
        make(n, v, r, u);
        return 0;
    }
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月23日
  • 已采纳回答 12月15日
  • 创建了问题 12月15日

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制