数据结构
文章平均质量分 70
饼干烧饼
Orz
展开
-
图
DFS,BFS,图的存储,最短路问题,最小生成树问题,二分图问题原创 2024-09-08 00:39:11 · 771 阅读 · 0 评论 -
STL--unordered_set和unordered_map的模拟实现
而如果哈希表允许有m个地址时,其值域必须在0到m-1之间哈希函数计算出来的地址能。原创 2024-08-25 17:08:37 · 888 阅读 · 0 评论 -
STL-set和map部分模拟实现
set和map原创 2024-08-20 23:09:19 · 324 阅读 · 0 评论 -
红黑树
三叉链结构,_data指向值域,_color标记节点的颜色enum Color//init//color默认给_red{}原创 2024-08-20 00:12:19 · 436 阅读 · 0 评论 -
AVL 树
AVL树的增删查实现原创 2024-08-18 14:57:49 · 617 阅读 · 0 评论 -
数学知识--(欧拉函数,快速幂,扩展欧几里得算法)
本文用于记录个人学习,仅供参考。原创 2024-04-06 11:38:41 · 402 阅读 · 0 评论 -
十大经典排序算法
/Stack.h//栈(stack)//数据//容量int top;//栈顶,top初始化为0,则top为最后一个有效数据的下一位下标;top初始化为-1,则为最后一个有效数据下标}Stack;//初始化//销毁//入栈//出栈//调用栈顶//返回个数//判断是否为空栈//Stack.c//初始化assert(ps);//初始开辟容量4个if (ps->arr == NULL)//开辟失败");exit(1);// 初始开辟容量4个。原创 2024-02-04 22:57:32 · 912 阅读 · 0 评论 -
树--二叉树(C语言纯手凹)
二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。特点:1. 每个结点最多有两棵子树,即二叉树不存在度大于2的结点。2. 二叉树的子树有左右之分,其子树的次序不能颠倒。原创 2024-01-29 18:09:27 · 1599 阅读 · 2 评论 -
线性表--队列
队列是只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先 进先出FIFO(First In First Out);入队列:进行插入操作的一端称为队尾;出队列:进行删除操作的一 端称为队头;原创 2024-01-27 20:41:14 · 306 阅读 · 0 评论 -
线性表--栈
栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶;出栈:栈的删除操作叫做出栈。出数据也在栈顶。原创 2024-01-26 23:51:36 · 268 阅读 · 0 评论 -
有关链表的题目
要注意循环条件的前后顺序,&&会进行短路求值,如果写成(fast->next && fast),当链表节点为偶数个时,此时fast == NULL,很明显NULL->next是错误的。思路:创建一个新链表,给定两个指针遍历两条原链表,小的插入。当有剩余的链表时,直接将剩余的全部一起尾插到新链表中,无需一个一个尾插,因为原链表是有序的。思路:创建一个新链表,newhead指向新链表的头节点,newtail指向当前链表的尾节点;注意:会有一个原链表为空的情况,直接返回另一个原链表。原创 2024-01-26 16:54:12 · 385 阅读 · 0 评论 -
基于单链表实现通讯录项目
前面已经介绍过单链表的具体实现,基于单链表,只要修改节点数据类型,修改相应代码就可以实现通讯录的增删查改功能。原创 2024-01-24 23:31:06 · 621 阅读 · 0 评论 -
线性表--链表--带头双向循环链表
在一个节点中,存放着data数据,前驱指针和后继指针,所以是双向的,既可以从前往后遍历,也可以从后往前遍历;头节点充当哨兵位,所以使链表有了一个头,data不存放数据(通常初始化为-1),prev指向链表的最后一个节点,next指向第一个节点,使其整个链表成环,头节点不是第一个节点,当只存在一个头节点时,链表为空链表。原创 2024-01-24 17:48:11 · 727 阅读 · 0 评论 -
线性表--链表--单链表(不带头单向不循环链表)
链表是一种物理存储结构非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的,逻辑结构上呈线性。就如火车车厢之间的关系,可以通过挂钩链接,不用是再断开链接。原创 2024-01-22 16:24:13 · 416 阅读 · 2 评论 -
基于静态顺序表实现通讯录项目
【代码】基于静态顺序表实现通讯录项目。原创 2024-01-21 00:31:42 · 434 阅读 · 0 评论 -
线性表--顺序表
线性表是n个具有相同特性的数据元素的有限序列。线性表是⼀种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串等,在逻辑结构上呈线性,在物理结构(存储)上不一定线性。顺序表是线性表的一种,底层结构是数组,加上增删查改等功能封装在一起形成顺序表,顺序表分成静态顺序表和动态顺序表。原创 2024-01-20 13:13:01 · 397 阅读 · 0 评论 -
基于动态顺序表实现通讯录项目
前面我们是这样定义动态顺序表的,SLDataType是存储数据的类型,那么将这个SLDataType类型替换成自定义的结构体类型,arr不就是结构体数组了吗,进而就形成了通讯录。对于通讯录,我们需要记录一个人的姓名,年龄,电话号码,性别,住址等,显然我们需要定义一个结构体来存储一个人的以上个人信息。由于数据类型不同,需要处理的方式也不同,所以需要对实现顺序表的函数进行调整,进而将顺序表的相关实现套用在通讯录中。上一篇博客介绍了如何实现动态顺序表,而本章将介绍如何实现通讯录。那跟顺序表有什么关系呢?原创 2024-01-20 21:26:50 · 405 阅读 · 0 评论