数据结构
ZZcppc
这个作者很懒,什么都没留下…
展开
-
数据结构之并查集
并查集 更加详细的介绍参见:并查集介绍 基础知识 Quick-Find算法 #include<stdio.h> #include<stdlib.h> typedef struct UnionSet{ int *color; int n; }UnionSet; UnionSet *init(int n){ UnionSet *u=(UnionSet *)malloc(sizeof(UnionSet)); u->color=(int *)mall原创 2021-01-12 19:32:41 · 111 阅读 · 0 评论 -
数据结构之队列(循环队列)
循环队列的代码演示 由于队列的出队操作是head++,直接向后移动,当队尾达到队列设定的长度时,会出现假溢出的现象(即可能head前面还可以插入),因此可以改为循环队列,而循环队列可能出现真溢出的现象,因此需要扩容操作。 #include<stdio.h> #include<stdlib.h> #include<time.h> typedef struct Queue{ int *data; //队首,和队尾,队列的长度 int head,tai原创 2021-01-09 13:56:45 · 242 阅读 · 0 评论 -
数据结构之链表
#include<stdio.h> #include<stdlib.h> #include<time.h> typedef struct ListNode{ int data; struct ListNode *next; }ListNode; typedef struct List{ ListNode head; //变量,不是指针,方便链表节点的插入和删除,虚拟头节点(没有数据域) int length; //当前链表的长度信息 }原创 2021-01-09 13:29:28 · 95 阅读 · 1 评论 -
数据结构之线性表
#include<stdio.h> #include<stdlib.h> #include<time.h> typedef struct Vector{ int *data; int length,size; }Vec; Vec *init(int n){ Vec *v=(Vec *)malloc(sizeof(Vec)); v->data=(int *)malloc(sizeof(int)*n); v->lengt原创 2021-01-08 23:22:12 · 104 阅读 · 0 评论 -
数据结构之堆(优先队列)
堆和优先队列 堆—尾部插入调整,从最后一层插入,自下向上调整, 堆–头部弹出调整,删除堆顶的元素,将堆尾的元素放到堆顶,维护完全二叉树,然后调整顺序 堆----优先队列 堆排序 将堆顶元素与堆尾元素交换 将此操作看作是堆顶元素的弹出操作 按照头部弹出以后的策略调整堆 #include<stdio.h> #include<time.h> #include<stdlib.h> #define swap(a,b){\ __typeof(a) __temp=a;\原创 2021-01-08 19:39:59 · 158 阅读 · 0 评论