![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
小冯同学666
这个作者很懒,什么都没留下…
展开
-
红黑树详细分析
RBT----set和map底层原理结构:1、每个节点非红即黑2、根节点必须为黑3、不允许两个红节点互相为父子关系4、我们认为终端节点(NULL/NIL节点)是黑色的,也称之为黑哨兵5、从树中任意节点向下出发,到其所有可能到达的各个终端节点的各个路径上,黑节点的数目必须是相同的。由于以上5个性质,使得红黑上的路径长度不会有一条路径长度超过其他路径长度的两倍。也使得其添加、删除、查找...原创 2020-05-04 16:33:28 · 193 阅读 · 0 评论 -
数据结构----二叉树梳理
一种一对多的关系树的层数叫做树的高度或深度。路径长度:当前路径下边的个数。度:指当前节点有几个孩子二叉树概念:每个节点最多两个孩子性质:1、假设树的高度为k,总共最多有(2^k)-1个节点2、假设树的高度为k,叶子结点最多有2^(k-1)3、由n0+n1+n2=S,n00+n11+n2*2=S那么n0=n2+1;其中S为总结点个数4、一个具有n个节点的完全二叉树,那么该树的层...原创 2020-04-25 12:20:12 · 147 阅读 · 0 评论 -
栈与队列--用栈实现队列
需要借助两个栈来实现队列原创 2020-04-23 11:44:13 · 118 阅读 · 0 评论 -
队列----链表实现功能函数
Queue(FIFO):先进先出尾添加,头弹出。功能函数:Init()Push()Pop()IsEmpty()用链表实现队列:#include<stdio.h>#include<stdlib.h>typedef struct node{ int value; struct node* pNext;}Myqueue;typedef struct ...原创 2020-04-22 19:00:41 · 114 阅读 · 0 评论 -
栈的实际应用----括号匹配
给定一堆括号,判断左右括号是否匹配。借助栈,左括号进展,遇到有括号,将栈顶元素弹出。若最终栈内无剩余元素,则匹配;若有剩余,则不匹配。该方法缺点当数据量太大时会消耗大量空间。可以用计数法进行改进。计数法:声明count变量,当遇到‘(’,count++;遇到‘)’count–;若count出现小于0情况,则不匹配;若在括号检测结束后,count不为0,则不匹配。...原创 2020-04-22 16:57:45 · 163 阅读 · 0 评论 -
栈的实际应用----四则运算
四则运算:计算机在进行运算过程会先将中缀转成后缀进行计算。中缀表达式:(9+6)*3-8/4后缀表达式:96+3 * 84/-中缀转后缀规则:借助辅助栈,遇到数字或字母,打印;遇到符号,将当前符号与栈顶符号进行优先级比较。如果当前符号优先级高,则直接入栈,如果当前符号优先级较低,则将栈顶元素依次出栈,直到比当前符号优先级低为止,再将当前符号入栈;如果遇到‘(’,无条件入栈;遇到‘)’,则...原创 2020-04-22 16:51:09 · 185 阅读 · 0 评论 -
栈的实际应用-----递归(斐波那契序列)
递归:函数重复调用自身代码段,其中不同的是参数。(参数+结束条件)特点:从哪开始调用最终就回到哪去斐波那契序列:f(1) = 1,f(2) = 1f(n) = f(n-1)+f(n-2)递归方式:#include<stdio.h>#include<stdlib.h>int Fib(int n){ if(n<0) { exit(1); }...原创 2020-04-22 15:54:15 · 168 阅读 · 0 评论 -
栈-----链表头插法实现栈的功能函数
FILO先进后出用链表实现的话要用头插法InitpushpopclearDestoryGetCountGetTopIsEmpty原创 2020-04-22 10:32:51 · 181 阅读 · 0 评论 -
Date Structure数据结构
用于进行数据的存储和运算集合set:OneToOne线性表(一对一)Tree树(一对多)Graph图(多对多)OneToOne:线性表a1作为首元素有且只有一个后继ai作为中间元素有且仅有一个前驱和一个后继an作为表的最后一个元素,有且只有一个直接前驱,没有后继线性表按存储方式分为两种:顺序存储(如数组、栈)和链式存储(如链表)题:一个数组中有n个元素,每个元素的取值在0~n-...原创 2020-04-14 09:52:32 · 429 阅读 · 0 评论