一.父节点的查找
#include<iostream>
using namespace std;
//寻找父节点
int main()
{
int n;
cin >>n;
char *p = new char[n];
int q;
for(int i =1 ;i <=n;i++) //从1到n
{
cin >>p[i];
}
char l;
cin >>l;
for(int i =1 ;i <= n; i++)
{
if(p[i]==l)
cout << p[i/2];//对于左右节点来说都一样
}
return 0;
}
二.寻找树中最左边节点
#include<iostream>
using namespace std;
template<class T>
class tNode
{
public:
T data;
int id;
tNode *pL,*pR;
};
const int MAXSIZE= 2000;
tNode<int> tree[MAXSIZE];
int N;
int main()
{
int a, L ,R;
cin >> N;
for(int i =1; i <= N; i++)
{
cin >> a >>L>>R; //每个节点的序号以及它的子节点
tree[a].data = a;
if(!L)
{
tree[a].pL = NULL;
}
else
{
tree[a].pL = &tree[L];
}
if(!R)
{
tree[a].pR = NULL;
}
else
{
tree[a].pR = &tree[R];
}
}
//索引
tNode<int> *p = &tree[1];
while(p)
{
cout << p->data<<" ";
p = p->pL;
}
return 0;
}