- 博客(11)
- 收藏
- 关注
原创 二叉查找树--C语言
二叉查找树要求,在树中的任意一个节点,其【左子树】中的每个节点的值,都要【小于】这个节点的值,而【右子树】节点的值都【大于】这个节点的值。1. 头文件1.1 include1.2 定义树是否为空1.3 树的数据结构1.4 节点结构体1.5 树结构体#include<stdio.h>#include<string.h>#include<stdlib.h>/*树是否为空*/#define bstree_is_empty(tree)(tr.
2021-11-10 14:49:06
3070
原创 队列 -- 链表 -- C语言
队列有一些特殊的队列:循环队列、阻塞队列、并发队列,基本都用数组实现....这篇是链表队列用于什么地方呢?大家都知道,CPU 资源是有限的,过多的线程反而会导致 CPU 频繁切换,处理性能下降。所以,线程池的大小一般都是综合考虑要处理任务的特点和硬件环境,来事先设置的。当我们向固定大小的线程池中请求一个线程时,如果线程池中没有空闲资源了,这个时候线程池是拒绝请求还是排队请求?各种处理策略又是怎么实现的呢?都会用到队列个人理解的线程,就是你的要求,你打开QQ,微信,浏览器等等这些相当于给CPU
2021-11-05 21:21:25
413
原创 链表栈 --- C语言(为什么使用栈)
栈是一种受操作限制(后进先出)的数据结构,链表、数组在功能上可以替代栈,比栈还灵活为什么要使用栈呢?首先,特定的数据结构是对特定场景的抽象,而且,数组或链表暴露了太多的操作接口,操作上的确灵活自由,但使用时就比较不可控,自然也就更容易出错。当某个数据集合只涉及在一端插入和删除数据,并且满足后进先出、先进后出的特性,这时我们就应该首选“栈”这种数据结构。比如,浏览器的前进、后退功能,递归同样可以思考其他数据结构的用途,在那个地方发挥它的作用,为什么被创建目录1.头文件2.结构体
2021-11-05 15:15:52
801
原创 二叉树的实现-C语言
创建 | 销毁 | 遍历 | 树的高度 | 叶子节点数 | 打印叶子节点目录在创建二叉树中,用到了双指针(**),用单指针也可以(*);//创建二叉树void binarytree_create(Tree* root) { int a = 0; printf("输入接节点数值 (当输入100,当前节点创建完成)\n"); scanf("%d", &a); if (a == 100) { root = NULL; } else { root = (Tnode*)
2021-10-28 18:24:42
82
原创 反转链表--C语言
#include<stdio.h>typedef struct stlistNode{ int val; struct stlistNode* next;}listNode;/*反转链表*/listNode* reverseList(listNode* head){ listNode* prev = NULL; listNode* next = NULL; while (head != NULL) { next = head->next; he...
2021-10-24 22:28:58
1691
原创 循环双链表--LRU
LRU :最近最少使用,缓存淘汰法#include<stdio.h>#include<stdbool.h>#include<stdlib.h>#include<string.h>//链表中的每一个结点typedef struct DoubleNode { struct DoubleNode* prve; struct DoubleNode* next; int data;}DNode;//定义链表总体typedef struct L
2021-10-14 21:25:56
106
原创 循环链表--模拟约瑟夫环
约瑟夫(joseph):编号为1,2,。。。,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。试设计一个程序显示出列顺序。〖基本要求〗:利用单向循环链表存储结构模拟此过程,按照出列的顺序打印出各人的编号。〖测试数据〗:m的初值为20,密码:3,1,7,2,4,8,6目录
2021-10-12 19:49:59
747
3
原创 数据结构--C语言 单链表(细细细)
1.头文件#include<stdio.h> #include<stdlib.h> //针对 malloc and free 的函数#include <stdbool.h> //针对与true and false 的头文件2.声明有很对不同的写法,这里为大家提供了【两种】作为参考,这里来解释以下:1.定义结构体,由于链表结点是由两部分组成,参数(data)以及指针(node),/..
2021-10-12 00:00:53
310
原创 数据结构与算法入门前必读
目录#数据结构与算法##数据结构与算法为什么放到一起##数据结构与算法的核心--复杂度分析##10个数据结构&&10个算法##目的##学习技巧##感悟##附加餐#数据结构与算法1.数据结构:一组数据的存储方式;2.算法:操作数据的一组方发;3.数据结构与算法是解决如何更省、更快地存储和处理数据的问题##数据结构与算法为什么放到一起数据结构是静态的,他是组织数据的一种方式。如果不在他的基础上...
2021-10-05 13:33:04
357
原创 Markdown 教程
目录##为什么使用Markdown##编辑器##相关书籍##标题##字体###斜体###粗体##线###分割线###删除线###下划线##脚注##列表###有序列表###无序列表###列表嵌套##区块##代码###使用方法##链接###使用方法##图片##表格##高级技巧###转义###画流程图、时序图(顺序图)、甘特图##为什么使用Mar...
2021-10-05 13:19:23
106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人