C++二叉搜索树实现字典(dictionary)

本文详细介绍了如何使用C++编程语言构建一个二叉搜索树,并将其应用于实现字典功能。通过实例和代码解析,展示了节点插入、查找和删除等关键操作,为理解和应用二叉搜索树提供了实用指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//1、一个节点的ADL

#ifndef NODE_H_ 
#define NODE_H_
#include<cstdlib> 
template <typename E>
class BinNode{
   
   
    public:
    virtual ~BinNode(){
   
   } 
    virtual E& element() =0;
    virtual void setElement(const E&) =0;
    virtual BinNode* left() const =0;
    virtual void setLeft(BinNode *) =0;
    virtual BinNode* right() const =0;
    virtual void setRight(BinNode *) =0;
    virtual bool isLeaf() =0;
};

#endif






//2、字典的ADL:

#ifndef DICTIONARY_H_
#define DICTIONARY_H_

template<typename key ,typename E>
class Dictionary{
   
   
    private:
    void operator =(const Dictionary&){
   
   }
    Dictionary(const Dictionary&){
   
   }
    public:
    Dictionary(){
   
   }
    virtual ~Dictionary(){
   
   }
    virtual void clear() =0;
    virtual void insert(const key& k, const E& e) =0;
    virtual E remove (const key & k) =0;
    virtual E removeAny() =0;
    virtual E find(const key & k) const =0;
    virtual int size() =0;
};

#endif









//3、一个带权的节点(继承普通节点)

#include"node.h"
#include"dictionary.h"
#include<iostream>
#include<cstring>
#include<cstdlib>
using namespace std;

template<typename key,typename E>
class BSTnode: public BinNode<E>{
   
   
    private:
    key k;
    E it;
    BSTnode* lc;
    BSTnode* rc;
    public:
    BSTnode(){
   
   lc=NULL; rc=NULL;}
    BSTnode(key K,E e, BSTnode *l=NULL,BSTnode* r=NULL){
   
   
        k=K;it=e;lc=l;rc=r;
    }
    ~BSTnode() {
   
   }
    E& element(){
   
    return it;}</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值