#include <iostream>
using namespace std;
struct node
{ int data;
struct node *left;
struct node *right;
};
void swaptree(struct node *t)
{
static int i=1;
struct node *p;
if ( t!=NULL)
{ p->left; t->left=t->right; t->right=p;
printf("第%d個節點的值為%d",i,t->data);
i++;
swaptree(t->left);
swaptree(t->right);}
}
int main(void) {
struct node *h1,*h2,item1,item2,item3,item4,item5;
h1=&item1; h2=&item1;
item1.data=1;item1.left=&item2;item1.right=&item3;
item2.data=2;item2.left=&item4;item2.right=&item5;
item3.data=3;item3.left=NULL;item3.right=NULL;
item4.data=4;item4.left=NULL;item4.right=NULL;
item5.data=5;item5.left=NULL;item5.right=NULL;
swaptree(h1);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IG5vZGUKewlpbnQgZGF0YTsKCXN0cnVjdCBub2RlICpsZWZ0OwoJc3RydWN0IG5vZGUgKnJpZ2h0Owp9OwogCnZvaWQgc3dhcHRyZWUoc3RydWN0IG5vZGUgKnQpCnsKCXN0YXRpYyBpbnQgaT0xOwoJc3RydWN0IG5vZGUgKnA7CglpZiAoIHQhPU5VTEwpIAp7CXAtPmxlZnQ7CXQtPmxlZnQ9dC0+cmlnaHQ7IHQtPnJpZ2h0PXA7CiAKIHByaW50Zigi56ysJWTlgIvnr4Dpu57nmoTlgLzngrolZCIsaSx0LT5kYXRhKTsKIGkrKzsKICBzd2FwdHJlZSh0LT5sZWZ0KTsKICBzd2FwdHJlZSh0LT5yaWdodCk7fSAKfQogCmludCBtYWluKHZvaWQpIHsKIAogc3RydWN0IG5vZGUgKmgxLCpoMixpdGVtMSxpdGVtMixpdGVtMyxpdGVtNCxpdGVtNTsKIGgxPSZpdGVtMTsgaDI9Jml0ZW0xOwogaXRlbTEuZGF0YT0xO2l0ZW0xLmxlZnQ9Jml0ZW0yO2l0ZW0xLnJpZ2h0PSZpdGVtMzsKIGl0ZW0yLmRhdGE9MjtpdGVtMi5sZWZ0PSZpdGVtNDtpdGVtMi5yaWdodD0maXRlbTU7CiBpdGVtMy5kYXRhPTM7aXRlbTMubGVmdD1OVUxMO2l0ZW0zLnJpZ2h0PU5VTEw7CiBpdGVtNC5kYXRhPTQ7aXRlbTQubGVmdD1OVUxMO2l0ZW00LnJpZ2h0PU5VTEw7CiBpdGVtNS5kYXRhPTU7aXRlbTUubGVmdD1OVUxMO2l0ZW01LnJpZ2h0PU5VTEw7CiBzd2FwdHJlZShoMSk7CiByZXR1cm4gMDsKfQ==