数据结构中G.arcs[i][j]={INFINITY,NULL};什么意思,还有书上的各种算法怎么实现成程序? 数据结构中c.arcs[i][j].adj==Infinit...
\u6570\u636e\u7ed3\u6784 \u666e\u91cc\u59c6\u7b97\u6cd5\u4e2dG.arcs[k][j]\u4ec0\u4e48\u610f\u601d\uff0c\u5728\u7ebf\u7b49\u3002\u3002\u3002\u5e94\u8be5\u662f\u9876\u70b9k\u4e0e\u9876\u70b9j\u4e4b\u95f4\u7684\u8fb9\u7684\u957f\u5ea6
DFS\u904d\u5386\u91c7\u7528\u6808\u6765\u6682\u5b58\u9876\u70b9\u3002BFS\u91c7\u7528\u961f\u5217\u6765\u6682\u5b58\u9876\u70b9\u3002
\u5f53\u8981\u6c42\u8fde\u901a\u56fe\u7684\u751f\u6210\u6811\u7684\u9ad8\u5ea6\u6700\u5c0f\u65f6\uff0c\u5e94\u91c7\u7528BFS\u904d\u5386\u3002
书上算法实现的问题,你只要有C语言基础,然后注意每个C语言的结构体需要定义,还有就是书上的算法只是一个函数,不是主函数,主函数需要自己写,而且,书上给的函数中它调用了前面所讲的的函数,所以最好从前面开始写代码。
就线性表那你章,你要把结构体写到程序代码中去,然后要在主函数中定义它,最好从简单的开始,如初始化链表,然后create建立链表,还有写程序时要注意有些算法中的宏定义是没有给出的,需要自己定义。
PS:要实现书上的算法要学会自己调试程序,自己看着哪里错误,然后去修改,一步一步来,就能行的,相信自己
不知道 要钥匙
绛旓細i=LocateVex(G,v1); else{ cout<<"娌℃湁鎵惧埌姝ら《鐐!"<<endl; k--; continue; } if(LocateVex(G,v2)<G.vexnum) j=LocateVex(G,v2); else{ cout<<"娌℃湁鎵惧埌姝ら《鐐!"<<endl; k--; continue; } G.arcs[i][j].adj=w; G.arcs[j][i]=G.arcs[i][j]; } cout<<"MGraph鍒涘缓鎴愬姛!"<<endl...
绛旓細G.arcs[i][j].adj=int_max; G.arcs[i][j].info=NULL; } for(int k=0;k!=G.arcnum;++k) { cout<<"杈撳叆涓鏉¤竟渚濋檮鐨勯《鐐瑰拰鏉:(a b 3)涓嶅寘鎷()鈥"<<endl; cin>>v1>>v2>>w;//杈撳叆涓鏉¤竟渚濋檮鐨勪袱鐐瑰強鏉冨 i=localvex(G,v1);//纭畾椤剁偣V1鍜孷2鍦ㄥ浘涓殑浣嶇疆 j=localvex(G,v2...
绛旓細strcpy(G.vexs[9].name,"淇℃伅妤"); strcpy(G.vexs[9].introduction,"鐏拌壊灏忔ゼ,Triz鐞嗚鍩哄湴"); for(i=0;i<G.vexnum;i++) for(j=0;j<G.vexnum;j++) G.arcs[i][j].adj=INFINITY;//鍒濆艰祴鍊兼棤绌峰ぇ G.arcs[0][1].adj=100;//璧嬪兼瘡鏉″姬 G.arcs[0][2].adj=200; G.arcs[0][6].adj...
绛旓細if(ch==G.vexs[i].data)return i;} } void creatGraph(Graph *h){ ArcNode *p;int i,j;char n,m;printf("杈撳叆寮ф暟鍜屽畾鐐规暟:\n");scanf("%d %d%*c",&h->arcnum,&h->vexnum);printf("杈撳叆%d涓《鐐癸紙A~Z锛:\n",h->vexnum);for(i=1;i<=h->vexnum;i++){ scanf("%c%*...
绛旓細浣犵‘瀹氳繖鍙ユ槸瀵圭殑?if(!(*G) || (*G)->vertex || (*G)->arcs){ printf("鍐呭瓨鍒嗛厤澶辫触!\n");exit(OVERFLOW);} 寰堟槑鏄惧悗闈袱涓潯浠跺啓鍙嶄簡.杩樻湁灏辨槸int**涓嶆槸鏁扮粍鎸囬拡鍝(*G)->arcs[i][j]杩欐牱瀛愬啓灏辨湁闂鐨.int (*p)[10]杩欑鎵嶅彲浠ュ摕;(int*)p[10]杩欑涔熷彲浠 鐩祴妤间富宸叉檿,...
绛旓細for(i=0;i<G->vexnum;i++) printf("%6c",G->AdjList[i].data ); printf("\n"); for(i=0;i<g.vexnum;i++) { for(j=0 ;j<g.vexnum ;j++) { printf("%6d", g.arcs[i][j]); } printf("\n"); }}void dijkshort_One(ALGraph F, MGraph G,int v0,int distance[], int pre...
绛旓細printf("node:%c\n" , g.vexs[i]); /*璁块棶鍑哄彂鐐箆i+1 */ Visited[i]=TRUE; /*鏍囪vi+l宸茶闂繃*/ for (j=0;j<n;j++) /*渚濇鎼滅储vi+1鐨勯偦鎺ョ偣*/ if((g.arcs[i][j]==1) &&(! visited[j])) DFS(j); /*鑻i+l鐨勯偦鎺ョ偣vj+l鏈浘璁块棶杩,鍒欎粠vj+l鍑哄彂杩涜娣卞害浼樺厛鎼滅储*/} /*...
绛旓細if (G.arcs[k][i].adj != j) { return i; } } return -1;}瀛樺偍缁撴瀯鏄偦鎺ヨ〃//鍒濆鏉′欢:鍥綠瀛樺湪,v鏄疓涓煇涓《鐐//鎿嶄綔缁撴灉:杩斿洖v鐨勭涓涓偦鎺ラ《鐐圭殑搴忓彿,鑻ラ《鐐瑰湪G涓病鏈夐偦鎺ラ《鐐,鍒欒繑鍥-1int FirstAdjVex(ALGraph G,VertexType v){ ArcNode * p; int v1; v1 = LocateVex(G,v);//v1涓...
绛旓細杈逛笂鐨勬潈鍊艰〃绀鸿窛绂.涓烘鍥鹃夋嫨閫傚綋鐨鏁版嵁缁撴瀯銆 (2)鎶婂悇绉嶈矾寰勯兘鏄剧ず缁欐父瀹,鐢辨父瀹㈣嚜宸遍夋嫨娴忚璺嚎銆 (3)鐢诲嚭鏅偣鍒嗗竷鍥句簬灞忓箷涓娿俒瀹炵幇鎻愮ず] (1)鏋勯犱竴涓棤鍚戝浘G骞剁敤閭绘帴鐭╅樀鏉ュ瓨鍌ㄣ (2)鍒╃敤杩澃鏂壒鎷夌畻娉曟潵璁$畻鍑鸿捣鐐瑰埌鍚勪釜椤剁偣涔嬮棿鐨勬渶鐭矾寰勭敤浜岀淮鏁扮粍p[i][]鏉ヨ褰,鏈鐭矾寰勯暱搴﹀氨鐢ㄤ竴缁存暟缁刣[i...
绛旓細閫夋嫨锛氬湪V-S锛堟湭鎵惧埌鏈鐭矾寰勭殑鑺傜偣闆嗗悎锛変腑锛屾壘鍒癉鍊兼渶灏忕殑鑺傜偣vj銆 鏇存柊锛氬浜庢墍鏈塿k锛圴-S涓殑鑺傜偣锛夛紝妫鏌ュ苟鍙兘鏇存柊浠巚鍒皏k鐨勬渶鐭矾寰勯暱搴︼紝鍙兘鏄洿鎺ョ殑杈规潈鍊硷紝鎴栦笌宸茬煡鏈鐭矾寰勶紙vj锛夌浉杩炵殑杈规潈鍊间箣鍜屻傚叿浣撳簲鐢ㄥ満鏅槸鍦ㄦ棤鍚戝浘G=(V,E)涓紝姣忎釜杈笶[i]鐨勯暱搴︿负w[i]锛岀洰鏍囨槸鎵惧埌浠...