coding__madman的博客

不积跬步无以至千里---厚积薄发!

二叉树通用树层次遍历、前序遍历、中序遍历、后序遍历栈结构非递归实现

目的:主要是刷二叉树相关的题,把之前的源码拿来用顺便学习复现一遍,锻炼一下编程能力。其中层次遍历用栈实现是自己写的,前、中、后序遍历以前学过的也有好多同志网上有相关博客!过程分析的比较详细,我自己学习方法是画图,举例一个二叉树,然后用笔一步一步推演,寻找其中的 规律,这其中也参考了别人的思考成果。...

2018-12-01 15:59:21

阅读数:27

评论数:0

二叉通用树C语言实现---双亲孩子法

还是国嵌之前数据结构和算法视频里面唐老师的代码,最近刷二叉树的相关题目,整好拿来用用,先贴源代码,顺便复习一下,老师的代码真的很棒!后边借助老师之前的链表以及栈的实现,非递归实现二叉树的前序遍历、中序遍历、后续遍历、以及层次遍历-全部用栈实现。 目标实现如下二叉树,并且打印结果, /举例 /*...

2018-12-01 15:23:31

阅读数:20

评论数:0

单链表系列

题目:输入一个链表的头结点,从尾到头反过来打印出每一个节点的值。(不能改变原有链表的结构) 这里单链表的实现用的是当初学习国嵌数据结构和算法视频里面唐老师实现的源码,老师的代码实现的非常经典。今天复习算是领悟到了! 该链表实现精妙之处:写的链表不受业务结构而限制,在我们用的数据类型发生改变时并...

2018-11-19 17:30:11

阅读数:33

评论数:0

递归深度实战

递归与回溯 1. 递归在程序设计中也常用于需要回溯算法的场合 2. 回溯算法的基本思想:(穷举搜索算法) 1> 从问题的某一种状态出发,搜索可以到达的所有状态 2> 当某个状态到达后,可向前回退,并继续搜索其它可达状态 3> 当所有...

2016-04-06 22:41:13

阅读数:3033

评论数:0

通用树的存储结构

树的存储结构难点:无法直接用数组表示树的逻辑结构 但是却可以设计结构体数组对结点间的关系进行表述 如下图:(用一个表格描述图中的树) 那么问题来了: 1. 树结构需要添加和删除结点,数组存储是否足够灵活? 答:树经常需要动态的插入和删除结点,数组存储肯定不够灵活。 2. 每个结点的子节点可以有...

2016-03-13 20:57:37

阅读数:1624

评论数:0

树的定义

树的定义: 1. 树是一种非线性的数据结构 2. 树是由n(n >= 0)个节点组成的有限集合 如果 n = 0, 称为空树 如果n > 0,则: 1. 有一个特定的称之为根(root)的节点,它只有直接后继,但没有直接前驱 2. 除根以外的其它结点划分为 m (m ≥ 0...

2016-03-13 16:04:46

阅读数:691

评论数:0

二分查找算法递归和非递归实现

自己接触和了解过的查找算法总结起来分为3个吧: 1. 静态查找(主要是二分查找,效率较高) 2. 动态查找(二叉查找树) 3. 哈希表 首先来说二分查找吧! 基本思想: 时间复杂度: 空间复杂度: 代码示例: #include //二分查找非递归实现 int BinSearch1(int A...

2016-03-10 00:44:09

阅读数:6426

评论数:0

归并排序

基本思想:归并排序采用的是经典的分治法思想,基本步骤可以分为两步,一归二并。先说简单的并,就是将两个有序的数列合并成一个有序的序列(这个代码实现和容易),难点在于怎么让二组数据组内数据有序,算法采用递归的思想,将两个小组分成四个小组,继续分直到每个小组内只有一个数据时可以认为每个小组组内数组已经是...

2016-03-06 17:05:20

阅读数:445

评论数:0

希尔排序

基本思想: 时间复杂度:n*log(n) 空间复杂度:O(1) 是否是稳定排序:不是稳定排序 代码示例:

2016-03-06 14:52:42

阅读数:399

评论数:0

快速排序

算法思想:快排是采用的分治思想。一般取第一个元素为基准,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比基准要小,另一部分数据都比基准要大,然后用同样的方法对着两部分数据分别进行快排,快排使用递归思想,直至整个数列变为有序数列。 时间复杂度:n*logn(平均时间复杂度) ...

2016-03-03 11:42:14

阅读数:562

评论数:0

选择排序和插入排序及其优化

选择排序(固定位置,找元素) 基本思想:对于长度为N的无序数列,第一次遍历,将第0个元素和后边所有元素相比较,找出最小的元素,然后和第0个元素交换,第二遍历,将第1个元素和后边所有的元素比较,找出剩下元素中最小的元素,然后和第1个元素交换,重复以上步骤直至最后一次遍历只剩下两个元素的时候,排序完...

2016-03-02 15:51:08

阅读数:772

评论数:0

不修改数组查找数组中任意一个重复的数字

题目:在一个长度为n+1的数组里所有的数字都在1~n的范围内,所以数组中至少有一个数字是重复的,请找出数组中任意一个数字,但不能修改输入的数组。 #include <stdio.h> #include <stdlib.h&...

2018-11-18 23:59:09

阅读数:26

评论数:0

数组中重复的数字03---剑指offer

一本好书,书已看完(作者已提供所有习题编程源码),不多说。现在第二遍准备慢慢刷题来提高编码实践能力。先从简单入手!虽然是一个简单的题目,但是知易行难!(虽然看过书,但是自己实现的时候对数组元素的合法性检查就没有考虑到) 题目:找出数组中重复的数字。 在一个长度为n的数组里的所有的数字都在0~n...

2018-11-18 19:17:38

阅读数:26

评论数:0

安静的周末---有感

  工作几年了,中间很少写博客,但也从未中断过学习,多是和工作有关,手动coding确是生疏了不少,闲来无事,编码练练手,写博客后边要坚持下去。目前计划是先从简单的入门级数据结构和算法入手。通过编码解决一个一个实际题目,数组、字符串、链表、树、图等算法,提高编程能力以及算法和程序设计的思想。算法、...

2018-11-18 18:30:29

阅读数:47

评论数:0

C语言读取配置文件以及128字节对齐.bin配置文件

配置文件: #begin build properties factory=四川九州电子科技股份有限公司 oui=03 product_type=71 stbid=0371419916190000129 hw_version=00000473 sw_version=2016-10-11 17:2...

2016-10-23 21:50:35

阅读数:928

评论数:0

RK平台Android4.4 添加一个新的遥控器支持以及添加特殊按键

瑞芯微平台 SDK:Android4.4 好久没写博客了,最近工作中需要在SDK中添加一个新的遥控器支持,由于自己对java代码比较头大,过程也是一波三折,整个流程其实分析下来并不难,这里做个简单的总结。也算是学习android的一个开端。 1.  遥控器红外键值到linux层的映射   ...

2016-10-23 20:26:26

阅读数:4860

评论数:3

fread函数小笔记

fread函数:从一个文件流中读数据,最多读取count个元素,每个元素size字节,如果调用成功返回实际读取到的元素个数,如果不成功或读到文件末尾返回 0。 函数原型: size_t fread ( void *buffer, size_t size, size_t count, FILE *...

2016-08-26 10:03:26

阅读数:427

评论数:0

一道错过的很基础的笔试题

目前只记得个大概了:一个16位的操作系统 unsigned char a = -4 & 3; a = ? 当初自己写的答案是3,但是真相却不是这样?第一个自己考虑到了隐性强制类型转换,第二个计算机是通过补码的形式来表示数据的,不过当时还是算错了! 原码就是二进制定点表...

2016-07-31 22:46:33

阅读数:524

评论数:0

串口传文件(非终端串口,自己定协议下位机部分C语言实现)

之前项目中有个地方要实现一个功能,就是通过非终端串口传输文件,这里将其作为一个小功能模块,简单的介绍一下自己是如何实现的!SecureCRT超级终端上可以通过lrz等工具通过命令传输文件这个就不介绍,之前的博客也有写过怎么编译移植使用这个工具,这次是自己来编码实现通过非终端调试串口来安全可靠的传输...

2016-07-31 22:26:48

阅读数:2540

评论数:0

SHA1校验算法C语言实现

SHA1 安全哈希算法:对于长度小于2^64位的消息(1M = 1024k,1K = 1024字节,1BYTE = 8bit 可以想象一下2的63次方位可以表示一个多大的数据文件),SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据...

2016-07-31 21:25:58

阅读数:5656

评论数:2

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