- 博客(7)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 数据结构——大顶堆(C语言实现)
前情提要:看本文需要能够熟练使用指针,否则你会看的一头雾水废话不多说,直接看我制作的图片,我在图片中写了详细步骤#include<stdio.h>#define MAX 20struct Heap//堆结构体{ int num;//数组里当前有多少个元素 int capacity;//数组的容量 int* arry;//数组指针};void show(struct Heap* heap);void creat_heap(struct Heap* heap);int g
2020-11-18 22:54:04
1091
原创 数据结构——深度优先搜索(C语言实现)
深度优先搜索使用了栈来存储相邻节点,访问一个顶点,就跳转到该顶点下挂载的节点对应的顶点,将该顶点标记为已读,并且此相邻顶点下的链表压入栈。再访问栈顶元素,遍历其顶点下挂载的链表,是否有未标记的,若有未标记的,则将其顶点下的链表压入栈,否则,将此栈顶元素弹出栈,再继续对栈顶元素进行以上操作。直到栈为空(所有顶点已被访问)下面看一下我画的图,感受一下,看能不能受到一点启发#include<stdio.h>//深度优先搜索//----------------------------------
2020-11-12 17:16:11
2061
4
原创 数据结构——广度优先搜索(C语言实现)
广度优先搜索使用了队列来存储相邻节点,访问一个顶点,就跳转到该顶点下挂载的节点对应的顶点,将该顶点标记为已读,并且此相邻顶点下的链表插入队尾。直到队列为空(所有顶点已被访问)线面看一下我画的图,感受一下,看能不能受到一点启发图(邻接表)的建立我有文章讲,不懂得同学可以先去看看#include<stdio.h>//广度优先搜索//-------------------------------------------------------------------------------
2020-11-12 00:43:34
2210
1
原创 数据结构——邻接表(C语言实现)
以邻接表表示图结构是一种简单易懂的方式,#include<stdio.h>//建立图(邻接表)#define num 20//图中的顶点数量struct Node{ int date; struct Node* next;};struct Head{ char head_ele; int flag; struct Node* next;};struct Map//建立图的结构体{ int vex, edge, tag;//顶点,边,类型(1为有向图,0为无向图)
2020-11-11 23:45:24
2220
1
原创 数据结构——平衡二叉树(AVL树)(C语言实现)
此程序是基于二叉搜索树下的平衡二叉树我觉得大家对于二叉树不平衡时的四种情况,以及要怎么调整为平衡二叉树应该都是明白的,大家最疑惑的应该是运行程序时如何判断平衡因子不平衡。所以我在此着重讲解一下这个问题,此程序借助递归实现的,当插入的数据小于根节点的数据时,递归进入左子树,反之进入右子树,直到某一刻达到递归终止条件时,再往回返,所以可以根据返回来的时候可以根据确定此时处于在左子树还是右子树,再结合未修改之前的平衡因子判断该做出什么调整(注意插入数据后,往回返的时候才修改平衡因子,并且先判断是否做出调整,再修
2020-11-09 18:02:49
522
1
原创 数据结构——十字链表(C语言实现)
十字链表是将邻接表和逆邻接表结合在一起的一种有向图的数据结构十字链表的节点结构体表示的是一个节点到另一个节点的边,并且此由指出节点(from)和指入节点(to)共同使用,因此大大节省了内存。先直观感受一下十字链表的存储方式,观察一下规律接下来看一下我定义的边节点的结构体,两个数据域表示from到to的边,两个指针域其实可以看做将该节点挂去何处,in_pointer就是将该节点挂在to顶点的入度链表中,out_pointer就是将该节点挂在from顶点的出度链表中这是我定义的十字链表结构体,其中
2020-11-09 17:22:26
7241
原创 数据结构——邻接多重表(C语言实现)
小弟最近在学数据结构,昨天自己实现了一下邻接多重表,写之前是有一点小问题的,本来想找一位大佬写的程序参考一下,但是并么有找到令人满意的,所以只能自己独立写了。小弟写这个程序全程只参考了课本中对邻接多重表的一些简单的文字描述,至于代码部分,全是小弟一个人写出来的,无任何参考,写的比较冗余,所以如果有大佬觉得小弟写的太拙劣的话,请嘴下留情,第一次在网上发文。邻接多重表相较于邻接表大大节省了空间(一半),邻接多重表中定义相邻顶点的结构体时表示的并不是一个顶点,而是一条边由node_1到node_2的一条边,并且
2020-11-08 13:33:12
3481
12
求大佬指教c++重载运算符中的问题
2020-01-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人