欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
飛花如夢(mèng),陽(yáng)光燦爛的日子

原創(chuàng )作品,作者:飛陽(yáng)。轉載請注明出處,謝謝。
http://hi.baidu.com/burtcn

有人說(shuō),沒(méi)有收獲的實(shí)踐,還不如不實(shí)踐呢。。
不要讓重復勞作變得毫無(wú)意義。。

接下來(lái)說(shuō)正題,深度優(yōu)先搜索,其實(shí)很簡(jiǎn)單。。
我同學(xué)問(wèn)我有沒(méi)有寫(xiě)過(guò),我說(shuō)我懂原理,但是沒(méi)寫(xiě)過(guò)。
今天有時(shí)間就弄了一下。

而廣度優(yōu)先搜索好像要用到隊列。。等下試試

深度優(yōu)先搜索 depth first search

測試數據如下
===================下面一行開(kāi)始
a b 1 c 2 d 3#
b c 4#
c d 3#
d e 4#
e f 5 h 7#
f i 8#
g #
h e 4 g 6#
i g 6 h 7#
===================上面一行結束

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define alloc(type) (type*)malloc(sizeof(type))
#define NODE_NUM 9
#define TRUE 1
#define FALSE 0

struct adj_list{
             int index;
             char name[10];
             struct adj_list *next;
};
typedef struct adj_list Node;

//函數聲明
void generate(Node[],int);
void printnode(Node*);
void showtable(Node[],int);
void travel_dfs(Node[],int[],int);
void dfs(Node[],int,int,int[],int[],int&);

int main(){
             Node node[NODE_NUM];
             generate(node,NODE_NUM);
             printf("你剛才輸入的鄰接表為:\n");
             showtable(node,NODE_NUM);
             int tra[NODE_NUM];
             travel_dfs(node,tra,NODE_NUM);
             printf("輸出遍歷的順序\n");
             for(int i=0;i<NODE_NUM;i++)
                       if(tra[i]!=-1)
                                 printf("%s=>",node[tra[i]].name);
             printf("\n");
             return 0;
}

void travel_dfs(Node node[],int tra[],int size){
             int *isused=new int[size];
             for(int i=0;i<size;i++){
                       isused[i]=FALSE;
                       tra[i]=-1;
             }
             int count=0;
             for(i=0;i<size;i++)
                       if(isused[i]==FALSE)
                                 dfs(node,size,i,isused,tra,count);
             delete isused;
}

void dfs(Node node[],int size,int current,int isused[],int tra[],int &count){          
             isused[current]=TRUE;
             tra[count++]=current;

             Node *pos=node[current].next;
             while(pos!=NULL){                    
                       if(isused[pos->index]==FALSE)
                                 dfs(node,size,pos->index,isused,tra,count);
                       pos=pos->next;
             }
}

void generate(Node node[],int size){
             //先輸入頂點(diǎn)名字,然后按格式輸入后面的鏈表節點(diǎn)
             //格式為:name index
             //輸入#結束鏈表節點(diǎn)的輸入,轉入其他頂點(diǎn)
             for(int i=0;i<size;i++){                              
                       scanf("%s",node[i].name);
                       node[i].index=i;
                       node[i].next=NULL;
                       Node *pos=&node[i];
                       char name[10];
                       int index=0;
                       while(true){                              
                                 scanf("%s",name);
                                 if(strcmp(name,"#")==0) break;
                                 scanf("%d",&index);                              
                                 Node *no=alloc(Node);
                                 strcpy(no->name,name);
                                 no->index=index;
                                 no->next=NULL;                              
                                 pos->next=no;
                                 pos=pos->next;
                       }
             }
}

void printnode(Node *node){
             printf("(%d,%s)",node->index,node->name);
}

void showtable(Node node[],int size){          
             for(int i=0;i<size;i++){
                       printnode(node+i);
                       Node *pos=node[i].next;
                       while(pos!=NULL){
                                 printf("->");
                                 printnode(pos);
                                 pos=pos->next;
                       }          
                       printf("\n");
             }
}

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
c語(yǔ)言經(jīng)典游戲代碼
(轉)樹(shù)狀數組
非常實(shí)用,推薦一種面向對象思維的單片機程序框架
文件的二進(jìn)制存儲
請用代碼寫(xiě)一個(gè)算法測試回環(huán)字符串函數
經(jīng)典程序100例(71-80)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久