C语言
-兮
Holly
展开
-
C语言实现栈
代码#include <stdio.h>#include <stdlib.h>//链表的栈typedef struct Node { //链表节点的自定义数据类型 int val; struct Node *next;} Node;typedef struct Stack { Node *head;} Stack;Node *initNode(int val) { //初始化链表节点 Node *n = (Node *)mal.原创 2021-07-27 13:57:07 · 97 阅读 · 0 评论 -
C语言实现队列
代码#include <stdio.h>#include <stdlib.h>//链表队列typedef struct Node { //链表节点的自定义数据类型 int val; struct Node *next;} Node;typedef struct Queue { Node *head, *tail;} Queue;Node *initNode(int val) { //初始化链表节点 Node *n = (Node原创 2021-08-01 20:57:38 · 121 阅读 · 0 评论 -
C语言实现树 前中后序遍历 实现广义表生成树
代码#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct Node { //树的节点 int val; struct Node *left, *right;} Node;typedef struct Tree { Node *root; int len;} Tree;Node *initNode(int val) { Nod原创 2021-08-03 03:24:34 · 399 阅读 · 0 评论 -
c语言实现线索二叉树
代码#include <stdio.h>#include <stdlib.h>#define CHILD 0#define THREAD 1typedef struct Node { //线索二叉树节点 int val; struct Node *left, *right; int ltag, rtag; //区分left,right是孩子还是线索指针} Node;Node *initNode(int val) { Node *n =原创 2021-08-03 04:04:13 · 377 阅读 · 0 评论 -
C语言实现大顶堆
代码#include <stdio.h>#include <stdlib.h>#define swap(a,b) {\ __typeof(a) __tmp=a;\ a=b, b=__tmp;\}typedef struct Heap { //大顶堆 完全二叉树 int *data, size, len; //data线性} Heap;Heap *initHeap(int n) { Heap *h = (Heap *)malloc(si原创 2021-08-04 14:28:21 · 261 阅读 · 0 评论 -
C语言实现排序: 插入排序 冒泡排序 归并排序 选择排序 快速排序
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#define swap(a,b) {\ __typeof(a) __tmp = a;\ a = b, b = __tmp;\}#define TEST(arr,n,func,args...) {\ int *brr = (int *)malloc(sizeof(int) *原创 2021-08-05 01:53:27 · 281 阅读 · 0 评论 -
C语言实现二分查找 及 二分查找特殊情况
#include <stdio.h>int binary_search(int *arr, int n, int x) { int l = 0, r = n - 1, mid; while (l <= r) { mid = (l + r) >> 1; if (arr[mid] == x) return mid; arr[mid] > x ? (r = mid - 1) : (l = mid + 1);原创 2021-08-05 16:50:56 · 242 阅读 · 0 评论 -
C语言 实现hash哈希表构造 插入 查找
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>typedef struct Node { char *str; struct Node *next;} Node;typedef struct HashTable { Node **data; int size;} HashTable;Node *initNod原创 2021-08-06 22:13:13 · 778 阅读 · 0 评论 -
C语言实现判断连通性之并查集 Quick-Find算法 Quick-Union算法 weighted-quickUnion算法 路径压缩算法
题目描述所谓一个朋友圈子,不一定其中的人都互相直接认识。例如:小张的朋友是小李,小李的朋友是小王,那么他们三个人属于一个朋友圈。现在给出一些人的朋友关系,人按照从 1 到 ???? 编号在这中间会进行询问某两个人是否属于一个朋友圈,请你编写程序,实现这个过程。输入第一行输入两个整数 ????,????(1≤????≤10000,3≤????≤100000),分别代表人数和操作数。接下来 ???? 行,每行三个整 ????,????,????(????∈[1,2], 1≤????,????≤?原创 2021-08-07 05:03:00 · 395 阅读 · 0 评论