数据结构学习笔记(八)字典、及其线性表描述

一、字典

        字典是一些形如(k,v)的数对所组成的集合,其中k是关键字,v是与关键字k对应的值。任意两个数对,其关键字都不相等。比如一个选修某一课程的名单是一个字典结构,关键字是学号,对应的值包含名字、性别、分数等等信息。有关字典的操作有:

  • 确定字典是否为空
  • 确定字典有多少数对
  • 寻找一个指定了关键字的数对
  • 插入一个数对
  • 删除一个指定了关键字的数对
        一个多重字典和上诉字典类似,只是两个或更多的数对可以具有相同的关键字。比如一个号码本是一个多重字典,因为会存在重名的情况。编译器的符号表也是一个多重字典。在一个多重字典中进行查找,需要明确是查找任意一个具备给定关键字的数对,还是查找所有具有给定关键字的数对。删除操作在找到所有具有给定关键字的数对后,要由用户确定具体删除哪一个或者全部删除。

        此外还要注意,有时候我们需要另一形式的删除操作,即删除在某一时间之后插入的所有数对。

        字典的抽象基类如下:

#pragma once 
using namespace std;
//字典的抽象基类
template <class K,class E>
class dictionary
{
public:
	virtual ~dictionary(){}
	virtual bool empty() const = 0;//判断是否为空
	virtual int size() const = 0;//返回字典的大小
	virtual pair<const K, E>* find(const K&) const = 0;//查找某一元素
	virtual voi
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值