C++中结果提示No such files or directory

img


这该怎么解决呢
typedef struct
{
DataType list[MaxSize] ;
int size ;
}SeqList;
/////初始化顺序表
int ListInitiate(SeqList L) / 初始化顺序表L*/
{
L->size = 0;
}
int ListLength(SeqList L) /* 返回顺序表L的当前数据元素个数*/
{
return L.size;
}
int ListInsert(SeqList L, int i, DataType x)
/
在顺序表L的第i(0 <= i = size)个位置前插入数据元素值x*/
/* 插入成功返回1,插入失败返回0*/
{
int j;
if(L->size >= MaxSize)
{
printf("顺序表已满无法插入!\n");
return 0;
}
else if(i < 0 || i > L->size)
{
printf("参数i不合法!\n");
return 0;
}
else
{
/为插入做准备/
for(j = L->size; j > i; j--)
L->list[j] = L->list[j-1];
L->list[i] = x;
L->size++; //元素个数加1
return 1;
}
}
int ListDelete(SeqList *L, int i, DataType *x)
/*删除顺序表L中位置为i(0 <= i = size-1)的数据元素并存放到x中*/
/*删除成功返回1,删除失败返回0*/
{
int j;
if(L->size <= 0)
{
printf("顺序表已空无数据元素可删!\n");
return 0;
}
else if(i < 0 || i > L->size-1 )
{
printf("参数i不合法!\n");
return 0 ;
}
else
{
*x = L->list[i]; /保存删除的元素到x中/
/依次前移/
for(j = i+1; j <= L->size-1; j++)
L->list[j-1] = L->list[j];
L->size--; //元素个数减1
return 1;
}
}
int ListGet(SeqList L, int i, DataType *x)
/取顺序表L中第i个数据元素存于x中,成功返回1,失败返回0/
{
if(i < 0 || i > L.size-1)
{
printf("参数i不合法!\n");
return 0;
}
else
{
*x = L.list[i];
return 1;
}
}

#include "SeqList"
//邻接矩阵实现图的存储类型定义
typedef struct
{
SeqList vertices; //存放顶点的顺序表
int edge[MaxVertices][MaxVertices]; //存放边的邻接矩阵
int numOfEdges; //边的数目
}AdjMGraph;//图的结构体定义

typedef struct
{
int row; //行下标
int col; //列下标
int weight; //权值
}RowColWeight;//边信息结构体定义

struct massages
{
char name[20];
int num;
int cen;
}massage[10]={{"教一楼",50,7},{"教二楼",50,7},{"教三楼",50,7},{"主楼",50,7},{"图书馆",50},{"北一楼",50,7},{"北二楼",50,7},{"北三楼",50,7},{"北综",50,7},{"北区图书馆",50,7}};
//置带权有向图G为空图,时间复杂度:O(1)。
int GraphInitiate(AdjMGraph *G)
{
int i,j;

for(i=0;i<MaxVertices;i++)
    for(j=0;j<MaxVertices;j++)
    {
        if(i==j) G->edge[i][j]=0;
        else  G->edge[i][j]=MaxWeight;  //MaxWeight表示权值无穷大
    }


G->numOfEdges=0;  //边的条数置为0
ListInitiate(&G->vertices);  //顶点顺序表初始化

}
int IsVertex(AdjMGraph *G,DataType vertex)
{
int i;
for (i=0;ivertices.size;i++)
{
if(G->vertices.list[i]==vertex)
{
break;
}
}
if (i==G->vertices.size)
return -1;
else
return i;
}

int InsertVertex(AdjMGraph *G,DataType vertex)
{
if(IsVertex(G,vertex)<0)
if(ListInsert(&G->vertices,G->vertices.size,vertex)==0)//在顶点顺序表的表尾插入顶点vertex
{
printf("插入顶点时空间已满无法插入!");
exit(1);
}
}
int InsertEdge(AdjMGraph *G,int v1,int v2,int weight)
{
DataType x;
if(v1!=v2)
{
if((ListGet(G->vertices,v1,&x)==0)||(ListGet(G->vertices,v2,&x)==0))
{
printf("插入边时参数v1和v2越界出错!\n");
exit(1);
}

    G->edge[v1][v2]=weight;
    G->numOfEdges++;
}

}
int IsEdge(AdjMGraph *G,int v1,int v2)
{
DataType x;
if((ListGet(G->vertices,v1,&x)==0) || (ListGet(G->vertices,v2,&x)==0))
{
printf("边的参数v1和v2越界出错!\n");
return 0;
}
if(G->edge[v1][v2] == MaxWeight || v1==v2)
{
printf("该边不存在!\n");
return 0;
}
return 1;
}
int DeleteEdge(AdjMGraph *G,int v1,int v2)
{
if (IsEdge(G,v1,v2)==0)
{
printf("删除边时出错!");
exit(1);
}
else
{
G->edge[v1][v2]=MaxWeight;
G->numOfEdges--;
}
}

//计算带权有向图G中第v个顶点的入度,时间复杂度:O(n)。
int InDegree(AdjMGraph *G,int v)
{
//在此插入你第二步的代码,替换掉下面的语句
int din=0,j;
for(j=0;jvertices.size;j++)
{
if(G->edge[v][j]!=0&&G->edge[v][j]!=MaxWeight)
din++;
}
return din;
}
//计算带权有向图G中第v个顶点的出度,时间复杂度:O(n)。
int OutDegree(AdjMGraph *G,int v)
{
//在此插入你第二步的代码,替换掉下面的语句
int dou=0,j;
for(j=0;jvertices.size;j++)
{
if(G->edge[j][v]!=0&&G->edge[v][j]!=MaxWeight)
dou++;
}
return dou;
}
//计算带权有向图G中第v个顶点的度,时间复杂度:O(n)。
int Degree(AdjMGraph *G,int v)
{
return(InDegree(G,v)+OutDegree(G,v));
}

//在带权有向图G中删除第v个顶点,时间复杂度:O(n^2)。
int DeleteVertex(AdjMGraph *G,int v)
{
//在此插入你第一步的代码
int j=0,i;
if(v>G->vertices.size)
{
printf("参数v出错!\n");
return;
}
for (j=v;jvertices.size;j++)
{
for (i=0;ivertices.size;i++)
{
G->edge[j][i]=G->edge[j][i+1];
}
}
for (j=v;jvertices.size-1;j++)
{
for (i=0;ivertices.size;i++)
{
G->edge[i][j]=G->edge[i+1][j];
}
}
for(j=v;jvertices.size-1;j++)
G->vertices.list[j]=G->vertices.list[j+1];
G->vertices.size--;
}
//在带权有向图G中取第v个顶点的第一个邻接顶点,如果这样的邻接顶点存在,则返回该顶点在顶点顺序表的序号,否则返回-1.时间复杂度:O(n)。
int GetFirstVex(AdjMGraph G,int v)
{
int col;DataType x;

if(ListGet(G.vertices,v,&x)==0)
{
    printf("取第一个邻接顶点时参数v越界出错!\n");
    exit(1);
}
//寻找邻接矩阵v行中从最左开始第一个值非零且非无穷大的权值对应的顶点
for(col=0;col<G.vertices.size;col++)
    if(G.edge[v][col]>0 && G.edge[v][col] < MaxWeight)
        return col;
 return -1;

}
//在带权有向图G中取第v1个顶点的继邻接结点第v2个顶点之后的下一个邻接结点,时间复杂度:O(n)。
int GetNextVex(AdjMGraph G,int v1,int v2)
{
int col;DataType x;

if((ListGet(G.vertices,v1,&x)==0)||(ListGet(G.vertices,v2,&x)==0))
{
    printf("取下一邻接顶点时参数v1和v2越界出错!\n");
    exit(1);
}
if(G.edge[v1][v2]==0)
{
    printf("v2不是v1的邻接顶点\n");
    exit(1);
}
//寻找邻接矩阵v行中从第v2+1列开始的第一个值非零且非无穷大的权值对应的顶点
for(col=v2+1;col<G.vertices.size;col++)
    if(G.edge[v1][col]>0 && G.edge[v1][col]<MaxWeight)
        return col;
    return -1;

}
//创建有向图G,通过在空图G中插入n个顶点和e条边实现。时间复杂度:O(n^2+e)。
int GraphCreat(AdjMGraph *G,DataType v[],int n,RowColWeight W[],int e)
{
int i,k;
GraphInitiate(G);
for(i=0;i<n;i++)
InsertVertex(G,v[i]);
for(k=0;k<e;k++)
InsertEdge(G,W[k].row,W[k].col,W[k].weight);
}
int Dijkstra(AdjMGraph G,int v0,int distance[],int path[])
{
int n=G.vertices.size;
int *s=(int *)malloc(sizeof(int)*n);
int minDis,i,j,u;

for (i=0;i<n;i++)
{
    distance[i]=G.edge[v0][i];
    s[i]=0;
    if (i!=v0&&distance[i]<MaxWeight)
        path[i]=v0;
    else path[i]=-1;
}
s[v0]=1;
for (i=0;i<n;i++)
{
    minDis=MaxWeight;
    for (j=0;j<n;j++)
    {
        if (s[j]==0&&distance[j]<minDis)
        {
            u=j;
            minDis=distance[j];
        }
    }
    if (minDis==MaxWeight)
        return;
    s[u]=1;
    for (j=0;j<n;j++)
    {
        if (s[j]==0&&G.edge[u][j]<MaxWeight&&distance[u]+G.edge[u][j]<distance[j])
        {
            distance[j]=distance[u]+G.edge[u][j];
            path[j]=u;
        }
    }
}

}
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef int DataType;
#define MaxSize 100
#define MaxVertices 15
#define MaxWeight 10000

#include "AdjMGraph.h"
#include "Dijkstra.h"

int main()
{
int p[10];
int flog=0;
AdjMGraph g;
int i,j,k,o,l,n=10,e=30,t;
int distance[10],path[10];
DataType a[]={0,1,2,3,4,5,6,7,8,9};
RowColWeight rcw[]={{0,3,20},{0,4,15},{1,2,30},{2,1,30},{2,3,50},{2,4,65},{2,7,653},{2,8,700},{3,0,20},{3,2,50},{3,4,6},{4,0,15},{4,2,65},{4,3,6},{5,6,10},{5,9,20},{6,5,10},{6,7,10},{6,9,30},{7,2,653},{7,6,10},{7,8,50},{7,9,20},{8,2,700},{8,7,50},{8,9,40},{9,5,20},{9,6,30},{9,7,20},{9,8,40}};
int output(int t);
GraphCreat(&g,a,n,rcw,e);
Dijkstra(g,0,distance,path);
printf("\n\n\n\t\t辽宁科技大学\n\n");
printf("\t一、地图信息\n\n");
printf("\t0、博学楼 1、明德楼 2、博闻楼 3、博识楼 4、图书馆\n");
printf("\n\t5、逸兴居 6、知行居 7、弘毅居 8、新实验楼 9、工程技术中心\n\n");
printf("\t二、可供操作\n\n");
printf("\t1、校园内各景点\n\n");
printf("\t2、问路查询\n\n");
printf("\t3、修改景点信息\n\n");
printf("\t4、退出\n\n");
while(1)
{
printf("\n\t现在请选择相关操作:");
scanf("%d",&k);
switch (k)
{
case 1:
printf("\t请输入要查询的景点代号:");
scanf("%d",&o);
printf("\n\t信息如下:\n\n");
printf("\t地点为:%s 楼层为:%d 教室数为:%d\n\n",massage[o].name,massage[o].cen,massage[o].num);break;

        case 2:
            printf("\t请输入要查询的两个地点:");
            scanf("%d,%d",&o,&l);
            Dijkstra(g,o,distance,path);
            printf("\t从%s到%s最短距离为:%d\n\n",massage[o].name,massage[l].name,distance[l]);
            printf("\t从%s到%s路程为:\n\n",massage[o].name,massage[l].name);
            printf("\t");
             do
             {
                l=path[l];
            }while (massage[o].name!=massage[l].name);

            for (i=0;;i++)
            {
                p[i]=g.vertices.list[o];
                o=path[o];
                if (massage[o].name==massage[l].name)
                    break;
                flog++;

            }
            printf("%s",massage[o].name);
            for (i=flog;i>1;i--)
            {
                printf("-->%s",massage[p[i]].name);
            }
            break;
        case 3:
            printf("\t请输入要修改的地点代号:");
            scanf("%d",&o);
            printf("\t请写入信息:");
            scanf("%d,%d,%s",&massage[o].cen,&massage[o].num,massage[o].name);
            printf("\t修改成功信息如下:\n");
            printf("\n\t地点为:%s  楼层为:%d  教室数为:%d\n\n",massage[o].name,massage[o].cen,massage[o].num);break;
        case 4:
            break;
        }
        if (k==4)
            break;
    }
    return 0;

}

#include的文件你到底有没有啊
你引入了一个编译器无法找到的文件,就报错了

有这个文件吗,是在当前cpp同目录下的吗

img

显示找不到"Seqlist.h",如果你会配置,就配置一下头文件的路径,如果不会配置,把头文件放在工程主目录下