zoukankan      html  css  js  c++  java
  • 复制树

    可能编译时会有些语法小错误(比如分号,->,等),很容易就自己纠正了哦,思路绝对是完全正确的,所以用的话就自己试着改改吧,直接复制粘贴,就正确,岂不是太没写代码体验了,自己改改才印象更加深刻的呢()~~~~;

    #include<iostream>
    using namespace std;
    
    typedef struct BiNode{
        char data;
        struct BiNode *lchild,*rchild;
    }BiTNode,*BiTree;
    
    typedef struct StackNode{
        BiTNode data;
        struct StackNode *next;
    }
    
    void CreateBiTree(BiTree &T){
        char ch;
        cin>>ch;
        if(ch=='#') T=NULL;
        else{
            T=new BiTNode;
            T->data=ch;
            CreateBiTree(T->lchild);
            CreateBiTree(T->rchild);
        }
    }
    
    void InitStack(LinkStack &S)
    {
    	//构造一个空栈S,栈顶指针置空
    	S=NULL;
    }
    
    bool StackEmpty(LinkStack S)
    {
    	if(!S)
    		return true;
    	return false;
    }
    
    void Push(LinkStack &S,BiTree e)
    {
    	//在栈顶插入元素*e
    	StackNode *p=new StackNode;
    	p->data=*e;
    	p->next=S;
    	S=p;
    }
    
    void Pop(LinkStack &S,BiTree e)
    {
    	if(S!=NULL)//原书上写的是if(S==NULL)return ERROR;
    	{	
    		*e=S->data;
    		StackNode *p=S;
    		S=S->next;
    		delete p;
    	}
    } 
    
    void Copy(BiTree T,BiTree &newT){
        if(T==NULL){
            newT=NULL;
            return;
        }else{
            newT=new BiTNode;
            newT->data=T->data;
            Copy(t->lchild,newT->lchild);
            Copy(t->rchild,newT->rchild);
        }
    }
    
    void InOrderTraverse(BiTree T)
    {  
    	//中序遍历二叉树T的递归算法
    	if(T){
    		InOrderTraverse(T->lchild);
    		cout << T->data;
    		InOrderTraverse(T->rchild);
    	}
    }
    
    void main()
    {
    	BiTree tree,new_tree;
    	cout<<"请输入建立二叉树的序列:
    ";
    	CreateBiTree(tree);
    	Copy(tree,new_tree);
    	cout<<"复制得到的新树的中序序列:
    ";
    	InOrderTraverse(new_tree);
    	cout<<endl;
    }
    
  • 相关阅读:
    linux mysql开启远程链接
    Nginx 下无法读取session 导致 thinkphp验证码错误
    Nginx 开启 path_info功能
    让chrome打开手机网页
    vue 组件和全局组件的注册、使用
    Vue 导入文件import、路径@和.的区别
    vue 打包路径不对设置方法
    id
    Ajax GET 和 POST 的区别
    前端笔试题汇总 2018/12/04 (2)
  • 原文地址:https://www.cnblogs.com/ygjzs/p/11874582.html
Copyright © 2011-2022 走看看