![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
hnujunjie
这个作者很懒,什么都没留下…
展开
-
红黑树的删除操作
红黑树定义: 1. 红黑树的节点不是黑色的就是红色的2. 红黑树的根节点一定是黑色的3. 红黑树的所有叶子节点都是黑色的(注意:红黑树的叶子节点指Nil节点)4. 红黑树任何路径上不允许出现相邻两个红色节点5. 从红黑树的任一节点开始向下到任意叶子节点所经过的黑色节点数目相同删除一个新的节点有以下四种情况:1. 删除的节点是叶子节点(非Nil)2. 删除的节点只有左子树3. 删除的节点只有右子树*4. 删除的节点同时拥有左子树和右子树其实只有上面前三种情况,对于第四种 情况,可以找原创 2020-05-28 19:19:45 · 554 阅读 · 0 评论 -
AVL树
#include <stdio.h>#include <stdlib.h>typedef struct ND {struct ND * leftchd;struct ND * rightchd;int height;int data;} node;typedef struct QUE {struct ND * cur;struct QUE * next...原创 2020-03-20 19:34:13 · 117 阅读 · 0 评论 -
BST 二叉搜索树
#include <stdio.h>#include <stdlib.h>#define NUM 16typedef struct ND {struct ND * leftchd;struct ND * rightchd;struct ND * next;int height;int data;} node;typedef node * nodep;...原创 2020-03-19 14:59:07 · 69 阅读 · 0 评论 -
goal
研发类:热爱编程,基础扎实,掌握java等主流编程语言,熟悉常用算法及数据结构;扎实的软件知识结构,掌握软件工程,设计模式,数据库系统等专业知识;了解分布式系统设计与开发,系统容灾,高可用系统。...原创 2020-03-01 16:35:27 · 173 阅读 · 0 评论 -
关键路径算法 ---- C语言
#include<stdio.h>#include<string.h>#define MAX 100#define infinite 100typedef struct graph {int vn;int cost[MAX][MAX];char vertex[MAX];char topo[MAX];int indge[MAX];int ve[MAX];...原创 2020-02-19 15:21:33 · 775 阅读 · 0 评论 -
floyd算法 ---- C语言
#include<stdio.h>#define MAX 100typedef struct graph {int vn;char vertex[MAX];int edge[MAX][MAX];int cost[MAX][MAX];int route[MAX][MAX];} GH;void floyd(GH *gh);void putpath(GH * gh,in...原创 2020-02-18 15:19:33 · 277 阅读 · 0 评论 -
kmp算法 ---- C语言
#include<stdio.h>#include<string.h>#define MAX 100void kmp(char source[MAX],char pattern[MAX],int next[MAX]);void getnext(char pattern[MAX],int next[MAX]);int searchnext(char pattern[...原创 2020-02-16 19:26:09 · 259 阅读 · 0 评论 -
贝尔曼福特算法 ---- C语言实现
#include<stdio.h>#include<string.h>#define MAX 100typedef struct graph {int vn;char vertex[MAX];int cost[MAX][MAX];int edge[MAX][MAX];char route[MAX][MAX];} GH;int upde = 1;in...原创 2020-02-11 23:13:12 · 881 阅读 · 0 评论 -
迪杰斯特拉算法 -- C语言实现
#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAX 100typedef struct dj {int vn;char vertex[MAX];int edge[MAX][MAX];int cost[MAX][MAX];char route[MAX][MAX];}...原创 2020-02-07 19:05:38 · 1307 阅读 · 0 评论 -
广度优先搜索 ---- C语言递归版
#include<stdio.h>#include<stdlib.h>#define MAX 100//图结构typedef struct dj {int vn;char vertex[MAX];int edge[MAX][MAX];} DJ;//图顶点typedef struct node {char vertex;struct node * ne...原创 2020-02-03 09:59:39 · 1637 阅读 · 0 评论 -
HashMap的indexFor方法
在阅读hashmap源码的时候,遇到了下面的代码://其作用是获取hashmap中某个hash值的下标static int indexFor(int h, int length) { // assert Integer.bitCount(length) == 1 : "length must be a non-zero power of 2"; return h & (...原创 2020-01-15 11:05:25 · 456 阅读 · 0 评论 -
深度优先搜索 — C语言版
思路:找一个入口结点,然后搜索该结点的第一个相邻结点,再搜索该相邻结点的第一个相邻结点,依次往下寻找 … … ,直到所有结点都被遍历到,算法结束,退出。#include<stdio.h>#define MAX 100typedef struct Graph{int vn;char vt[MAX];int edge[MAX][MAX];}df;int size = 1;...原创 2020-01-12 14:10:27 · 732 阅读 · 0 评论 -
广度优先搜索 — C语言非递归版
思路:依次遍历每一个结点,把该结点加入队列,同时把该结点未被遍历的相邻结点也加入队列中,就这样一直搜索,直到再也无法找到未被遍历的结点,算法结束,退出。#include<stdio.h>#include<stdlib.h>#define MAXNUM 100typedef struct DAG {char vt [MAXNUM];int vertex[MAXNU...原创 2020-01-12 00:21:00 · 773 阅读 · 0 评论 -
二叉树的顺序存储、先序构造、先序遍历、先序销毁
#include<stdio.h>#include<stdlib.h>typedef struct BT {int data;struct BT * leftchild;struct BT * rightchild;} tree;void create(int bt[],tree *root,int i,int length);void traval(int...原创 2020-01-01 16:03:07 · 375 阅读 · 0 评论 -
中缀表达式转前缀表达式
中缀表达式转化成前缀表达式和转化成后缀表达式很像,步骤中有几点不同:1.从右往左扫描表达式,中间步骤与转化成后缀表达式相同;2.把最后的输出缓冲区的字符串倒序输出即可;参考:中缀表达式转后缀表达式 https://blog.csdn.net/hnujunjie/article/details/92233578...原创 2019-12-24 19:59:46 · 234 阅读 · 0 评论 -
C语言实现简单单链表
这是使用C语言实现的单链表,不是很健全,但是足以表达原理了。本人水平有限,愿大家在阅读的同时,多给出建议,指出不足之处,谢谢!#include<stdio.h>#include<stdlib.h>typedef struct ListItem{ int a; struct ListItem * next;}Ls;int main(){Ls ...原创 2019-10-18 22:28:08 · 237 阅读 · 0 评论