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

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

?? suanshubiaodashideshixian.txt

?? 算術表達式的求值 操作結果: 從第1個頂點起,按廣度優先非遞歸遍歷圖G,并對每個頂點調用函數
?? TXT
字號:
#include <stdio.h>
#include <stdlib.h>
#define MAX_NAME 3 /* 頂點字符串的最大長度+1 */
#define MAX_INFO 80 /* 相關信息字符串的最大長度+1 */
#define MAX_VERTEX_NUM 20
#define NULL 0
/* 單鏈隊列--隊列的鏈式存儲結構 */
 typedef struct QNode
 {
   int data;
   struct QNode *next;
 }QNode,*QueuePtr;
 typedef struct
 {
   QueuePtr front,rear; /* 隊頭、隊尾指針 */
 }LinkQueue;
 typedef char InfoType;
 typedef char VertexType[MAX_NAME]; /* 字符串類型 */
/* c7-4.h 無向圖的鄰接多重表存儲表示 */
 typedef enum{unvisited,visited}VisitIf;
 typedef struct EBox
 {
   VisitIf mark; /* 訪問標記 */
   int ivex,jvex; /* 該邊依附的兩個頂點的位置 */
   struct EBox *ilink,*jlink; /* 分別指向依附這兩個頂點的下一條邊 */
   InfoType *info; /* 該邊信息指針 */
 }EBox;
 typedef struct
 {
   VertexType data;
   EBox *firstedge; /* 指向第一條依附該頂點的邊 */
 }VexBox;
 typedef struct
 {
   VexBox adjmulist[MAX_VERTEX_NUM];
   int vexnum,edgenum; /* 無向圖的當前頂點數和邊數 */
 }AMLGraph;
 /* 鏈隊列的基本操作 */
 InitQueue(LinkQueue *Q)
 { /* 構造一個空隊列Q */
   (*Q).front=(*Q).rear=(QueuePtr)malloc(sizeof(QNode));
   if(!(*Q).front)
     exit(0);
   (*Q).front->next=NULL;
   return 1;
 }
 QueueEmpty(LinkQueue Q)
 { /* 若Q為空隊列,則返回TRUE,否則返回FALSE */
   if(Q.front==Q.rear)
     return 1;
   else
     return -1;
 }
 EnQueue(LinkQueue *Q,int e)
 { /* 插入元素e為Q的新的隊尾元素 */
   QueuePtr p=(QueuePtr)malloc(sizeof(QNode));
   if(!p) /* 存儲分配失敗 */
     exit(0);
   p->data=e;
   p->next=NULL;
   (*Q).rear->next=p;
   (*Q).rear=p;
   return 1;
 }
 DeQueue(LinkQueue *Q,int *e)
 { /* 若隊列不空,刪除Q的隊頭元素,用e返回其值,并返回OK,否則返回ERROR */
   QueuePtr p;
   if((*Q).front==(*Q).rear)
     return -1;
   p=(*Q).front->next;
   *e=p->data;
   (*Q).front->next=p->next;
   if((*Q).rear==p)
     (*Q).rear=(*Q).front;
   free(p);
   return 1;
 }
 /* 無向圖的鄰接多重表存儲 */
 int LocateVex(AMLGraph G,VertexType u)
 { /* 初始條件: 無向圖G存在,u和G中頂點有相同特征 */
   /* 操作結果: 若G中存在頂點u,則返回該頂點在無向圖中位置;否則返回-1 */
   int i;
   for(i=0;i<G.vexnum;++i)
     if(strcmp(u,G.adjmulist[i].data)==0)
       return i;
   return -1;
 }
AMLGraph * CreateGraph(AMLGraph *G)
 { /* 采用鄰接多重表存儲結構,構造無向圖G */
   int i,j,k,l,IncInfo;
   char s[MAX_INFO];
   VertexType va,vb;
   EBox *p;
   printf("請輸入無向圖G的頂點數,邊數: ");
   scanf("%d,%d",&(*G).vexnum,&(*G).edgenum);
   printf("請輸入%d個頂點的值(<%d個字符):\n",(*G).vexnum,MAX_NAME);
   for(i=0;i<(*G).vexnum;++i) /* 構造頂點向量 */
   {
     scanf("%s",(*G).adjmulist[i].data);
     (*G).adjmulist[i].firstedge=NULL;
   }
   printf("請順序輸入每條邊的兩個端點(以空格作為間隔):\n");
   for(k=0;k<(*G).edgenum;++k) /* 構造表結點鏈表 */
   {
     scanf("%s%s",va,vb); /* 讀入兩個頂點*/
     i=LocateVex(*G,va); /* 一端 */
     j=LocateVex(*G,vb); /* 另一端 */
     p=(EBox*)malloc(sizeof(EBox));
     p->mark=unvisited; /* 設初值 */
     p->ivex=i;
     p->jvex=j;
     p->info=NULL;
     p->ilink=(*G).adjmulist[i].firstedge; /* 插在表頭 */
     (*G).adjmulist[i].firstedge=p;
     p->jlink=(*G).adjmulist[j].firstedge; /* 插在表頭 */
     (*G).adjmulist[j].firstedge=p;
   }
   return   G;
 }
 VertexType* GetVex(AMLGraph G,int v)
 { /* 初始條件: 無向圖G存在,v是G中某個頂點的序號。操作結果: 返回v的值 */
   if(v>=G.vexnum||v<0)
     exit(0);
   return &G.adjmulist[v].data;
 }
int  visite[MAX_VERTEX_NUM]; /* 訪問標志數組(全局量) */
 int (*VisitFunc)(VertexType v);
 void DFS(AMLGraph G,int v)
 {
   int j;
   EBox *p;
   VisitFunc(G.adjmulist[v].data);
   visite[v]=1;
   p=G.adjmulist[v].firstedge;
   while(p)
   {
     j=p->ivex==v?p->jvex:p->ivex;
     if(!visite[j])
       DFS(G,j);
     p=p->ivex==v?p->ilink:p->jlink;
   }
 }
 void DFSTraverse(AMLGraph G,int(*visit)(VertexType))
 { /* 初始條件: 圖G存在,Visit是頂點的應用函數。算法7.4 */
   /* 操作結果: 從第1個頂點起,深度優先遍歷圖G,并對每個頂點調用函數Visit */
   /*           一次且僅一次。一旦Visit()失敗,則操作失敗 */
   int v;
   VisitFunc=visit;
   for(v=0;v<G.vexnum;v++)
     visite[v]=0; 

   for(v=0;v<G.vexnum;v++)
     if(!visite[v])
       DFS(G,v);
   printf("\n");
 }
 typedef int QElemType; /* 隊列類型 */
 /* BFSTraverse()用 */
 /* BFSTraverse()用 */
 void BFSTraverse(AMLGraph G,int(*Visit)(VertexType))
 { /* 初始條件: 圖G存在,Visit是頂點的應用函數。算法7.6 */
   /* 操作結果: 從第1個頂點起,按廣度優先非遞歸遍歷圖G,并對每個頂點調用函數 */
   /*           Visit一次且僅一次。一旦Visit()失敗,則操作失敗。 */
   /*           使用輔助隊列Q和訪問標志數組visite */
   int v,u,w;
   VertexType w1,u1;
   LinkQueue Q;
   for(v=0;v<G.vexnum;v++)
     visite[v]=0; /* 置初值 */
   InitQueue(&Q); /* 置空的輔助隊列Q */
   for(v=0;v<G.vexnum;v++)
     if(!visite[v]) /* v尚未訪問 */
     {
       visite[v]=1; /* 設置訪問標志為TRUE(已訪問) */
       Visit(G.adjmulist[v].data);
       EnQueue(&Q,v); /* v入隊列 */
       while(!QueueEmpty(Q)) /* 隊列不空 */
       {
         DeQueue(&Q,&u); /* 隊頭元素出隊并置為u */
         strcpy(u1,*GetVex(G,u));
         for(w=FirstAdjVex(G,u1);w>=0;w=NextAdjVex(G,u1,strcpy(w1,*GetVex(G,w))))
           if(!visite[w]) /* w為u的尚未訪問的鄰接頂點的序號 */
           {
      visite[w]=1;
             Visit(G.adjmulist[w].data);
             EnQueue(&Q,w);
           }
       }
     }
   printf("\n");
 }
 void MarkUnvizited(AMLGraph G)
 { /* 置邊的訪問標記為未被訪問 */
   int i;
   EBox *p;
   for(i=0;i<G.vexnum;i++)
   {
     p=G.adjmulist[i].firstedge;
     while(p)
     {
       p->mark=unvisited;
       if(p->ivex==i)
         p=p->ilink;
       else
         p=p->jlink;
     }
   }
 }
 void Display(AMLGraph G)
 { /* 輸出無向圖的鄰接多重表G */
   int i;
   EBox *p;
   MarkUnvizited(G); /* 置邊的訪問標記為未被訪問 */
   printf("%d個頂點:\n",G.vexnum);
   for(i=0;i<G.vexnum;++i)
     printf("%s ",G.adjmulist[i].data);
   printf("\n%d條邊:\n",G.edgenum);
   for(i=0;i<G.vexnum;i++)
   {
     p=G.adjmulist[i].firstedge;
     while(p)
       if(p->ivex==i) /* 邊的i端與該頂點有關 */
       {
         if(!p->mark) /* 只輸出一次 */
         {
           printf("%s-%s ",G.adjmulist[i].data,G.adjmulist[p->jvex].data);
           p->mark=visited;
           if(p->info) /* 輸出附帶信息 */
             printf("相關信息: %s ",p->info);
         }
         p=p->ilink;
       }
       else /* 邊的j端與該頂點有關 */
       {
         if(!p->mark) /* 只輸出一次 */
         {
           printf("%s-%s ",G.adjmulist[p->ivex].data,G.adjmulist[i].data);
           p->mark=visited;
           if(p->info) /* 輸出附帶信息 */
             printf("相關信息: %s ",p->info);
         }
         p=p->jlink;
       }
     printf("\n");
   }
 }
/*主程序*/
   visit(VertexType v)
 {
   printf("%s ",v);
   return 1;
 }
 void main()
 {
   int k,n;
   AMLGraph g;
   VertexType v1,v2;
   CreateGraph(&g);
   Display(g);
   printf("DFS:\n");/*深度優先搜索的結果*/
   DFSTraverse(g,visit);
   printf("BFS:\n");/*廣度優先搜索的結果*/
   BFSTraverse(g,visit);
   DestroyGraph(&g);
 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美视频一区二区三区| 亚洲精品视频一区| 一区二区三区欧美| 国产乱人伦精品一区二区在线观看| 91视频一区二区| 久久亚洲精品国产精品紫薇 | 99re视频精品| 久久视频一区二区| 日韩精品乱码免费| 日本道色综合久久| 国产精品丝袜久久久久久app| 日本特黄久久久高潮| 在线免费精品视频| 国产精品国产三级国产普通话三级| 蜜臀av性久久久久av蜜臀妖精| 在线精品视频免费播放| 中文字幕一区二区三区色视频| 精品一区二区三区视频| 日韩一级片网站| 三级亚洲高清视频| 欧美浪妇xxxx高跟鞋交| 亚洲国产精品一区二区久久 | 欧美一区二区三区免费| 亚洲免费观看在线视频| 成人精品视频一区二区三区 | 亚洲午夜一二三区视频| 99国产一区二区三精品乱码| 中文久久乱码一区二区| 国产成人午夜精品影院观看视频 | 国产91精品一区二区麻豆网站| 日韩美女一区二区三区四区| 五月婷婷欧美视频| 在线不卡a资源高清| 日精品一区二区| 91精品在线观看入口| 午夜精品久久久久久久99樱桃 | 精品国产百合女同互慰| 麻豆成人av在线| 欧美精品一区二区三区一线天视频| 麻豆精品国产传媒mv男同| 日韩三级免费观看| 久久福利视频一区二区| 久久人人97超碰com| 国产精品一二三在| 亚洲日本乱码在线观看| 欧洲色大大久久| 日本在线不卡视频一二三区| 久久你懂得1024| 精品一区二区三区在线播放| 色综合久久88色综合天天| 天堂在线一区二区| 亚洲欧美电影院| 国产精品一二三四区| 欧美激情综合在线| 在线观看不卡一区| 麻豆久久久久久久| 国产欧美日本一区视频| 在线视频一区二区免费| 另类调教123区 | www激情久久| 91在线观看地址| 日韩精品乱码av一区二区| 久久亚洲影视婷婷| 在线视频你懂得一区| 九色|91porny| 一区二区三区四区中文字幕| 欧美一区二区三区小说| 成人免费电影视频| 亚洲第四色夜色| 国产精品午夜在线观看| 欧美疯狂做受xxxx富婆| 风间由美一区二区三区在线观看| 一区二区三区中文字幕| 欧美精品一区二区三区高清aⅴ | 国产精品色哟哟网站| 欧美三级电影精品| 国产电影精品久久禁18| 天涯成人国产亚洲精品一区av| 国产亚洲短视频| 欧美日韩国产成人在线91| 风间由美一区二区av101| 午夜精品久久久久久| 中文字幕一区av| 精品国产一区a| 欧美私模裸体表演在线观看| 成人免费高清在线| 国产最新精品免费| 日韩在线播放一区二区| 亚洲女子a中天字幕| 国产精品色呦呦| 国产无人区一区二区三区| 6080午夜不卡| 色八戒一区二区三区| a级高清视频欧美日韩| 国产精品69久久久久水密桃| 蜜臀av在线播放一区二区三区| 亚洲一级电影视频| 亚洲三级在线免费| 亚洲欧洲日韩一区二区三区| 国产网红主播福利一区二区| 精品久久久久久久久久久院品网| 欧美日韩久久一区| 欧美三级一区二区| 色av一区二区| 日本韩国欧美一区| 99久久99久久精品国产片果冻| 国产精品综合一区二区| 激情五月婷婷综合| 紧缚奴在线一区二区三区| 免费成人美女在线观看.| 午夜久久久久久久久| 亚洲r级在线视频| 五月婷婷综合在线| 蜜芽一区二区三区| 国内精品在线播放| 国产福利一区二区三区视频在线| 精品在线亚洲视频| 久久成人免费电影| 国产一区亚洲一区| 国产激情视频一区二区在线观看| 国产伦理精品不卡| www.在线成人| 色婷婷久久久久swag精品| 欧美综合视频在线观看| 91国在线观看| 欧美精品一二三| 欧美精品一区二区三| 久久久.com| 一区二区三区精品在线观看| 亚洲一区二区在线免费看| 日韩国产一二三区| 精品一区二区三区在线播放| 国产福利视频一区二区三区| 99精品视频在线观看| 欧美日韩在线一区二区| 这里只有精品视频在线观看| 精品国产乱码久久久久久1区2区| 中文字幕精品一区二区三区精品| 中文字幕佐山爱一区二区免费| 亚洲最大成人综合| 蜜桃在线一区二区三区| 成人午夜激情在线| 在线免费观看不卡av| 日韩限制级电影在线观看| 久久久久国产精品麻豆| 亚洲一区影音先锋| 国产91精品一区二区| 欧美中文一区二区三区| 欧美一区二区成人6969| 国产精品入口麻豆九色| 亚洲国产你懂的| 高清久久久久久| 欧美妇女性影城| 亚洲欧洲精品一区二区三区| 日本亚洲最大的色成网站www| 国产成人精品亚洲777人妖| 欧美唯美清纯偷拍| 欧美国产视频在线| 免费的成人av| 欧美视频精品在线| 久久久精品黄色| 天堂va蜜桃一区二区三区| 9色porny自拍视频一区二区| 日韩网站在线看片你懂的| 亚洲乱码国产乱码精品精可以看| 国内一区二区在线| 欧美精品一二三四| 亚洲激情在线激情| 成人激情午夜影院| 精品国产一区二区三区不卡| 亚洲成人av一区| 97精品视频在线观看自产线路二| 精品欧美乱码久久久久久| 伊人婷婷欧美激情| www.日韩精品| 久久精品视频一区| 精品一区二区在线看| 欧美剧情片在线观看| 亚洲精品免费在线播放| 成a人片国产精品| 中文字幕乱码亚洲精品一区| 国产一本一道久久香蕉| 日韩一级二级三级| 亚洲bt欧美bt精品777| 欧美中文字幕不卡| 亚洲精品国产一区二区三区四区在线 | 久久精品日产第一区二区三区高清版| 视频一区二区国产| 欧美人成免费网站| 亚洲国产人成综合网站| 欧美在线不卡一区| 亚洲日本免费电影| 91激情五月电影| 一区二区三区在线视频免费观看| 97久久精品人人做人人爽50路| 国产精品少妇自拍| 97精品久久久午夜一区二区三区| 亚洲欧洲日韩一区二区三区| 国产伦理精品不卡| 国产精品乱码一区二区三区软件|