亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bo7-1.cpp

?? 數據結構(嚴慰民)配套純C代碼 對學習數據結構有很大的幫助
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
 // bo7-1.cpp 圖的數組(鄰接矩陣)存儲(存儲結構由c7-1.h定義)的基本操作(20個)
 int LocateVex(MGraph G,VertexType u)
 { // 初始條件:圖G存在,u和G中頂點有相同特征
   // 操作結果:若G中存在頂點u,則返回該頂點在圖中位置;否則返回-1
   int i;
   for(i=0;i<G.vexnum;++i)
     if(strcmp(u,G.vexs[i])==0)
       return i;
   return -1;
 }

 Status CreateFAG(MGraph &G)
 { // 采用數組(鄰接矩陣)表示法,由文件構造沒有相關信息的無向圖G
   int i,j,k;
   char filename[13];
   VertexType va,vb;
   FILE *graphlist;
   printf("請輸入數據文件名(f7-1.dat):");
   scanf("%s",filename);
   graphlist=fopen(filename,"r");
   fscanf(graphlist,"%d",&G.vexnum);
   fscanf(graphlist,"%d",&G.arcnum);
   for(i=0;i<G.vexnum;++i) // 構造頂點向量
     fscanf(graphlist,"%s",G.vexs[i]);
   for(i=0;i<G.vexnum;++i) // 初始化鄰接矩陣
     for(j=0;j<G.vexnum;++j)
     {
       G.arcs[i][j].adj=0; // 圖
       G.arcs[i][j].info=NULL; // 沒有相關信息
     }
   for(k=0;k<G.arcnum;++k)
   {
     fscanf(graphlist,"%s%s",va,vb);
     i=LocateVex(G,va);
     j=LocateVex(G,vb);
     G.arcs[i][j].adj=G.arcs[j][i].adj=1; // 無向圖
   }
   fclose(graphlist);
   G.kind=AG;
   return OK;
 }

 Status CreateDG(MGraph &G)
 { // 采用數組(鄰接矩陣)表示法,構造有向圖G
   int i,j,k,l,IncInfo;
   char s[MAX_INFO],*info;
   VertexType va,vb;
   printf("請輸入有向圖G的頂點數,弧數,弧是否含其它信息(是:1,否:0): ");
   scanf("%d,%d,%d",&G.vexnum,&G.arcnum,&IncInfo);
   printf("請輸入%d個頂點的值(<%d個字符):\n",G.vexnum,MAX_NAME);
   for(i=0;i<G.vexnum;++i) // 構造頂點向量
     scanf("%s",G.vexs[i]);
   for(i=0;i<G.vexnum;++i) // 初始化鄰接矩陣
     for(j=0;j<G.vexnum;++j)
     {
       G.arcs[i][j].adj=0; // 圖
       G.arcs[i][j].info=NULL;
     }
   printf("請輸入%d條弧的弧尾 弧頭(以空格作為間隔): \n",G.arcnum);
   for(k=0;k<G.arcnum;++k)
   {
     scanf("%s%s%*c",va,vb);  // %*c吃掉回車符
     i=LocateVex(G,va);
     j=LocateVex(G,vb);
     G.arcs[i][j].adj=1; // 有向圖
     if(IncInfo)
     {
       printf("請輸入該弧的相關信息(<%d個字符): ",MAX_INFO);
       gets(s);
       l=strlen(s);
       if(l)
       {
         info=(char*)malloc((l+1)*sizeof(char));
         strcpy(info,s);
         G.arcs[i][j].info=info; // 有向
       }
     }
   }
   G.kind=DG;
   return OK;
 }

 Status CreateDN(MGraph &G)
 { // 采用數組(鄰接矩陣)表示法,構造有向網G
   int i,j,k,w,IncInfo;
   char s[MAX_INFO],*info;
   VertexType va,vb;
   printf("請輸入有向網G的頂點數,弧數,弧是否含其它信息(是:1,否:0): ");
   scanf("%d,%d,%d",&G.vexnum,&G.arcnum,&IncInfo);
   printf("請輸入%d個頂點的值(<%d個字符):\n",G.vexnum,MAX_NAME);
   for(i=0;i<G.vexnum;++i) // 構造頂點向量
     scanf("%s",G.vexs[i]);
   for(i=0;i<G.vexnum;++i) // 初始化鄰接矩陣
     for(j=0;j<G.vexnum;++j)
     {
       G.arcs[i][j].adj=INFINITY; // 網
       G.arcs[i][j].info=NULL;
     }
   printf("請輸入%d條弧的弧尾 弧頭 權值(以空格作為間隔): \n",G.arcnum);
   for(k=0;k<G.arcnum;++k)
   {
     scanf("%s%s%d%*c",va,vb,&w);  // %*c吃掉回車符
     i=LocateVex(G,va);
     j=LocateVex(G,vb);
     G.arcs[i][j].adj=w; // 有向網
     if(IncInfo)
     {
       printf("請輸入該弧的相關信息(<%d個字符): ",MAX_INFO);
       gets(s);
       w=strlen(s);
       if(w)
       {
         info=(char*)malloc((w+1)*sizeof(char));
         strcpy(info,s);
         G.arcs[i][j].info=info; // 有向
       }
     }
   }
   G.kind=DN;
   return OK;
 }

 Status CreateAG(MGraph &G)
 { // 采用數組(鄰接矩陣)表示法,構造無向圖G
   int i,j,k,l,IncInfo;
   char s[MAX_INFO],*info;
   VertexType va,vb;
   printf("請輸入無向圖G的頂點數,邊數,邊是否含其它信息(是:1,否:0): ");
   scanf("%d,%d,%d",&G.vexnum,&G.arcnum,&IncInfo);
   printf("請輸入%d個頂點的值(<%d個字符):\n",G.vexnum,MAX_NAME);
   for(i=0;i<G.vexnum;++i) // 構造頂點向量
     scanf("%s",G.vexs[i]);
   for(i=0;i<G.vexnum;++i) // 初始化鄰接矩陣
     for(j=0;j<G.vexnum;++j)
     {
       G.arcs[i][j].adj=0; // 圖
       G.arcs[i][j].info=NULL;
     }
   printf("請輸入%d條邊的頂點1 頂點2(以空格作為間隔): \n",G.arcnum);
   for(k=0;k<G.arcnum;++k)
   {
     scanf("%s%s%*c",va,vb); // %*c吃掉回車符
     i=LocateVex(G,va);
     j=LocateVex(G,vb);
     G.arcs[i][j].adj=G.arcs[j][i].adj=1; // 無向圖
     if(IncInfo)
     {
       printf("請輸入該邊的相關信息(<%d個字符): ",MAX_INFO);
       gets(s);
       l=strlen(s);
       if(l)
       {
         info=(char*)malloc((l+1)*sizeof(char));
         strcpy(info,s);
         G.arcs[i][j].info=G.arcs[j][i].info=info; // 無向
       }
     }
   }
   G.kind=AG;
   return OK;
 }

 Status CreateAN(MGraph &G)
 { // 采用數組(鄰接矩陣)表示法,構造無向網G。算法7.2
   int i,j,k,w,IncInfo;
   char s[MAX_INFO],*info;
   VertexType va,vb;
   printf("請輸入無向網G的頂點數,邊數,邊是否含其它信息(是:1,否:0): ");
   scanf("%d,%d,%d",&G.vexnum,&G.arcnum,&IncInfo);
   printf("請輸入%d個頂點的值(<%d個字符):\n",G.vexnum,MAX_NAME);
   for(i=0;i<G.vexnum;++i) // 構造頂點向量
     scanf("%s",G.vexs[i]);
   for(i=0;i<G.vexnum;++i) // 初始化鄰接矩陣
     for(j=0;j<G.vexnum;++j)
     {
       G.arcs[i][j].adj=INFINITY; // 網
       G.arcs[i][j].info=NULL;
     }
   printf("請輸入%d條邊的頂點1 頂點2 權值(以空格作為間隔): \n",G.arcnum);
   for(k=0;k<G.arcnum;++k)
   {
     scanf("%s%s%d%*c",va,vb,&w); // %*c吃掉回車符
     i=LocateVex(G,va);
     j=LocateVex(G,vb);
     G.arcs[i][j].adj=G.arcs[j][i].adj=w; // 無向
     if(IncInfo)
     {
       printf("請輸入該邊的相關信息(<%d個字符): ",MAX_INFO);
       gets(s);
       w=strlen(s);
       if(w)
       {
         info=(char*)malloc((w+1)*sizeof(char));
         strcpy(info,s);
         G.arcs[i][j].info=G.arcs[j][i].info=info; // 無向
       }
     }
   }
   G.kind=AN;
   return OK;
 }

 Status CreateGraph(MGraph &G)
 { // 采用數組(鄰接矩陣)表示法,構造圖G。算法7.1
   printf("請輸入圖G的類型(有向圖:0,有向網:1,無向圖:2,無向網:3): ");
   scanf("%d",&G.kind);
   switch(G.kind)
   {
     case DG: return CreateDG(G); // 構造有向圖
     case DN: return CreateDN(G); // 構造有向網
     case AG: return CreateAG(G); // 構造無向圖
     case AN: return CreateAN(G); // 構造無向網
     default: return ERROR;
   }
 }

 void DestroyGraph(MGraph &G)
 { // 初始條件: 圖G存在。操作結果: 銷毀圖G
   int i,j;
   if(G.kind<2) // 有向
     for(i=0;i<G.vexnum;i++) // 釋放弧的相關信息(如果有的話)
     {
       for(j=0;j<G.vexnum;j++)
         if(G.arcs[i][j].adj==1&&G.kind==0||G.arcs[i][j].adj!=INFINITY&&G.kind==1) // 有向圖的弧||有向網的弧
           if(G.arcs[i][j].info) // 有相關信息
           {
             free(G.arcs[i][j].info);
             G.arcs[i][j].info=NULL;
           }
     }
   else // 無向
     for(i=0;i<G.vexnum;i++) // 釋放邊的相關信息(如果有的話)
       for(j=i+1;j<G.vexnum;j++)
         if(G.arcs[i][j].adj==1&&G.kind==2||G.arcs[i][j].adj!=INFINITY&&G.kind==3) // 無向圖的邊||無向網的邊
           if(G.arcs[i][j].info) // 有相關信息
           {
             free(G.arcs[i][j].info);
             G.arcs[i][j].info=G.arcs[j][i].info=NULL;
           }
   G.vexnum=0;
   G.arcnum=0;
 }

 VertexType& GetVex(MGraph G,int v)
 { // 初始條件: 圖G存在,v是G中某個頂點的序號。操作結果: 返回v的值
   if(v>=G.vexnum||v<0)
     exit(ERROR);
   return G.vexs[v];
 }

 Status PutVex(MGraph &G,VertexType v,VertexType value)
 { // 初始條件: 圖G存在,v是G中某個頂點。操作結果: 對v賦新值value
   int k;
   k=LocateVex(G,v); // k為頂點v在圖G中的序號
   if(k<0)
     return ERROR;
   strcpy(G.vexs[k],value);
   return OK;
 }

 int FirstAdjVex(MGraph G,VertexType v)
 { // 初始條件: 圖G存在,v是G中某個頂點

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚一区二区| ...中文天堂在线一区| 国产精品人人做人人爽人人添| 亚洲乱码中文字幕| 国产福利一区在线| 日韩美女视频一区二区在线观看| 亚洲欧美日韩在线| 国产成人av电影| 久久久影院官网| 日本va欧美va瓶| 欧美日本高清视频在线观看| 国产精品每日更新| 国产精品一区二区男女羞羞无遮挡| 精品视频1区2区3区| 成人免费小视频| 国产精品原创巨作av| 日韩欧美亚洲国产精品字幕久久久| 亚洲精品乱码久久久久久久久| 国产成人精品一区二区三区四区| 欧美精品一区二区三区很污很色的| 婷婷综合另类小说色区| 日本精品一区二区三区四区的功能| 国产日产亚洲精品系列| 国产又黄又大久久| 337p日本欧洲亚洲大胆精品| 强制捆绑调教一区二区| 日韩一卡二卡三卡四卡| 日本系列欧美系列| 欧美一区二区三区免费在线看| 亚洲一区二区在线免费看| 欧洲精品一区二区| 午夜伦理一区二区| 欧美女孩性生活视频| 日韩电影一区二区三区四区| 5858s免费视频成人| 亚洲aⅴ怡春院| 在线不卡免费av| 日本免费在线视频不卡一不卡二| 91精品国产免费| 精品一二三四在线| 久久日韩粉嫩一区二区三区| 国产精品一二三四| 国产片一区二区三区| 成人国产精品免费观看| 18成人在线视频| 欧美亚一区二区| 日韩和的一区二区| 精品日韩欧美在线| 粉嫩欧美一区二区三区高清影视 | 国产激情视频一区二区在线观看| 欧美午夜影院一区| 日韩一区二区在线观看视频播放| 青青青爽久久午夜综合久久午夜| 成人性色生活片| 国产成人av影院| 欧美撒尿777hd撒尿| 精品国产一区二区三区久久影院| 9人人澡人人爽人人精品| 国产精品久久久一区麻豆最新章节| 国产视频一区二区在线| 亚洲国产一区二区在线播放| 国产精品盗摄一区二区三区| 欧美日韩精品系列| 欧美三级乱人伦电影| 久久色.com| 亚洲综合无码一区二区| 欧美一区二区福利在线| 色www精品视频在线观看| 裸体在线国模精品偷拍| 99久久免费精品| 播五月开心婷婷综合| 欧美大胆人体bbbb| 国产精品免费av| 亚洲精品一区二区三区精华液| av电影在线观看完整版一区二区| 亚洲图片欧美色图| 欧美—级在线免费片| 亚洲精品一区二区三区香蕉| 美女视频一区二区| 2017欧美狠狠色| 亚洲午夜电影在线| 久久综合色鬼综合色| 这里只有精品电影| 欧美日韩一区二区三区四区五区 | 欧美一二三区在线| 亚洲男帅同性gay1069| 国内精品国产成人国产三级粉色 | 久久爱另类一区二区小说| 高清不卡一区二区| 欧美日韩国产另类一区| 国产成人99久久亚洲综合精品| 日本亚洲三级在线| 亚洲午夜免费视频| 一区二区三区欧美| 国产精品乱码人人做人人爱| 精品福利在线导航| 日韩欧美国产午夜精品| 精品视频在线免费| 欧美在线免费观看视频| av不卡免费电影| 国产91在线观看| 国产自产v一区二区三区c| 美女网站一区二区| 人妖欧美一区二区| 日韩在线一二三区| 日韩精品免费视频人成| 亚洲第一狼人社区| 亚洲国产精品一区二区久久| 亚洲一区二区三区自拍| 综合欧美一区二区三区| 综合激情成人伊人| 一区在线播放视频| 伊人色综合久久天天人手人婷| 亚洲欧洲在线观看av| 国产精品成人午夜| 亚洲色大成网站www久久九九| 国产精品丝袜在线| 亚洲精选在线视频| 亚洲一区二区精品视频| 亚洲国产精品久久久久秋霞影院 | 午夜激情综合网| 日韩精品欧美成人高清一区二区| 日韩中文字幕麻豆| 精品一区二区三区影院在线午夜| 国产自产2019最新不卡| 成人免费视频一区| 色欧美片视频在线观看在线视频| 91行情网站电视在线观看高清版| 色哦色哦哦色天天综合| 欧美日韩三级在线| 精品免费一区二区三区| 日本一区二区视频在线观看| 国产精品久久久久9999吃药| 玉足女爽爽91| 日韩有码一区二区三区| 国产一区二区中文字幕| 99久久免费视频.com| 9191国产精品| 国产亚洲欧美日韩日本| 亚洲天堂精品在线观看| 丝袜a∨在线一区二区三区不卡| 精品一区二区在线观看| 99久久婷婷国产精品综合| 欧美三级日本三级少妇99| 2024国产精品| 亚洲精品中文在线| 蜜桃av一区二区| 色综合一区二区三区| 欧美一区二区播放| 自拍偷拍亚洲激情| 久久国产综合精品| 色哟哟精品一区| 日韩欧美三级在线| 亚洲另类在线制服丝袜| 国产一区二区毛片| 日本韩国欧美一区二区三区| 日韩欧美不卡在线观看视频| 亚洲人成7777| 国内精品视频666| 欧美日韩aaaaaa| 亚洲免费观看高清完整版在线观看| 婷婷国产在线综合| 91社区在线播放| 欧美精品一区二区三区蜜桃视频| 一区二区三区电影在线播| 国产老妇另类xxxxx| 欧美精品自拍偷拍| 亚洲天堂精品视频| 国产精品99久久久久久久女警| 久久九九久久九九| 日本欧美一区二区在线观看| 99久久久久免费精品国产| 久久色成人在线| 麻豆91小视频| 337p亚洲精品色噜噜噜| 亚洲激情男女视频| 93久久精品日日躁夜夜躁欧美| 久久婷婷综合激情| 精品制服美女丁香| 欧美一级片免费看| 亚洲成在人线免费| 在线观看欧美日本| 亚洲精品网站在线观看| 99久久精品99国产精品| 欧美激情在线一区二区三区| 黄色小说综合网站| 日韩午夜在线观看视频| 日韩黄色免费网站| 4438x亚洲最大成人网| 亚洲综合小说图片| 欧美丝袜丝nylons| 亚洲欧美国产高清| 色综合久久久久网| 一区二区三区四区中文字幕| 色先锋aa成人| 中文字幕一区二区三| 97久久超碰国产精品| 依依成人精品视频| 欧美中文字幕亚洲一区二区va在线 | 精品在线免费观看|