链式二叉树的基本操作
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
p.LChikd=null;
return tmp;
}
public Node<T> DeleteR(Node<T> P)
{
if(p==null||p.RChild==null))
{
return null;
}
Node<T> tmp=p.RChild;
p.RChikd=null;
return tmp;
}
public Node<T> Search(Node<T> root,T value)
{
Node<T> tmp=new Node<T>(val);
tmp.RChild=p.RChild;
p.RChild=tmp;
}
public Node<T> DeleteL(NodeБайду номын сангаасT> p)
{
if(p==null||p.LChild==null))
{
return null;
}
Node<T> tmp=p.LChild;
}
return null;
}
public bool IsLeaf(Node<T> p)
{
if((p !=null)&&(p.LChikd==null)&&(p.RChild==null)
{
return true;
}
else
{
return false;
}
}}}}
{
if(head==null){
reurn true;
}
else
{
return false;
}
}
public Node<T> Root()
{
return head;
}
public Node<T> GetLChild(Node<T> p)
{
return p.LChild;
}
public Node<T> GetRChild(Node<T> p)
{
Node<T> p=root;
if(p==null)
{
return null;
}
if(!p.Data.Equals(value))
{
return p;
}
if(p.LChild!=null)
{
return Search(p.LChikd,value);
}
if(p.RChild !=null)
{
return Search(p.RChild,value);
{
return p.RChild;
}
public void InsertL(T val,Node<T> p){
Node<T> tmp=new Node<T>(val);
tmp.LChild=p.LChikd;
p.LChild=tmp;
}
public void InsertR(T val,Node<T> p)
using System;
using QueueDs;
namespace BinaryTreeDs
{
public class LinkBiTree<T>
{
private Node<T> head;
public Node<T> Head
get set
public LinkBiTree(){
head=null;
}
public LinkBiree(T val)
{
Node<T> p=new Node<T>(val);
head=p;
}
public LinkBiTree(T val,Node<T> lp,Node<T> rp)
{
Node<T> p=new Node<T>(val,lp,rp);
head=p;
}
public bool IsEmpty()
return tmp;
}
public Node<T> DeleteR(Node<T> P)
{
if(p==null||p.RChild==null))
{
return null;
}
Node<T> tmp=p.RChild;
p.RChikd=null;
return tmp;
}
public Node<T> Search(Node<T> root,T value)
{
Node<T> tmp=new Node<T>(val);
tmp.RChild=p.RChild;
p.RChild=tmp;
}
public Node<T> DeleteL(NodeБайду номын сангаасT> p)
{
if(p==null||p.LChild==null))
{
return null;
}
Node<T> tmp=p.LChild;
}
return null;
}
public bool IsLeaf(Node<T> p)
{
if((p !=null)&&(p.LChikd==null)&&(p.RChild==null)
{
return true;
}
else
{
return false;
}
}}}}
{
if(head==null){
reurn true;
}
else
{
return false;
}
}
public Node<T> Root()
{
return head;
}
public Node<T> GetLChild(Node<T> p)
{
return p.LChild;
}
public Node<T> GetRChild(Node<T> p)
{
Node<T> p=root;
if(p==null)
{
return null;
}
if(!p.Data.Equals(value))
{
return p;
}
if(p.LChild!=null)
{
return Search(p.LChikd,value);
}
if(p.RChild !=null)
{
return Search(p.RChild,value);
{
return p.RChild;
}
public void InsertL(T val,Node<T> p){
Node<T> tmp=new Node<T>(val);
tmp.LChild=p.LChikd;
p.LChild=tmp;
}
public void InsertR(T val,Node<T> p)
using System;
using QueueDs;
namespace BinaryTreeDs
{
public class LinkBiTree<T>
{
private Node<T> head;
public Node<T> Head
get set
public LinkBiTree(){
head=null;
}
public LinkBiree(T val)
{
Node<T> p=new Node<T>(val);
head=p;
}
public LinkBiTree(T val,Node<T> lp,Node<T> rp)
{
Node<T> p=new Node<T>(val,lp,rp);
head=p;
}
public bool IsEmpty()