二叉树的静态实现

定义

//定义
struct node{
   int data;
   int lchild;//作为左孩子位置
   int rchild;//作为右孩子位置
}nodes;

替换值

//替换特定值
void search(int root,int x,int y){
   if(root==-1)
   return;
   if(nodes[root].data==x){
      nodes[root].data=y;
   }
   search(nodes[root].lchild,x,y);
   search(nodes[root].rchild,x,y);
}

深度遍历

//先序遍历
void preorder(int root){
   if(root==-1)
   return;
   cout<<nodes[root].data;
   preorder(nodes[root].lchild);
   preorder(nodes[root].rchild);
}

广度遍历

//层次遍历
void layerorder(int root){
   queue<int> q;
   q.push(nodes[root].data);
   while(!q.empty()){
      int front=q.front();
      q.pop();
      cout<<nodes[front].data<<endl;
      if(nodes[front].lchild!=-1)
      q.push(nodes[front].lchild);
      if(nodes[front].rchild!=-1)
      q.push(nodes[front].rchild);
   }
}
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值