-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprint.cpp
72 lines (70 loc) · 2.24 KB
/
print.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#ifdef PRINT
template<class kType>
void aptree<kType>::print(const char name[])const
{
cout<<"²ÎÊýÉ趨:"<<endl;
cout<<"thre:"<<thre<<' '<<"KL:"<<KL<<' '<<"f:"<<kf<<' '<<"m:"<<sfm<<' '<<"n:"<<sfn<<endl;
queue<pair<int, node*> > que;
que.push(pair<int, node*>(0,root));
pair<int,node*> tmp;
ofstream fout(name);
int last=0;
int Count=0;
cout<<"printing file aptree "<<name<<endl;
while(!que.empty())
{
tmp = que.front();
que.pop();
if(tmp.first>last) Count = 0;
++Count;
last = tmp.first;
fout<<tmp.first<<' '<<Count<<endl;
if(tmp.second->property==K)
{
kNode *kn=reinterpret_cast<kNode*>(tmp.second);
fout<<"kNode\n";
fout<<"offset:"<<kn->offset<<endl;
if(kn->cut.size()<kn->N.size())fout<<"dummy"; else fout<<"ordinary";
fout<<endl;
for(int i=0; i<int(kn->cut.size()); ++i)
{
for(int j=0; j<int(kn->cut[i].size()); ++j)
fout<<kn->cut[i][j]<<'\t';
fout<<endl;
}
for(int i=0; i<int(kn->N.size()); ++i)
{
que.push(pair<int, node*>(tmp.first+1, kn->N[i]));
}
fout<<endl;
}
if(tmp.second->property==S)
{
fout<<"sNode\n";
sNode *sn=reinterpret_cast<sNode*>(tmp.second);
fout<<sn->s<<endl;
if(sn->cell.size()<sn->N.size())fout<<"dummy"; else fout<<"ordinary";
fout<<endl;
for(int i=0; i<int(sn->cell.size()); ++i)
{
fout<<sn->cell[i]<<endl;
}
for(int i=0; i<int(sn->N.size()); ++i)
{
que.push(pair<int, node*>(tmp.first+1, sn->N[i]));
}
fout<<endl;
}
if(tmp.second->property==Q)
{
fout<<"qNode\n";
qNode *qn=reinterpret_cast<qNode*>(tmp.second);
for(int i=0; i<int(qn->q.size()); ++i)
fout << qn->q[i]->first << ' ';
fout<<endl<<endl;
}
}
fout.close();
cout<<"printed"<<endl<<endl;
}
#endif // PRINT