数据结构
文章平均质量分 74
盼阿狸
这个作者很懒,什么都没留下…
展开
-
【C/C++】vector建图
只是一个鶸用来记录学习内容的文章罢了,如果能多少帮到你那真是太好了,发现错误欢迎指正。vector建图是利用vector数组长度可变的特点来建立邻接表以存储图结构。vector建图初始化建图基于vector建图的深搜和广搜初始化vector<int> g[n];//n为顶点数初始化一个一维数组g,g里面的每个元素都是一个vector数组。画在图上大概是这个样子。因为vector数组的长度是可以动态扩容的,所以通常情况下建立稀疏图的时候可以比邻接矩阵节省一些空间,同时相比用数组加原创 2021-03-31 14:17:15 · 2693 阅读 · 0 评论 -
【C/C++】大小顶堆(插入和删除)
只是一个鶸用来记录学习内容的文章罢了,如果能多少帮到你那真是太好了,发现错误欢迎指正。堆总是满足一下特性:1.堆中某个结点的值总是不大于或不小于其父结点的值。2.堆总是一棵完全二叉树。一般用数组描述堆结构并用下标对其进行操作。完全二叉树的数组形式就是将节点按层依次放入数组中。比如下图中的树用数组描述就是这样的由此不难发现:若已知父节点下标x,则左孩子下标为x* 2+1,右孩子下标为x* 2+2。若已知孩子下标为y,则其父节点下标为(y-1)/2。因为下标都是int类型所以右孩子按照此原创 2021-03-24 21:16:02 · 2145 阅读 · 2 评论 -
【C语言】链式栈相关操作及图文讲解
只是一个鶸用来记录学习内容的文章罢了,如果能多少帮到你那真是太好了,发现错误欢迎指正。栈是一种先进后出的数据结构,链式栈顾名思义是链式存储的结构,可以理解为头节点为栈顶元素的链表,顺序栈用数组乱搞就行了主要记录下链式栈,后文统称链式栈为栈。要想实现链式存储需要定义节点结构和栈结构。struct node{ int data; struct node* next;};struct stack{ struct node* top; struct node* bot原创 2021-03-19 22:22:42 · 1243 阅读 · 2 评论 -
【C语言】单链表相关操作
只是一个鶸用来记录学习内容的文章罢了,如果能多少帮到你那真是太好了,发现错误欢迎指正。结构体定义:struct Link_list{ int data; struct Link_list* next;};typedef Link_list* List;将数据封装成节点:数据要想放入链表中必须将数据做成节点,由于很多操作都需要所以单独写成一个函数,这里只拿int类型举例,其他数据类型差别不大List Create_node(int data){ List node原创 2021-03-17 16:52:35 · 2085 阅读 · 10 评论