数据结构
方_小_白
求其上者得其中;求其中者得其下;求其下者无所得。越努力,越幸运。
展开
-
跳表
前言文中附代码实现. 电梯直达在公众号回复 【跳表】 也可以获取哦。什么是跳表跳表是一种数据结构。它允许快速查询一个有序连续元素的数据链表。跳跃列表的平均查找和插入时间复杂度都是O(log n),优于普通队列的O(n)。 from. 维基百科引题线性表这种数据有两种具体实现, 数组和链表。具体的内容之前的文章里也有说过,可以翻翻看哇~。在这里两种数据结构中,数组的优点是查找速度快,而链表的优点是增删的效率高,这也是我们常说的。其实,非也。数组是一种内存连续的数据结构,其优点是可以通过首原创 2020-06-07 13:17:45 · 273 阅读 · 0 评论 -
红黑树
问题 什么是红黑树? 红黑树怎么自平衡? 什么时候左旋和右旋? 插入或删除操作破坏了熟的平衡该怎么处理?特征红黑树是自平衡的二叉查找树. 除了具备二叉查找树的特征之外,还具有以下特征:性质1: 节点要么是红色要么是黑色性质2: 根节点是黑色性质3: 每个叶子的节点都是黑色的空节点性质4: 每个红色节点的两个子节点都是黑色性质5: 从任意节点到其每个叶子的所有路径都包含相同的黑色节点根据性质5 ==> 如果一个节点存在黑色子节点,那么该节点肯定有两个节点正是红黑树的五条原创 2020-06-07 12:51:12 · 119 阅读 · 0 评论 -
数据结构之跳表
文章目录前言什么是跳表引题跳表跳表的实现代码实现时间复杂度的分析空间复杂度的分析比较跳表 与平衡树、哈希表的比较解释如下:`Redis`中作者选择SkipList的原因:总结推荐最后前言文中附代码实现. 在公众号回复 【跳表】 也可以获取哦。什么是跳表跳表是一种数据结构。它允许快速查询一个有序连续元素的数据链表。跳跃列表的平均查找和插入时间复杂度都是O(log n),优于普通队列的O(n...原创 2020-01-05 18:16:45 · 601 阅读 · 0 评论 -
数据结构五之B+树
你看,像这个B树,B+树,数据库索引,这些基础,你在大学里都学过吧。。。。。。放屁,大学里哪学过这些。------------你知道我是在讽刺我的大学吗?不过,我仍然对我的母校,爱的痴狂。B+树B+树是在B树的基础上,专为文件系统和数据库而出现的一种数据结构。首先说一下B+树的定义。对于一个m阶的B+树有如下定义:1.根节点只有一个,根节点最多有m个子树,最少有2个子树。([2,m])2.除根节点...原创 2018-03-20 21:12:01 · 604 阅读 · 0 评论 -
数据结构之三 红黑树
几天之前学习了一下红黑树。今天总结一下。红黑树,是一种特殊的二叉排序树。她能确保任何一个节点的左右子树的高度不会超过二者中较低的那个的一倍。要学习红黑树,首先温习一下平衡二叉树的左旋和右旋。我还是从其他地方copy 图片。(源地址:https://blog.csdn.net/sun_tttt/article/details/65445754)旋转的思路:首先确定以谁为基准,怎么旋转。左旋:以E基准...原创 2018-03-23 20:50:51 · 178 阅读 · 0 评论 -
数据结构之树之二叉树,平衡二叉树,B树
2018年第一篇博客,不知道怎么写开头。树常用来表示层级结构。算了还是直接一点吧。二叉树1.二叉树的每个节点最多有两个子树(度最大为2,不存在度大于2的节点)。2.二叉树的子树有左右之分,不能互相颠倒。最重要的就是二叉树的性质:1.非空二叉树,第i层的节点总数不超过2^i-1,i>=1;2.深度为h的二叉树最多有2^h-1个节点,最...原创 2018-03-15 20:54:37 · 331 阅读 · 0 评论 -
字符串的基本操作,c语言实现
话不多说,直接上代码。如果有什么错误,直接喷!#include <stdio.h>#include <stdlib.h>#define LEN 100#define LENINC 10int main(){ char string[LEN] ; char string1[] = {"asdfghjkl"}; char stri...原创 2016-01-09 10:49:48 · 2726 阅读 · 3 评论 -
利用栈实现进制转换1,常用进制转换成十进制
根据栈的特性,FILO,很方便的就可以实现进制转换。 关于栈的一系列操作,在此不再做任何赘述。我这里只是介绍一下压栈(psuhStack),和弹栈(popStack): 1.压栈:就是把元素一个一个的压入栈中。例如:八进制的数值 12345670 进栈的时候,1先进,2再进……..0最后才进。 2.弹栈:就在把栈中的元素一个一个的取出来。例如:栈中存储了八进制数值12345670,0先原创 2015-11-14 15:53:08 · 659 阅读 · 0 评论 -
二叉排序树
#include <stdio.h>#include <string.h>#include <stdlib.h>typedef struct binary_sort_Tree{ int data; struct binary_sort_Tree *left,*right;}BSTNode;BSTNode *insertBST(B...原创 2015-11-16 13:58:57 · 291 阅读 · 0 评论 -
KMP算法
#include <stdio.h>int main(){ char str_fat[] = "asdfghjkl"; char str_son[] = "jkl"; int temp = KMP_function(str_fat,str_son,0); printf("\ntemp = %d\n",temp); return 0;}...原创 2015-11-14 16:09:24 · 273 阅读 · 2 评论 -
顺序表的实现
#include #include #define LISTSIZE 100#define LISTINC 10#define LEN sizeof(SqList)typedef struct sequenceList{ int *elem; int size; int len;}SqList;int main(){原创 2015-11-14 16:05:17 · 277 阅读 · 0 评论 -
链表的基本操作的实现---- 增删改查
/*** 编写:中医熊猫* 时间:20150801* 初次编写,还望指教*/#include <malloc.h>#include <stdio.h>#define LEN sizeof(struct STU)int n = 0;struct STU{ int num; struct STU *next;};/...原创 2015-09-15 21:17:13 · 414 阅读 · 0 评论 -
关于链表的基本操作
/*** 编写:中医熊猫* 时间:20150801* 初次编写,还望指教*/#include #include #define LEN sizeof(struct STU)int n = 0;struct STU{ int num; struct STU *next;};/**************创建链表**原创 2015-09-15 21:13:04 · 362 阅读 · 0 评论