两段代码~

 1 #include  < iostream >
 2 using   namespace  std;
 3
 4 #define  max 100
 5
 6 int  matrix[max][max];     // 关联矩阵
 7
 8 int  x,y;                 // |V1|,|V2|
 9
10 int  check[max];          // 确定下部图是否被访问
11 int  link[max];             // 下部图连接上部图的点
12
13 bool  find( int  up)
14 ExpandedBlockStart.gifContractedBlock.gif {
15    int down;
16    for(down=0;down<y;down++)
17ExpandedSubBlockStart.gifContractedSubBlock.gif    {
18        if(matrix[up][down]==1&&check[down]==0)
19ExpandedSubBlockStart.gifContractedSubBlock.gif        {
20            check[down]=1;
21            if(link[down]==-1||find(link[down]))
22ExpandedSubBlockStart.gifContractedSubBlock.gif            {
23                link[down]=up;
24                return true;
25            }

26        }

27    }

28    return false;
29}

30
31 int  match()
32 ExpandedBlockStart.gifContractedBlock.gif {
33    int up;
34    int num=0;
35    memset(link,-1,sizeof(link));
36    for(up=0;up<x;up++)
37ExpandedSubBlockStart.gifContractedSubBlock.gif    {
38        memset(check,0,sizeof(check));
39        if(find(up))
40            num++;
41    }

42    return num;
43}

44
45 int  main()
46 ExpandedBlockStart.gifContractedBlock.gif {
47    int i,j;
48    int r;
49    cout<<"使用说明:"<<endl
50        <<"首先输入二部图上部和下部的节点个数;"<<endl
51        <<"然后输入关联矩阵,1表示匹配,0表示不匹配;"<<endl
52        <<"程序会给出最大匹配数和匹配路径"<<endl<<endl;
53    cout<<"依次输入|V1|,|V2|:"<<endl;
54    cin>>x>>y;
55    
56    cout<<"输入关联矩阵:"<<endl;
57    for(i=0;i<x;i++)
58        for(j=0;j<y;j++)
59            cin>>matrix[i][j];
60        r=match();
61        cout<<"最大匹配数: ";
62        cout<<r<<endl;
63        
64        cout<<"匹配路径:"<<endl;
65        for(i=0;i<y;i++)
66ExpandedSubBlockStart.gifContractedSubBlock.gif        {
67            if(link[i]!=-1)
68            cout<<"Y"<<i+1<<"-X"<<link[i]+1<<" ";
69        }

70        cout<<endl;
71        return 0;
72}
===================================================
  1 #include  < iostream >
  2 #include  < vector >
  3 #include  < string >
  4 using   namespace  std;
  5
  6 ExpandedBlockStart.gifContractedBlock.gif /**/ ///
  7 //                       节点类
  8 class  Node
  9 ExpandedBlockStart.gifContractedBlock.gif {
 10public:
 11    Node * left;
 12    Node * right;
 13    double num;
 14    string source;
 15    string code;
 16
 17    Node();
 18    ~Node();
 19}
;
 20
 21 Node::Node()
 22 ExpandedBlockStart.gifContractedBlock.gif {
 23    left=NULL;
 24    right=NULL;
 25    num=0;
 26    source="";
 27    code="";
 28}

 29
 30 ExpandedBlockStart.gifContractedBlock.gifNode:: ~ Node() {}
 31
 32 ExpandedBlockStart.gifContractedBlock.gif /**/ ///
 33
 34 // 排序
 35 void  sort(vector < Node >   & a)
 36 ExpandedBlockStart.gifContractedBlock.gif {
 37    int i,j;
 38    for(i=0;i<a.size();i++)
 39        for(j=0;j<a.size()-i-1;j++)
 40ExpandedSubBlockStart.gifContractedSubBlock.gif        {
 41            if(a[j].num>a[j+1].num)
 42            swap(a[j],a[j+1]);
 43        }

 44}

 45
 46 ExpandedBlockStart.gifContractedBlock.gif /**/ /
 47 // Huffman编码
 48 void  code(Node  * root)
 49 ExpandedBlockStart.gifContractedBlock.gif {
 50    if(root->left==NULL)
 51        return;
 52    else
 53    root->left->code=root->code+"0";
 54    if(root->right==NULL)
 55        return;
 56    else
 57    root->right->code=root->code+"1";
 58
 59    code(root->left);
 60    code(root->right);
 61
 62}

 63 ExpandedBlockStart.gifContractedBlock.gif /**/
 64 // 输出编码好的对象
 65 void  printCode(Node  * root)
 66 ExpandedBlockStart.gifContractedBlock.gif {
 67    Node *temp;
 68    temp=root;
 69    if(temp->left==NULL||temp->right==NULL)
 70ExpandedSubBlockStart.gifContractedSubBlock.gif    {
 71        cout<<temp->source<<" "<<temp->num<<" "<<temp->code<<endl;
 72        return;
 73    }

 74    printCode(temp->left);
 75    printCode(temp->right);
 76}

 77
 78 ExpandedBlockStart.gifContractedBlock.gif /**/ /
 79 // 竖向打印树,看的时候横着看
 80 void  PrintTree(Node  * bt, int  nLayer)
 81 ExpandedBlockStart.gifContractedBlock.gif {
 82    Node *temp;
 83    temp=bt;
 84    if(temp==NULL) return;
 85    PrintTree(temp->right, nLayer+4);
 86    for(int i=0;i<nLayer;i++)
 87        cout<<" ";
 88    cout<<temp->source<<" "<<temp->num<<" "<<temp->code<<endl;
 89    PrintTree(bt->left, nLayer+4);
 90}

 91 ExpandedBlockStart.gifContractedBlock.gif /**/ ///
 92 int  main()
 93 ExpandedBlockStart.gifContractedBlock.gif {
 94    int size;
 95    int i;
 96    Node root;
 97    cout<<"输入需要编码的节点个数:"<<endl;
 98    cin>>size;
 99    vector<Node>a(size);
100    
101    cout<<"依次输入需要编码的字符和权值:"<<endl;
102    for(i=0;i<size;i++)
103ExpandedSubBlockStart.gifContractedSubBlock.gif    {
104        cout<<"#"<<i+1<<":"<<endl;
105        cin>>a[i].source>>a[i].num;
106    }

107    for(i=0;i<2*size-2;i=i+2)
108ExpandedSubBlockStart.gifContractedSubBlock.gif    {
109        Node temp;
110        sort(a);
111        temp.num=a[i].num+a[i+1].num;
112        temp.source=a[i].source+a[i+1].source;
113        a.push_back(temp);
114        a[a.size()-1].left=&a[i];
115        a[a.size()-1].right=&a[i+1];
116        root=a[a.size()-1];
117    }

118    code(&root);
119    
120    cout<<"Huffman树,从左到右依次是字符,权值,密码,看的时候横着看"<<endl<<endl;
121    cout<<"HuffmanTree:"<<endl;
122    PrintTree(&root,0);
123    cout<<endl;
124    cout<<"密码与对应的字符及权值:"<<endl;
125    printCode(&root);
126    return 0;
127}

128
129

转载于:https://www.cnblogs.com/skunk/archive/2009/06/02/1494919.html

在Python中,要顺序运行两段代码,通常意味着你有两段独立的代码,需要在执行完第一段代码后紧接着执行第二段代码。以下是一些常见的方法来顺序执行两段代码: 1. 将两段代码分别放在同一个Python文件的不同部分。你可以将第一段代码放在文件的上半部分,然后将第二段代码放在下半部分。当Python解释器执行该文件时,会按顺序逐行执行,这样第一段代码执行完毕后会自动继续执行第二段代码。 2. 将两段代码分别放在不同的Python文件中。首先运行第一段代码所在的Python文件,等待其执行完毕后,再运行第二段代码所在的Python文件。这可以通过命令行手动完成,也可以在第一段代码的最后使用`os.system`或者`subprocess`模块来调用系统命令运行第二段代码所在的文件。 3. 将两段代码放在一个Python脚本中,但将它们分别放在两个函数中。先调用第一个函数执行第一段代码,然后在第一个函数执行完毕后调用第二个函数执行第二段代码。 下面是一个简单的示例,展示如何在同一个Python文件中顺序运行两段代码: ```python # 第一段代码:打印一些文字 print("这是第一段代码的输出") # 一些可能的逻辑处理 # ... # 第二段代码:计算并打印一个数学表达式的结果 result = 10 + 20 print(f"计算结果是: {result}") ``` 在这个示例中,第一段代码首先执行,打印出一段文字,然后第二段代码在第一段代码执行完毕后执行,计算两个数字的和并打印结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值