和建树差不多,只不过节点的值不是手动输入了
#include<stdio.h>
#include<iostream>
#include<queue>
#include<stdlib.h>
using namespace std;
struct node
{
char v;
int num;
int depth;
struct node*ls,*rs;
};
struct node*head;
struct node*build()
{
char ch;
cin>>ch;
if(ch=='#') return NULL;
struct node*p=(struct node*)malloc(sizeof(struct node));
p->v=ch;
p->ls=build();
p->rs=build();
return p;
};
struct node*mycopy(struct node*p)
{
if(!p) return NULL;
struct node*pp=(struct node*)malloc(sizeof(struct node));
pp->v=p->v;
pp->ls=mycopy(p->ls);
pp->rs=mycopy(p->rs);
return pp;
};
void middle(struct node*p)
{
if(!p) return ;
middle(p->ls);
cout<<"/节点的值:"<<p->v<<endl;
middle(p->rs);
}
int main()
{
struct node*p=NULL;
head=build();
p=mycopy(head);
middle(p);
return 0;
}