91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

C++(樹、隊列) 動物游戲的程序是一個簡單的機器學習例子,當遇見新的情況時就增加新的動物園到基本知識里。這個改變基本知識的能力,使得動物程序能模仿學習的過程。 動物游戲有兩個參與者:玩者和猜者。玩者想出一種動物,由猜者去猜。猜者要問玩者一系列問題,主要是動物的一些特征。通過玩者的答復,猜者盡力去猜玩者想出的動物。猜對了猜者贏,否則,玩者贏。如果玩者所想的動物不在猜者的知識庫中,則玩者將新動物的名稱及其特征告訴猜者,猜者將新動物添加到知識庫中,以便在后繼游戲中使用。

資源截圖

代碼片段和文件信息

#include?
#include?????//隊列類?
#include?
#include?
#include?
using?namespace?std;
queueq1q2;

class?BinaryTree;//樹類?
class?BinaryTreeNode;//樹節(jié)點類?

class?BinaryTreeNode
{
friend?class?BinaryTree;
public:
BinaryTreeNode()?{?L?=?NULL;?R?=?NULL;?}//構造函數(shù),構造根結點
BinaryTreeNode(string?&an?BinaryTreeNode?*l?=?NULL?BinaryTreeNode?*r?=?NULL);??
//分支結點構造函數(shù),主要使用這個
void?GetAn(string?&?data)const?{?data=Data;?}
????void?release();
protected:
string?Data; //所有數(shù)據(jù)?
BinaryTreeNode?*?L; //左孩子指針
BinaryTreeNode?*?R;????//右孩子指針?
};

void?BinaryTreeNode::release()
{
if?(L?!=?NULL)
{
L->release();
delete?L;
L?=?NULL;
}
if?(R?!=?NULL)
{
R->release();
delete?R;
R?=?NULL;
}
}

class?BinaryTree
{
public:
BinaryTree()?{?T?=?NULL;?} //構造函數(shù)
BinaryTree(BinaryTreeNode*P)?{?T?=P;?}
~BinaryTree(); //析構函數(shù)
void?readfile();
void?queuetotree(BinaryTreeNode**);
void?expert(BinaryTreeNode*);?
void?treetoqueue(BinaryTreeNode*);
void?writefile();??
protected:
BinaryTreeNode?*T;
};

BinaryTree::~BinaryTree()
{
if?(T?!=?NULL)
{
T->release();
delete?T;
T?=?NULL;

}
}
void?BinaryTree::treetoqueue(BinaryTreeNode*T)//將二叉樹中的內(nèi)容以前序遍歷存入隊列?
{
????string?str=“#“;
????if?(T?==?NULL)
{
q2.push(str);

return;
}
????q2.push(T->Data);
treetoqueue(T->L);
??? treetoqueue(T->R);
}

void?BinaryTree::queuetotree(BinaryTreeNode**T)//將隊列中的內(nèi)容以前序遍歷生成二叉樹?
{
????string?str1str2=“#“;
????str1=q1.front();
????q1.pop();
????if?(str1?==?str2)
????????*T?=?NULL;
????else
????{
????????*T?=?new?BinaryTreeNode;
????????(*T)->Data?=?str1;
????????queuetotree(&(*T)->L);
????????queuetotree(&(*T)->R);???
????}
}

void?BinaryTree::expert(BinaryTreeNode?*T)//專家提問和推測?用戶回答?
{
string?str1=“是“str2=“否“str3str4str5;?
while(1)
{
BinaryTreeNode?*N;
N=T;
while(1)
{
cout<<“是否“<Data<<“?“< cin>>str3;
if(N->L==NULL&&N->R==NULL)
{ if(str3==str1)
{
cout<<“專家已猜出結果,是否重新進行游戲“< cin>>str3;
break;
}
else?if(str3==str2)
{
cout<<“專家未猜出結果,請輸入動物名稱和相關特征“?< cout<<“動物名稱“< cin>>str4;
cout<<“相關特征“< cin>>str5;
BinaryTreeNode?*X*Y;
X?=?new?BinaryTreeNode;
Y?=?new?BinaryTreeNode;
X->L=X->R=Y->L=Y->R=NULL;
N->L=X;
N->R=Y;
Y->Data=N->Data;
N->Data=str5;
X->Data=str4;
cout<<“專家已掌握知識,是否重新進行游戲“< cin>>str3;
break; ?
}
else
{
cout<<“未輸入正確字符,請重新輸入。“< }
}
else
{
if(str3==str1)
{
N=N->L;
}
else?if(str3==str2)
{
N=N->R;
}
else?
{
cout<<“未輸入正確字符,請重新輸入。“< }
}
}
if(str3==str2)?break;
}
}


void?BinaryTree::readfile()//讀取文件中的內(nèi)容存入隊列?
{
std::ifstream?fin(“知識庫.txt“?std::ios::in);
char

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????3948??2019-05-28?10:57??動物學習新.cpp
?????文件?????2053720??2019-06-08?11:46??動物學習新.exe
?????文件??????????90??2019-05-27?20:54??知識庫.txt

評論

共有 條評論