?? alphabetacpp.cpp
字號(hào):
#include <iostream>
#include <cmath>
#include <vector>
#include <cstring>
#include "Gametree.h"
using namespace std;
typedef vector<node> GameTree;//博弈樹(shù)類(lèi)
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; //從文件中獲取初始狀態(tài)的信息
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<<"請(qǐng)選擇測(cè)試文件 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; //頭結(jié)點(diǎn)無(wú)父親節(jié)點(diǎn)
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; //子節(jié)點(diǎn)個(gè)數(shù)
}
//末端節(jié)點(diǎn)賦值
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;
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -