数据结构
Mysterious superstar
没有什么是不劳而获的
君子藏器于身,待时而动。不鸣则已,鸣则冲天
展开
-
【数据结构】【二叉树】二叉树的前序中序和后序遍历技巧,已知二叉树前序和中序还原二叉树、已知二叉树后序和中序还原二叉树、已知二叉树前序和后序还原二叉树
前序遍历:先遍历二叉树的根再遍历它的左孩子再是右孩子。中序遍历:先遍历二叉树的左孩子再遍历根再遍历右孩子。后序遍历:先遍历二叉树的左孩子再遍历右孩子再遍历根。从种遍历方式上可以分析出的规律有a、前序遍历的根一定是第一个。b、后序遍历的根一定是最后一个。c、已知根根据中序遍历可以得到它的左右子树。先看已知前序后中序遍历还原二叉树:可以看到,通过前序遍历确定根...原创 2019-08-18 17:40:13 · 1497 阅读 · 0 评论 -
【C】循环双向链表的基本操作,头插、头删、尾插、尾删
//double slist.h#pragma once#include<stdio.h>#include<stdlib.h>#include<string.h>typedef int LTDataType;typedef struct ListNode{ LTDataType _data; struct ListNode* _next; ...原创 2019-08-15 17:17:59 · 811 阅读 · 0 评论 -
【数据结构】给出两个非空的链表用来表示两个非负的整数其中它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和
示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807https://leetcode-cn.com/problems/add-two-numbers/#include<stdio.h>#include<stdlib.h>#includ...原创 2019-07-28 22:15:03 · 2119 阅读 · 1 评论 -
关于int、 unsigned int、 char、 short int在内存中的存储
首先我们应该知道:int在win32内存中占四个字节,以%d输出时有符号数则要去除一个符号位,可以表示的数据范围是-2^31~(2^31)-1.在16位中,用高位置1来表示负数,int型占两个字节共16位,32768的二进制是10000000,00000000,高位为1,系统会认为是 负数,所以32768需要用长型表示,占四个字节。最高位就不是1了。unsigned int 也占四个字...原创 2019-05-13 00:08:43 · 2413 阅读 · 1 评论 -
怎么实现归并排序和归并排序的思想,插入排序的思想和实现
最近几天花了一点时间研究了一下八大排序之中的插入排序和归并排序。首先来看插入排序,用一个通俗的打扑克牌的例子来看。就像我们给扑克牌排序一样, 假设从小到大排列,会依次往前比较,然后插入到一个比前面牌大,比后面牌小的位置上,这个位置就是这张新来的牌应该处于的位置。图片来自于https://blog.csdn.net/qq_42453117/article/details/9968...原创 2019-08-23 21:58:40 · 159 阅读 · 0 评论 -
【数据结构】【c进阶】二叉树的非递归形式前序遍历、非递归形式中序遍历、非递归形式后序遍历详解
原创 2019-08-20 17:21:37 · 144 阅读 · 0 评论 -
快速排序之深度理解双指针法和挖坑法
总的来说归并排序和快速排序理解起来是比较难的,比较烧脑,学习过程中很容易产生畏难情绪。在我看来我们不需要一下子就深切的知道它的一切算法细节,这样对于初学者难度是比较大的。就像我们刚学高数当中的拉普拉斯变换和性质一样,初级阶段只需要会用就行。所以我们现阶段不要求说要将快速排序为什么要这样排了解得很清楚,我们只需要知道是这样排的,是这样实现的。一、双指针版快速排序 从小到大...原创 2019-08-24 21:53:53 · 919 阅读 · 0 评论 -
【数据结构】【堆】【c】详解堆的自顶向下算法、和堆的建立。
最近笔者花了几天时间研究了堆,下面做一些分享。首先什么是堆。堆在逻辑上是特殊的完全二叉树,在存储结构上是顺序表。一般用数组实现。堆只分为大堆和小堆所谓大堆是指:在堆中所有的最小二叉树的父亲节点必须比它的叶子节点大。所谓小堆是指:在堆中所有的最小二叉树中父亲节点比它的叶子小。只有这两种特殊的情况下一个数组才能被称为堆。堆的自顶向下算法:现在我们给出一个数组,逻辑上看...原创 2019-08-17 17:41:12 · 2511 阅读 · 0 评论 -
【数据结构】【c】【堆】堆排序算法详解(复杂度、前提、自顶向下算法、应用场景)
堆作为一种特殊的数据结构,它的排序也非常有意思。和冒泡排序、选择排序一样,他们都能求出顺序表的第n大的数据。在这里特殊强调,在堆排序之前先要建立一个堆。(建堆的过程就能保证是大顶堆或者小顶堆,根最大或者最小)堆排序最重要的基础还是自顶向下算法。我们来看它的实现过程。可以看到它的实现方式交换堆顶的元素和最后一个元素,此时最后一个位置作为有序区,然后进行其他无序区的堆调整,重...原创 2019-08-18 09:45:49 · 430 阅读 · 0 评论