欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > 栈、队列、树、哈希表

栈、队列、树、哈希表

2024/10/23 22:29:37 来源:https://blog.csdn.net/2201_75286049/article/details/142205702  浏览:    关键词:栈、队列、树、哈希表

先进后出,添加元素直接memcpy 到对应数组位置就可以,top是栈中存储的元素个数,最后一个元素下标为top-1; 删除元素时直接top--; 后面添加进入的数据会覆盖原来在栈上被删除的数据。

main.c符号匹配

链栈

main.c

队列函数实现

注意判满条件,多出来一个位置用于区别 空和满两种状态,所以开了10个空间只能存储9和结构体数,且所有的位置都是循环移动的,无固定位置。

线程池

读写文件(自己写)

顺序队列完成

标准版、链式队列  

用队列实现树的层序遍历输出

gdb使用

赫夫曼树

大话数据书 --二叉树内有

      

 

哈希表

  哈希表的存储和查找,体现的是一种思想。

哈希表(Hash Table),也称为散列表,是一种数据结构,它提供了快速的数据插入、删除和查找功能。它通过使用哈希函数将键(Key)映射到表中一个位置来访问记录,从而实现高效的数据检索。

以下是哈希表的一些关键特点:

1. **哈希函数**:哈希表使用一个函数(称为哈希函数)来计算数据项的存储位置。这个函数将键通过某种算法转换为表中的一个索引值。

2. **键值对存储**:哈希表存储数据的方式是键值对(Key-Value Pairs),其中键是通过哈希函数进行映射的,而值是存储的数据。

3. **冲突解决**:由于不同的键可能通过哈希函数映射到同一个位置,这种现象称为冲突。哈希表需要一种机制来解决冲突,常见的方法有开放寻址法(Linear Probing、Quadratic Probing、Double Hashing)、链地址法(Separate Chaining)等。

4. **动态扩容**:为了保持操作的效率,哈希表通常在达到一定负载因子(已存储元素数量与哈希表容量的比值)时进行扩容,这涉及到重新计算所有元素的位置并迁移到新的更大的哈希表中。

5. **平均时间复杂度**:理想情况下,哈希表的插入、删除和查找操作的平均时间复杂度为O(1)。但在最坏的情况下,比如所有元素都映射到同一个位置,时间复杂度可能退化到O(n)。

6. **空间效率**:哈希表通常需要预分配一个足够大的内部数组来存储数据,这可能会导致空间的浪费,尤其是在负载因子较低的情况下。

哈希表广泛应用于数据库、缓存系统、字典和许多其他需要快速查找的场景中。
 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com