我正在努力爲學校寫一個程序,不知道從哪裏開始。顧問/學生樹C++
我不是很擅長指針,所以我有點困難。
到目前爲止的代碼(修訂):
#include<iostream>
#include<vector>
#include<string>
using namespace std;
struct node
{
string name;
node * parent;
vector<node*> children;
};
int main()
{
vector<node*> dataBase;
node *advisor, *student, *student2;
advisor = new node;
student = new node;
student2 = new node;
cin>>advisor->name>>student->name>>student2->name;
advisor->children.push_back(student);
advisor->children.push_back(student2);
dataBase.push_back(advisor);
for(int i=0; i<dataBase.size(); i++)
{
cout<<dataBase[i]->name<<endl;
for(int j=0; j<dataBase[i]->children.size(); j++)
{
cout<<dataBase[i]->children[i]->name<<endl;
}
}
system("pause");
return 0;
}
我想要做的就是兩個人的名字的輸入,然後將其存儲在數據庫中。
例如,名字總是顧問,第二名是學生。
我知道如何在紙上做,而不是代碼..所以我正在尋找一些例子/提示。
實施例:
輸入:
約翰史蒂芬
約翰巴里
約翰哈羅德
輸出:
顧問:約翰
學生:史蒂芬,巴里,哈羅德
我想我的程序採取約翰,把他在矢量數據庫的第一項,然後我想借此史蒂芬·巴里和哈羅德和放他們都在矢量兒童。
無論如何,我知道我應該這樣做,作爲一棵樹,並在顧問是父母和學生是樹的孩子。
歡迎任何幫助/建議。謝謝。
編輯#1:現在我只是無法添加更多的學生到一個顧問。
看看stl's'push_back'函數 – 2012-02-19 20:03:46