自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

用途:中英文学习笔记,如有侵权,可评论留言,及时清理;学历:NUS计算机硕士;SYSU地球物理学士

现主持开源项目:Geochemistry Pi (浙江大学),数据挖掘自动化Python框架,长期招聘远程科研实习生,有兴趣的友友可看博客置顶文章

  • 博客(23)
  • 收藏
  • 关注

原创 完全二叉搜索树 | 排序 & 层序遍历(数组实现)| C语言

void solve(int ALeft, int ARight, int TRoot){ // 初始调用为 solve(0, N-1, 0) // ALeft是排序后的输入序列A的左端点数组下标,ARight是右端点数组下标 // TRoot是结果树序列的数组下标 n = ARight - ALeft + 1; if (n==0) return; L = GetLeftLength(n); // 计算出n个结点的树其左子树有多少个结点 T[T...

2021-02-27 11:37:43 295

原创 图的遍历 | 深度优先搜索 & 广度优先搜索 | C语言

图 | 邻接矩阵表示 & 邻接表表示 | C语言// 用邻接表实现深度优先搜索void Visit(Vertex V){ printf("正在访问顶点%d\n", V);}// Visited[]为全局变量,已经初始化为falsevoid DFS(LGraph Graph, Vertex V, void (*Visit)(Vertex)){ // 以V为出发点对领接表存储的图Graph进行DFS搜索 PtrToAdjVNode W; Vi..

2021-02-22 15:48:43 425 1

原创 图 | 邻接矩阵表示 & 邻接表表示 | C语言

一、邻接矩阵#define MaxVerNum 100 // 最大顶点数设为100#define INFINITY 65535 // 正无穷设为双字节无符号整数的最大值65535typedef int Vertex; // 用顶点下标表示顶点,为整型typedef int WeightType; // 边的权值设为整型typedef char DataType; // 顶点存储的数据类型设为字符型// 边的定义typedef struct ENode *PtrTo..

2021-02-22 12:50:37 514

原创 集合 | 并查集(树结构表示,数组存储)| C语言

查找某个元素所在集合(用根结点表示)int Find(SetType S[], ElementType X){ // 在数组S中查找值为X的元素所属的集合 // MaxSize是全局变量,为数组S的最大长度 int i; for (i = 0; i < MaxSize && S[i].Data != X; i++); if (i >= MaxSize) return -1; // 未找到X,返回-1 for (; S[i...

2021-02-20 20:24:37 386

原创 哈夫曼树 | 最小堆实现 |C语言

typedef struct TreeNode *HuffmanTree;struct TreeNode { int Weight; HuffmanTree Left, Right;}HuffmanTree Huffman(MinHeap H){ // 假设H->Size个权值已经存在H->Elements[]->Weight里 int i; HuffmanTree T; BuildMinHeap(H); // 将H->E...

2021-02-19 17:10:20 445

原创 最大堆 | 完全二叉树构建,顺序存储(数组)| C语言

最大堆创建将MaxData换成MinData,同样适用于最小堆;typedef struct HeapStruct *MaxHeap;struct HeapStruct { ElementType *Data; // 存储堆元素的数组 int Size; // 堆的当前元素个数 int Capacity; // 堆的最大容量};MaxHeap Create(int MaxSize){ // 创建容量为M...

2021-02-19 13:23:28 541

原创 单链表的逆转 | C语言

typedef struct lNode *Ptrstruct lNode { int data; Ptr next;};Ptr Reverse(Ptr head, int K){ Ptr new, old; cnt = 1; new = head->next; old = new->next; while (cnt < K) { // 逆转K个节点 tmp = old->next; ...

2021-02-18 16:05:17 192

原创 判别是否是同一棵二叉树 | C语言

第三种判别方法步骤一:搜索树表示步骤二:建搜索树T步骤三:判别一序列是否与搜索树T一致(1)框架搭建int main(){ int N, L, i; Tree T; scanf("%d", &N); while (N) { scanf("%d", &L); T = MakeTree(N); for (i=0; i<L; i++) { if (Judge..

2021-02-18 14:44:55 377

原创 平衡二叉树的调整与插入 | RR & LL & LR & RL | C语言

typedef struct AVLNode *Position;typedef Position AVLTree; // ALV树模型struct AVLNode { ElementType Data; // 结点数据 AVLTree Left; // 指向左子树 AVLTree Right; // 指向右子树 int Height; // 树高};int Max(int a, int b){ return.

2021-02-17 22:08:08 280

原创 二叉搜索树 | 查找 & 插入 & 删除 (链表实现)| C语言

一、查找尾递归,执行效率低Position Find(ElementType X, BinTree BST){ if (!BST) return NULL; // 查找失败 if (X > BST->Data) return Find(X, BST->Right); // 在右子树中继续查找 else if (X < BST->Data) return Find(X, BST->Left); //..

2021-02-17 18:26:55 205 2

原创 二叉树 | 层序遍历(队列实现)| C语言

二叉树表示typedef struct TNode *Position;typedef Position BinTree; // 二叉树类型struct TNode { // 树的定义 ElementType Data; // 结点数据 BinTree Left; // 指向左子树 BinTree Right; // 指向右子树};void LevelorderTraversal(BinTree BT){ Queue Q;

2021-02-17 10:22:32 572 1

原创 二叉树的遍历(先序、中序、后序)| 递归 & 非递归(堆栈实现) | C语言

二叉树表示typedef struct TNode *Position;typedef Position BinTree; // 二叉树类型struct TNode { // 树的定义 ElementType Data; // 结点数据 BinTree Left; // 指向左子树 BinTree Right; // 指向右子树};一、中序遍历void InorderTraversal(BinTree BT){ if (BT

2021-02-17 10:08:05 644 4

原创 队列 | 数组实现 & 链表实现 | C语言

一、数组实现注意:front和rear的初始位置typedef int Position;struct QNode { ElementType *Data; // 存储元素的数组 Position Front, Rear; // 队列的头、尾指针 int MaxSize; // 队列最大容量}typedef struct QNode *Queue;Queue CreateQueue(int MaxSize){ Que...

2021-02-16 14:45:48 157

原创 堆栈 | 数组实现 & 链表实现 | C语言

一、数组实现#include "stacking.h"typedef int Position;typedef struct SNode *Stack;struct SNode { ElementType *Data; // 存储元素的数组 Position Top; // 栈顶指针 int MaxSize; // 堆栈最大容量};Stack CreateStack(int MaxSize){ Stack S = (Sta...

2021-02-16 11:33:37 256

原创 静态查找 | 顺序查找 & 二分查找 | C语言

(1)顺序查找时间复杂度为O(n)O(n)O(n)#include <stdio.h>typedef struct LNode *StaticTable;struct LNode{ ElementType Element[MAXSIZE]; int Length;};int SequentialSearch(StaticTable Tbl, ElementType K){ // 在表Tbl[1]~Tb1[n]中查找关键字为K的数据元素 int i;.

2021-02-08 21:57:36 194

原创 ++i和i++的区别 | C语言

#include <stdio.h>int main(void) { int i, j, k; i = 0; // i++ 是先赋值,再加1 printf("i++=%d\n", i++); printf("i=%d\n", i); j = i++; printf("j=%d\n", j); i = 0; // ++i 是先加1,再赋值 printf("++i=%d\n", ++i); printf("i

2021-02-07 15:21:41 143

原创 联合 | C语言

2021-02-06 21:09:31 114

原创 typedef | C语言

2021-02-06 21:06:34 114

原创 线性表 | 数组实现 & 链表实现 | C语言

一、数组实现(1)初始化(建立空的顺序表)struct LNode L;List PtrL;List MakeEmpty(){ List PtrL; PtrL = (List)malloc(sizeof(struct LNode)); PtrL->Last = -1; return PtrL;}(2)查找int Find(ElementType X, List PtrL){ int i = 0; while ( i <= .

2021-02-06 21:04:22 249

原创 一元多项式实现 | 数组 & 链表 | C语言

方法:一维数组缺点:浪费空间和时间,因为要考虑到非零项之外的项数。方法:结构数组缺点:节省空间

2021-02-06 14:18:25 435

原创 结构 | 结构与函数 | C语言

2021-02-06 13:56:54 116

原创 可变数组的实现 | C语言

实现功能根据指定长度,创建数组检查数组的大小查询数组某一位置的值增大数组释放空间注意点创建结构变量文件main.c#include <stdio.h>#include "array.h"#include <stdlib.h>//typedef struct {// int *array;// int size;//} Array;const BLOCK_SIZE = 20;Array array_create(int

2021-02-04 15:16:49 370

转载 C++ | .h 和 .cpp

在 C++ 中,分别使用.h 和.cpp 来定义一个类。.h 中存放类的声明,函数原型(放在类的声明中)。.cpp 存放函数体。也就是说,一个存放声明(declaration),一个存放定义(definition)。如果我们在一个头文件里声明了一个函数,当我们需要定义这个函数(这个定义是唯一的,也就是只能定义一次),或者需要使用这个函数时,我们在 cpp 中需要 include 这个头文件。同样地,如果我们在一个头文件里声明了一个类,当我们需要定义类里的成员函数,或者我们需要使用这个类时,我们

2021-02-04 10:38:23 1140

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除