数据结构
时光若止-Dale
己所不欲,勿施于人;在邦无怨,在家无怨。
展开
-
数据结构(十)常用排序算法(插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序)
以下是我学习 常用排序算法 写的代码,及其注释我个人对排序的理解:其中包括: 插入排序 — 有序放到前面,拿无序中第一个数跟有序中的数比较大小,找到合适位置插入; 希尔排序 — (分组插排、缩小增量排序),当分组的个数为1时就排好了; 选择排序 — 有序放到前面,临时变量记录无序中最小数的下标,将其值与无序中第一个数交换(最小的记录下,比完交换); 堆排序 — 冒泡排序 — 有序放到后面,搬西瓜原理,将无序中最大的往后放(有大的就交换,往后冒泡); 快速排序 — 归并排序 —#includ原创 2020-09-05 16:42:58 · 326 阅读 · 0 评论 -
数据结构(九)排序基础(插入排序、选择排序、冒泡排序)
以下是我学习排序基础写的代码,及其注释我个人对排序的理解:其中包括: 冒泡排序、选择排序、插入排序.冒泡 — 有序放到后面,搬西瓜原理,将无序中最大的往后放(有大的就交换)选择 — 有序放到后面,小本本记录下标位置,最后比较晚往后放(最大的记录下,比完放)插入 — 有序放到前面,拿无序中的数跟有序中的数比较大小,找到合适位置插入#include <stdio.h>#incl...原创 2019-04-14 20:26:22 · 213 阅读 · 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 · 167 阅读 · 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 · 436 阅读 · 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 · 188 阅读 · 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 · 87 阅读 · 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 · 137 阅读 · 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 · 337 阅读 · 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 · 150 阅读 · 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 · 161 阅读 · 0 评论