📄 alphabetacpp.cpp
字号:
#include <iostream>
#include <cmath>
#include <vector>
#include <cstring>
#include "Gametree.h"
using namespace std;
typedef vector<node> GameTree;//博弈树类
void display(GameTree &T);
int main(int argc,char *argv[])
{
int i,j;
int slect;
if(argc<2)
{
printf("There is no other arguments sent to main except Olympic.exe!\n ");
exit(1);
}
printf("There are %d command-line arguments sent to main \n",argc);
for(i=0; i<argc;i++)
printf("argv[%d] : %s\n", i , argv[i]);
FILE *ftree1,*ftree2,*mytree; //从文件中获取初始状态的信息
if((ftree1=fopen(argv[1],"r+"))==NULL)
cout<<"The file text1 cannot be opened!"<<endl;
if((ftree2=fopen(argv[2],"r+"))==NULL)
cout<<"The file text2 cannot be opened!"<<endl;
cout<<"请选择测试文件 1: tree1; 2: tree2 "<<endl<<"输入-> ";
cin>>slect;
switch (slect)
{
case 1:mytree=ftree1;
break;
case 2:mytree=ftree1;
break;
default: cout<<"ERROR!"<<endl;break;
}
GameTree Tree;
node temp;
temp.depth=0;temp.father=-1;temp.sub=0;temp.val=0;temp.flag=0;
char _name[4];char _c;
int Depth=1; int father=-1; int _value;
fscanf(mytree,"%s",&_name); //读取ROOT A
fscanf(mytree,"%s",&_name);
temp.depth=Depth;
temp.father=-1; //头结点无父亲节点
strcpy(temp.name,_name);
Tree.push_back(temp);
_c=_name[0];
Depth++;
while (1)
{
fscanf(mytree,"%s",&_name);
if(strcmp(_name,"VALUE")==0) break;
if (_name[0]!=_c)
{
Depth++;_c=_name[0];
}
for (i=0;i<Tree.size();i++)
{
if (strcmp(_name,Tree[i].name)==0)
{
father=i;
}
}
fscanf(mytree,"%s",&_name);
for(j=0 ;strcmp(_name,"END")!=0 ;fscanf(mytree,"%s",&_name),j++)
{
temp.depth=Depth;
temp.father=father;
strcpy(temp.name,_name);
Tree.push_back(temp);
}
Tree[father].sub=j; //子节点个数
}
//末端节点赋值
fscanf(mytree,"%s",&_name);
while (strcmp(_name,"END")!=0)
{
fscanf(mytree,"%d",&_value);
for (i=0;i<Tree.size();i++)
{
if (strcmp(_name,Tree[i].name)==0)
{
Tree[i].val=_value;
}
}
fscanf(mytree,"%s",&_name);
}
display(Tree);
return 1;
}
void display(GameTree &T)
{
int size=T.size();
for (int i=0;i<size;i++)
{
cout<<T[i].name<<" "<<T[i].depth<<" "<<T[i].father<<" "<<T[i].val<<" "<<T[i].sub<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -