数据结构
文章平均质量分 82
TT在长大
Stay hungry, Stay foolish.
展开
-
[C/C++]详解STL容器9-基于红黑树模拟实现map和set
本文基于红黑树模拟实现map和set,首先对之前模拟实现的红黑树做了一些改造,之后对map和set做了模拟实现。原创 2021-12-05 20:04:01 · 13659 阅读 · 4 评论 -
[C/C++]详解STL容器8-map、multimap、set、multiset的介绍和使用
本文介绍了map、multimap、set、multiset以及使用方法。原创 2021-12-02 22:02:24 · 4520 阅读 · 6 评论 -
[C/C++]详解STL容器7--红黑树的介绍及部分模拟实现
本文对红黑树进行了介绍,并对其核心功能进行了模拟实现。红黑树(Red Black Tree),是在计算机科学中用到的一种数据结构,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。原创 2021-12-01 17:36:50 · 7490 阅读 · 0 评论 -
[C/C++]详解STL容器6--AVL树的介绍及部分模拟实现
本文对AVL树进行了介绍,并对其核心功能进行了模拟实现。二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发明了一种解决上述问题的方法:当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之差的绝对值不超过1(需要对树中的结点进行调整),即可降低树的高度,从而减少平均搜索长度。原创 2021-11-22 00:32:20 · 12637 阅读 · 1 评论 -
[C/C++]详解STL容器5--二叉搜索树的介绍及模拟实现
本文对二叉搜索树进行介绍,并对其核心功能进行了模拟实现。原创 2021-11-18 22:59:53 · 4297 阅读 · 7 评论 -
[数据结构]八大排序算法(C语言)
概述排序:给定一个元素序列,按照每个元素的关键码将元素重新排列,使关键码从小到大(正序)或从大到小(逆序)排列。排序可根据是否将全部元素放入内存分为内部排序和外部排序。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[原创 2021-06-13 19:05:48 · 19910 阅读 · 23 评论 -
[数据结构]栈和队列的几个简单OJ(括号匹配问题,用队列实现栈,用栈实现队列,设计循环队列)
本文主要是几个OJ题的思路和代码(C实现)包括:括号匹配问题,用队列实现栈,用栈实现队列,设计循环队列1.括号匹配问题 题目:给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。 思路:在栈中存放左括号,遇到右括号,则出栈顶元素,判断栈顶元素是否和当前括号匹配,如果不匹配,则说明不匹配。遍历完所有字符,如果栈为空,则表示完全匹配。 源码:(包括了栈的...原创 2021-04-22 17:10:54 · 2136 阅读 · 1 评论 -
[数据结构]C语言对顺序表的接口实现(增删查改)
线性表是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构。顺序表则是线性表的一种,是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般可以分为: 1. 静态顺序表:使用定长数组存储。#define N 100typedef struct SeqList{ SLDataType array[N]; // 定长数组 size_t size; // 有效数据的个...原创 2021-03-31 17:13:22 · 21315 阅读 · 0 评论