数据结构
时光若止-Dale
己所不欲,勿施于人;在邦无怨,在家无怨。
展开
-
数据结构(十)常用排序算法(插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序)
以下是我学习 常用排序算法 写的代码,及其注释我个人对排序的理解: 其中包括: 插入排序 — 有序放到前面,拿无序中第一个数跟有序中的数比较大小,找到合适位置插入; 希尔排序 — (分组插排、缩小增量排序),当分组的个数为1时就排好了; 选择排序 — 有序放到前面,临时变量记录无序中最小数的下标,将其值与无序中第一个数交换(最小的记录下,比完交换); 堆排序 — 冒泡排序 — 有序放到后面,搬西瓜原理,将无序中最大的往后放(有大的就交换,往后冒泡); 快速排序 — 归并排序 — #includ原创 2020-09-05 16:42:58 · 376 阅读 · 0 评论 -
数据结构(九)排序基础(插入排序、选择排序、冒泡排序)
以下是我学习排序基础写的代码,及其注释我个人对排序的理解: 其中包括: 冒泡排序、选择排序、插入排序. 冒泡 — 有序放到后面,搬西瓜原理,将无序中最大的往后放(有大的就交换) 选择 — 有序放到后面,小本本记录下标位置,最后比较晚往后放(最大的记录下,比完放) 插入 — 有序放到前面,拿无序中的数跟有序中的数比较大小,找到合适位置插入 #include <stdio.h> #incl...原创 2019-04-14 20:26:22 · 255 阅读 · 0 评论 -
数据结构(八)二叉堆 及排序
以下是我学习二叉堆的总结: #include <stdio.h> #include <assert.h> /** * 时间复杂度 O(log(n)) * 空间复杂度 O(1) * int tree[] 和 int size 合起来表示装堆的值的数组 * int rootIdx 表示要调整的结点的下标 */ // 向下调整的代码 void AdjustDown(i...原创 2019-04-13 21:11:56 · 186 阅读 · 0 评论 -
数据结构(七)二叉树 的一些题目(遍历 判断)
以下是我学习二叉树时做的一些题目的总结: #pragma once #include <stdlib.h> #include <stdio.h> #include <string.h> #include <assert.h> typedef struct Node { char value; struct Node *left; struc...原创 2019-04-13 21:09:53 · 473 阅读 · 0 评论 -
数据结构(六)二叉树 的一些题目
以下是我学习二叉树时做的一些题的总结: #pragma once #include <stdlib.h> #include <stdio.h> typedef struct Node { struct Node *left; struct Node *right; char value; } Node; //遍历树(前序,中序,后序) void Preorder(...原创 2019-04-13 21:05:18 · 201 阅读 · 0 评论 -
数据结构(五)二叉树 基本操作
以下是学习二叉树时写的代码: typedef struct Node { int value; struct Node *left; struct Node *right; } Node; // 根 左子树 右子树 void preorderTraversal(Node *root) { // 空树 if (root == NULL) { return; } printf("%...原创 2019-04-02 21:28:37 · 101 阅读 · 0 评论 -
数据结构(四)队列 和 栈
队列.h #include <queue> void Test() { std::queue<int> q; q.push(1); q.push(2); q.push(3); // 1, 2, 3 q.front(); // 1 q.pop(); // 2, 3 q.front(); // 2 q.pop(); // 3 q.size()...原创 2019-04-02 21:25:19 · 153 阅读 · 0 评论 -
数据结构(三)链表的基础以及扩展
以下是我在学习 链表 及其相关接口扩展操作时写的代码: 1.函数定义的 .c 文件 #include "LinkedList.h" #include <stdio.h> #include <stdlib.h> #include <assert.h> //1.初始化 / 销毁 void LListInit(LList *llist) { llist->f...原创 2019-04-02 21:10:31 · 373 阅读 · 0 评论 -
数据结构(二)链表的相关操作
以下是我在学习 链表 及其相关接口操作时写的代码: 1.函数定义的 .c 文件 #include "LinkedList.h" #include <stdio.h> #include <stdlib.h> #include <assert.h> //1.初始化 / 销毁 void LListInit(LList *llist) { llist->fir...原创 2019-03-21 19:08:59 · 171 阅读 · 0 评论 -
数据结构(一)顺序表的相关操作
以下是我在学习 顺序表 及其相关接口操作时写的代码: 1.函数定义的 .c 文件 #include "SequenceList.h" #include <stdio.h> #include <stdlib.h> #include <assert.h> //O(n) //static 修饰函数更改连接属性,从外部链接属性改变为内部链接属性 //1.检查数据插入时...原创 2019-03-18 16:41:09 · 209 阅读 · 0 评论