数据结构
数据结构介绍与实现
rosefunR
每次都多付出一点. 欢迎关注公众号《机器学习与算法之道》
展开
-
双端队列deque
1.介绍双端队列(deque,全名double-ended queue)是一种具有队列和栈性质的抽象数据类型。双端队列中的元素可以从两端弹出,插入和删除操作限定在队列的两边进行。...原创 2019-12-15 22:24:39 · 287 阅读 · 0 评论 -
一文详解二叉搜索树,平衡二叉树,红黑树,B树,B+树(含python代码)
二叉查找树(BST):不平衡平衡二叉树(AVL):旋转耗时由于旋转的耗时,AVL树在删除数据时效率很低;在删除操作较多时,维护平衡所需的代价可能高于其带来的好处,因此AVL实际使用并不广泛。红黑树:树太高B树:为磁盘而生每个节点最多包含 m 个子节点。如果根节点包含子节点,则至少包含 2 个子节点;除根节点外,每个非叶节点至少包含 m/2 个子节点。拥有 k 个子节点的非叶节点将包含 k - 1 条记录。所有叶节点都在同一层中。可以看出,B树的定义,主要是对非叶结点的子节点数量和记录数量原创 2020-10-18 22:24:15 · 589 阅读 · 0 评论 -
C++系列: 常见数据结构与C++实现(9)
1. 线性表顺序表#include <iostream>#include <vector>using namespace std;void print_vector(vector<auto> vec){ for (auto i:vec){ cout << i << " "; } cout << endl...原创 2020-04-21 13:30:23 · 595 阅读 · 0 评论 -
Java系列:常见数据结构(线性表,队列,栈,数组,树等)实现与API介绍(13)
1.数据结构与算法2.数据结构2.1 线性表:Java中,线性表对应着Collection中的List接口,而线性表的顺序存储结构则对应于ArrayList;顺序表:元素在内存的存储是连续的。java定义一个简单的顺序表:public class SeqList { /* 初始空间为10 */ private static final int LIST...原创 2019-12-21 23:04:52 · 365 阅读 · 0 评论 -
数据结构:单链表
1、描述单链表描述:typedef char DataType; //假设结点的数据域类型为字符 typedef struct node{ //结点类型定义 DataType data; //结点的数据域 struct node *next;//结点的指针域 }ListNode; typedef ListNode *LinkList;原创 2018-01-23 17:43:56 · 392 阅读 · 0 评论 -
数据结构:二叉树(完全二叉树,满二叉树)
二叉树的遍历对于二叉树的遍历方式一般分为三种先序、中序、后序三种方式先序遍历若二叉树为空,则不进行任何操作:否则 1、访问根结点。 2、先序方式遍历左子树。 3、先序遍历右子树。中序遍历若二叉树为空,则不进行任何操作:否则1、中序遍历左子树。2、访问根结点。3、中序遍历右子树。后序遍历若二叉树为空,则不进行任何操作:否则 1、后序遍历左子树。 2、后...转载 2019-04-27 10:21:46 · 1705 阅读 · 0 评论 -
Java系列:Java数据结构--Hashtable、HashMap(13)
参考:1 最清晰的hash Table;原创 2019-04-27 14:00:17 · 257 阅读 · 0 评论 -
Java系列:数据结构之数组、链表、堆栈、队列(9)
1. 数组2. 链表3.堆栈后进先出,可以用数组、链表来实现。这里堆栈是数据结构,与堆区、栈区不一样。栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。还有堆排序等数据结构概念。4.队列先进先出。堆、队列...原创 2019-06-30 21:47:25 · 371 阅读 · 0 评论 -
数据结构--堆和堆排序(python,java)
1.堆排序参考:堆排序 cnblog;堆排序 wiki;原创 2019-06-30 21:58:24 · 247 阅读 · 0 评论