【数据结构】集合和字典

系列文章目录



前言

此文介绍了集合和字典的一些知识点。


一、集合

1.集合的概念

基本概念:
①集合是一些互不相同的元素的无序汇集;
②集合中的元素也称为该集合的成员;
③集合中的成员可以使一个原子(单元素),也可以是一个集合。

数据结构中集合的特殊性:
①限制为有穷集;
②所有元素都是统一类型;
③元素之间存在一个小于关系(有序集)。

2.集合的定义

①列举法:定义一个有穷集,例如colour={red,orange,yellow,green,black,blue,purple,white}
②谓词描述法: { x ∣ P ( x ) } \left\{ {x|P\left( x \right)} \right\} { xP(x)}表示所有满足条件P的元素 x x x的集合。
③集合的大小:集合中所包含的元素的个数。

3.集合的主要运算

二、字典

1.字典的概念

字典是一些元素的集合,每个元素有一个称作关键码(key)的域,不同的元素的关键码互不相同。

在讨论字典抽象数据类型时,把字典定义为<名字-属性>对的集合。

2.字典的抽象数据类型

有关字典的操作有如下几种:
①确定一个指定的名字是否在字典中;
②搜索出该名字的属性;
③修改该名字的属性;
④插入一个新的名字及其属性;
⑤删除一个名字及其属性。

//代码来自殷人昆《数据结构:用面向对象方法与C++语言描述》
const int DefualtSize = 26;
enum bool{
   false,true}
template<class Name,class Attribute>
class Dictionary{
   
//对象:一组<名字-属性>对,其中,名字是唯一的
public:
	Dictionary(int size = DefualtSize);
		//建立一个容量为size的空的字典
	bool Member(Name name);
		//若name在字典中,则返回true,否则返回0
	Attribute *Search(Name name);
		//若name在字典中,则返回指向相应Attr的指针,否则返回0
	void Insert(Name name,Attribute attr);
		//若name在字典中,则修改相应<name Attr>对的attr项,否则插入<name Attr>到字典中
	void Remove(Name name);
		//若name在字典中,则在字典中删除相应的<name Attr>对
}

在字典的所有操作中,最基本的只有三种:Search、Insert、Remove。

字典的3种组织方式有:线性表、跳表(略)和散列表。下面分开记录这三种组织方式

3 线性表

字典可以保存在线性序列 ( e 1 , e 2 , ⋯ ) \left( { {e_1},{e_2}, \cdots } \right) (e1,e2,)中,其中 e i { {e_i}} ei

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值