- 浏览: 768658 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
字典:以集合为基础,并支持支持Member,Insert和Remove三种运算的抽象数据类型。
字典是一些元素的集合,每个元素有一个称作关键码的域,不同元素的关键码互不相同
组织方式:线性表,跳表(skip list),散列表(hash table)
线性表
字典是一些元素的集合,每个元素有一个称作关键码的域,不同元素的关键码互不相同
组织方式:线性表,跳表(skip list),散列表(hash table)
线性表
#include<assert.h> template<typename E,typename K> class ChainNode{ public: E data; ChainNode<E,K> *link; ChainNode():link(NULL){}; ChainNode(E& e1,ChainNode<E,K>*next=NULL):data(e1),link(next){}; }; template<typename E,typename K> class SortedChain{ public: SortedChain(){ first = new ChainNode<E,K>; assert(first!=NULL); } ~SortedChain(); ChainNode<E,K> *Search(const K k1)const; void Insert(const K k1,E& e1); bool Remove(const K k1,E& e1); ChainNode<E,K> *Begin(){ return first->link; } ChainNode<E,K> *Next(ChainNode<E,K> *current)const{ if(current!=NULL) return current->link; return NULL; } private: ChainNode<E,K> *first; }; template<typename E,typename K> ChainNode<E,K>* SortedChain<T>::Search(const K k1) const { ChainNode<E,K> *p = first->link; while(p!=NULL&&p->data<k1) p = p->link; if(p!=NULL&&p->data==k1) return p; return NULL; } /* 在大于k1之后插入e1,如果有k1用e1替换 */ template<typename E,typename K> void SortedChain<T>::Insert(const K k1, E &e1) { ChainNode<E,K> *pre,*p,*newNode; p = first->link; pre = first; while(p!=NULL&&p->data<k1){ pre = p; p = p->link; } if(p!=NULL&&p->data==k1){ p->data = e1; return; } newNode = new ChainNode<E,K>(e1); assert(newNode!=NULL); newNode->link = p; pre->link = newNode; } /* 删除k1 */ template<typename E,typename K> bool SortedChain<E,K>::Remove(const K k1, E &e1) { ChainNode<E,K> *p,*pre; p = first->link; pre = first; while(p!=NULL&&p->data<k1){ pre = p; p = p->link; } if(p!=NULL&&p->data==k1){ pre->link = p->link; p->data = e1; delete p; return true; } return false; }
发表评论
-
时间复杂度推导
2012-06-05 22:57 9831.用常数1取代运行时间中的所有加法常数 2.在修改后的运行次 ... -
数据结构概论2
2012-06-04 22:19 809数据元素:组成数据的,有一定意义的基本单位,在计算机中通常作为 ... -
排序概念
2011-06-24 14:51 789数据表:待排序数据元素的有很集合 排序码:通常数据元素有多个 ... -
图的基本概念
2011-06-20 16:18 750完全图:n个顶点,n*(n-1)/2个边的无向图,就是无向完全 ... -
红黑树
2011-06-16 14:29 516红黑树: 1.根结点和所有的叶结点都是黑色 2.从根结点到叶结 ... -
链表反转
2011-06-12 18:03 1101template<typename T> v ... -
散列表(哈希表)
2011-06-09 09:55 1081散列表(hash table):是表示集合和字典的另一种有效方 ... -
跳 表
2011-06-08 11:12 805#ifndef SKIPLIST_H #define S ... -
LinkedSet
2011-06-07 13:08 925改了很久的bug #ifndef LINKEDSET_H ... -
bitset
2011-06-06 12:27 886bitSet.h #ifndef BITSET_H #d ... -
Huffman树
2011-06-02 11:06 917Huffman树,又称最优二叉树,是一类加权路径长度最短的二叉 ... -
堆
2011-06-02 09:19 952在优先级队列的各种实现中,堆是最高效的一种数据结构 关键码: ... -
森 林
2011-06-01 11:09 602森林与二叉树互转,主要是子结点转左子树,兄弟结点转右子树 深 ... -
二叉树的链式实现
2011-05-31 11:24 1265binaryTree.h #ifndef LINKEDBI ... -
二叉树基本概念
2011-05-30 10:05 844一棵二叉树的结点的一个有限集合:该集合或者为空,或者是由一个根 ... -
树基本概念
2011-05-30 09:28 894结点(node):包含数据项及指向其他结点的分支。 结点的度( ... -
广义表
2011-05-27 10:57 936广义表的定义是递归的,因为在表的描述中又用到了表,允许表中有表 ... -
矩阵相关
2011-05-26 10:22 932矩阵:是一个具有m行n列的二维数组。 上三角矩阵:只存储对角 ... -
优先级队列
2011-05-21 11:24 603PQueue.h #ifndef PQUEUE_H #d ... -
链式队列
2011-05-20 12:05 829LinkedQueue.h #ifndef LINKEDQ ...
相关推荐
《Hutool工具包与多音字词典的深度解析》 在信息技术高速发展的今天,高效、便捷的工具包成为了开发者们的得力助手。本文将深入探讨“hutool.jar”工具包及其配套的“多音字词典”资源文件,帮助读者了解这两个组件...
《Kindle古汉语常用字词典》是一款专为学习古汉语设计的电子词典资源,适用于Kindle阅读设备或其对应的阅读应用。该词典包含了简体与繁体两种字体形式,旨在帮助用户理解和掌握古汉语中的常见词汇和用法。 在古汉语...
然而,在赵静的研究文章《从“异”字看三种甲骨文字词典存在的释义问题》中,揭示了现行甲骨文字词典在释义方面存在的问题,并以“异”字为例,详细分析了这些问题所在。 首先,赵静指出当前词典在引用词例的准确性...
为了让日语学习者能够更加便捷地获取语言资源,金山词霸推出了针对日语的电子词典——金山词霸2009日文字典。这款电子词典软件在2009年发布,它结合了强大的词库和便捷的操作方式,旨在为不同水平的日语学习者提供全...
晴窗文字典包”中,我们关注的是针对Unity 3D 4.0版本的一个特定汉化工具——晴窗文字典包。这个汉化包主要目标是为开发环境提供中文界面,以方便中国开发者更好地理解和使用Unity的各类功能。 Unity 3D 4.0是该...
《自开发的网络小字典程序》是一款个人学习成果展示的应用程序,旨在帮助用户整合并搜索网络上的资源。本文将详细介绍这款程序的核心功能、技术实现以及如何利用它进行有效查询。 首先,我们要理解网络小字典的核心...
《五笔字典 丁丁小字典》是一款专为学习和使用五笔输入法的用户设计的实用工具。这款软件提供了丰富的五笔编码查询功能,帮助用户快速掌握和使用五笔码,提高汉字录入效率。 五笔字典是基于五笔字型编码的查询系统...
提出了一种无理数字典码的测试数据压缩方案,能有效地压缩芯片测试数据。方案利用无理数序列建立字典,编码时只需进行相容性检查,无需填充无关位,简化了操作步骤;同时,选择局部压缩率最大的一组数据作为最终编码...
统计数字次数字典法.py
某个数据集上的准确率 = 该数据集中所有标注正确的多音字数 / 数据集中含有的多音字总数 4.10更新 之前的准确率计算有些问题,将和也算作多音字了,改正之后准确率变为85% - 88%。 我们试着增加了LSTM的层数,...
可用于查询东巴文字,喜欢少数民族文字研究的童鞋可以看看。
英语数字应用词典
《pinyin4j:解决中文多音字问题的利器》 在中文处理中,多音字是一个常见的挑战。多音字是指一个汉字有多个读音,根据不同的语境和组合,其发音会有所不同。例如,“长”既可以读作“cháng”,也可以读作“zhǎng...
生成全四位数字组合的字典0000-9999
自制8位纯数字字典,解压后大小953 MB。
近期做中文处理时,涉及到多音字的读音问题,于是参考《新华字典》整理出这份多音字大全。
Java中的多音字转拼音是一项常见的任务,尤其是在处理中文文本时。多音字是指一个汉字有多个读音,根据不同的语境和组合可以有不同的发音。例如,“还”字就有“hái”和“huán”两种读音。在自然语言处理、语音...
1-6位纯数字字典,亲手导出,已验证,解压大小9M左右。
6位数字字典 破解使用 破解使用 破解使用破解使用破解使用破解使用破解使用破解使用