C语言
C语言学习经典题目
Mr_GouDan
这个作者很懒,什么都没留下…
展开
-
08 数据结构与算法之并查集(C语言实现)
8 森林与并查集并查集是用来解决联通问题的结构森林是并查集的别名,他俩指代的是同一种结构8.1 Introduce8.1.1 Quick-Find算法1、基于染色的思想,一开始所有点的颜色不同2、连接两个点的操作,可以看成将一种颜色的点染成另一种颜色3、如果两个点颜色一样,证明联通,否则不联通4、这种方法叫做并查集的:Quick-Find算法】合并操作流程:合并操作要遍历所有元素时间复杂度O(n)1、4与3连通:用3号点颜色标记4号点颜色(也可用4号标记3号,规则自定)原创 2022-05-23 23:15:00 · 275 阅读 · 0 评论 -
07 数据结构与算法之堆与优先级队列(C语言实现)
注:只给出C语言实现代码,涉及到的数据结构相关概念请自行阅读相关书籍或参考其他博文;简介堆与优先级队列的形式大概如下:堆是一种特殊的完全二叉树结构插入的时间复杂度O(logN), 整个堆的调整时间复杂度为O(NlogN)①优先级队列//可以用二叉树或用顺序结构(队列)实现#include <stdio.h>#include <stdlib.h>#include <time.h>#define swap(a,b){\ __typeof(a) .原创 2022-05-23 22:45:00 · 279 阅读 · 0 评论 -
06 数据结构与算法之哈希表(拉链法) (C语言实现)
注:只给出C语言实现代码,涉及到的数据结构相关概念请自行阅读相关书籍或参考其他博文;将哈希表理解为一个顺序表,顺序表里面存储的是一个链表(拉链法解决碰撞)注:(hash & 0x7FFFFFFF)的作用:让hash值一直保持为正。Because -1 % 10 == -1 which you certainly don’t want for indexing into an array. Forcing the sign bit to 0 avoids this problem.0.原创 2022-05-23 22:15:00 · 1323 阅读 · 0 评论 -
05 数据结构与算法之二叉排序树(建树 广义表 前中后序)(C语言实现)
注:只给出C语言实现代码,涉及到的数据结构相关概念请自行阅读相关书籍或参考其他博文;本文代码功能:给定整数建立二叉排序树,以广义表形式打印建树过程。建树完成后输出前中后序版。额外增加调试版帮助理解递归插入过程。①版本1(建树,广义表打印,前中后序)#include <stdio.h>#include <stdlib.h>#include <time.h>/*建立一个排序二叉树(二叉查找树)*以广义表形式打印树结构*/typedef struct.原创 2022-05-20 22:00:00 · 270 阅读 · 0 评论 -
04 数据结构与算法之栈(C语言实现)
①版本1(数据采用顺序表存储方法):#include <stdio.h>#include <stdlib.h>#include <time.h>typedef struct Stack { int *data; //连续存储空间的首地址 int top, capacity; //top栈顶位置, capacity栈容量} Stack;Stack *init_stack(int n) { Stack *s = (Stack *)mal原创 2022-05-19 22:15:00 · 194 阅读 · 0 评论 -
03 数据结构与算法之队列(C语言实现)
①版本1(数据采用顺序表存储方法):实现顺序存储版队列,即容量大小固定,包含入队、出队、查询队头元素等操作。#include <stdio.h>#include <stdlib.h>#include <time.h>/**** * [81, 78, 68, 45, 4 ] * | | * head * * * tail ** * |<------size--->| | * |<原创 2022-05-18 18:15:40 · 299 阅读 · 0 评论 -
02 数据结构与算法之线性表(带自动扩容功能)(C语言实现)
① 存储整型数据的顺序表(基础版)#include <stdio.h>#include <stdlib.h>#include <time.h>typedef struct Vector { int *data; int size, capacity;} Vector;Vector *init_vec(int n) { Vector *vec = (Vector *)malloc(sizeof(Vector)); vec-&g原创 2022-05-12 12:18:18 · 516 阅读 · 0 评论 -
01 数据结构与算法之单向链表(C语言实现)
链表基础概念请参考其他书籍或文章。本文只列出完整测试代码实现链表代码 头指针法(需要特判),采用虚头节点,节省特判操作。插入示例:while (ind--) p = p->next;node->next = p->next;p->next = node;代码执行图解完整代码#include <stdio.h>#include <stdlib.h>#include <time.h>//结构定义typedef struc.原创 2022-05-11 10:03:38 · 242 阅读 · 0 评论 -
pa_offset = offset & ~(sysconf(_SC_PAGE_SIZE) - 1) 详解
发现很多文章都没有把pa_offset = offset & ~(sysconf(_SC_PAGE_SIZE) - 1) 详细计算过程写出来,字节专门计算了一边,附在文末。本例为man mmap中的原样实例程序,加上了一些额外的无关代码及打印输出信息 让总字节数超过一页大小sysconf(_SC_PAGE_SIZE)以方便查看调试信息#include <sys/mman.h>#include <sys/stat.h>#include <fcntl.h>#i原创 2021-05-21 20:21:26 · 885 阅读 · 1 评论