<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x

    C++的CIN和COUT操作符的方法

    發布時間:2011-4-7 21:03    發布者:1640190015
    關鍵詞: CIN , COUT操作符
    主要代碼如下:    #include
        using namespace std;
        const int MAX_EDGE = 100;
        const int MAX_NODE = 100;
        /*
        定義一條邊
        */
        typedef struct{
        int v;
        int t;
        int weight;
        bool isMST;
        }Edge;
        /*
        有關算法的一些變量
        */
        Edge edges[MAX_EDGE];
        int nodeSet[MAX_EDGE];
        const int MSTSetNum = -1;
        int edgeNum;
        bool nodeIsMST[MAX_NODE];
        int Exchange(Edge *a,Edge *b)
        {
        Edge t;
        t = *a;
        *a = *b;
        *b = t;
        return 0;
        }
        /*
        實現快速排序算法quick_sort
        */
        int partition(Edge*edges,int p,int r)
        {
        int i = p-1,j = p;
        for(;j
        {
        if(edges[j].weight <= edges[r].weight)
        {
        i++;
        exchange(edges+i,edges+j);
        }
        }
        exchange(&edges[i+1],&edges[r]);
        return i+1;
        }
        int quick_sort(Edge edges[],int p,int r)
        {
        if(p < r)
        {
        int q = partition(edges,p,r);
        quick_sort(edges,p,q-1);
        quick_sort(edges,q+1,r);
        }
        return 0;
        }
        void Initialize(int nodeSet[],int edgeNum);
        void MST_Kruskal(int n);
        void test();
        int main()
        {
        test();
        return 0;
        }
        void Initialize(int nodeSet[],int n)
        {
        if(edgeNum > MAX_EDGE)
        {
        printf("The total num of edges must be less than %d\n",MAX_EDGE);
        exit(EXIT_FAILURE);
        }
        else
        {
        int i = 0;
        edgeNum = n;
        for(;i
        {
        nodeSet[i] = i;
        }
        }
        }
        void MST_Kruskal(int n)
        {
        Initialize(nodeSet,n);
        quick_sort(edges,0,edgeNum-1);
        int i;
        for(i = 0;i
        {
        if(nodeSet[edges[i].v]!=nodeSet[edges[i].t])
        {
        edges[i].isMST = true;
        if(i==7)
        i = i;
        if(nodeIsMST[edges[i].v] || nodeIsMST[edges[i].t])
        {
        int j;
        for(j = 0;j<=i;j++)
        {
        if(edges[j].isMST)
        {
        if(edges[j].v == edges[i].v ||
        edges[j].t == edges[i].v||
        edges[j].v == edges[i].t||
        edges[j].t == edges[i].t)
        nodeSet[edges[j].v] = nodeSet[edges[j].t] = MSTSetNum;
        }
        }
        nodeIsMST[edges[i].v] = nodeIsMST[edges[i].t] = true;
        }
        else
        {
        nodeSet[edges[i].v] = nodeSet[edges[i].t];
        nodeIsMST[edges[i].v] = nodeIsMST[edges[i].t] = true;
        }
        }
        }
        }
        /*
        測試函數
        */
        void test()
        {
        edges[0].v = 0,edges[0].t = 1,edges[0].isMST = false,edges[0].weight = 4;
        edges[1].v = 0,edges[1].t = 8,edges[1].isMST = false,edges[1].weight = 8;
        edges[2].v = 1,edges[2].t = 2,edges[2].isMST = false,edges[2].weight = 8;
        edges[3].v = 1,edges[3].t = 7,edges[3].isMST = false,edges[3].weight = 11;
        edges[4].v = 2,edges[4].t = 8,edges[4].isMST = false,edges[4].weight = 2;
        edges[5].v = 2,edges[5].t = 5,edges[5].isMST = false,edges[5].weight = 4;
        edges[6].v = 2,edges[6].t = 3,edges[6].isMST = false,edges[6].weight = 7;
        edges[7].v = 3,edges[7].t = 4,edges[7].isMST = false,edges[7].weight = 9;
        edges[8].v = 3,edges[8].t = 5,edges[8].isMST = false,edges[8].weight = 14;
        edges[9].v = 4,edges[9].t = 5,edges[9].isMST = false,edges[9].weight = 10;
        edges[10].v = 5,edges[10].t = 6,edges[10].isMST = false,edges[10].weight = 2;
        edges[11].v = 6,edges[11].t = 7,edges[11].isMST = false,edges[11].weight = 1;
        edges[12].v = 6,edges[12].t = 8,edges[12].isMST = false,edges[12].weight = 6;
        edges[13].v = 7,edges[13].t = 8,edges[13].isMST = false,edges[13].weight = 7;
        MST_Kruskal(14);
        int i,j;
        for(i = 0,j = 0;i<14;i++)
        {
        if(edges[i].isMST)
        {
        printf("%d. (%d,%d)-------%d\n",j+1,edges[i].v,edges[i].t,edges[i].weight);
        j++;
        }
        }
        }
    本文地址:http://www.portaltwn.com/thread-61369-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    sw9518 發表于 2011-4-21 09:24:22
    fox2020 發表于 2011-5-5 20:22:14
    學習了~~
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • EtherCAT®和Microchip LAN925x從站控制器介紹培訓教程
    • MPLAB®模擬設計器——在線電源解決方案,加速設計
    • 讓您的模擬設計靈感,化為觸手可及的現實
    • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
    • 貿澤電子(Mouser)專區

    相關視頻

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷