複製一顆二叉樹
阿新 • • 發佈:2019-01-06
和建樹差不多,只不過節點的值不是手動輸入了
#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; }