![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
文章平均质量分 73
huangchijun11
本人从事于网站开发,信号与信息处理等相关工作,项目经历有语音信号的处理、智能信息管理监控系统、基于百度地图的车联网信息系统等,本人对技术的研究有一定的兴趣,希望可以在技术上一步一步地慢慢提高,在一个领域做到顶尖。
展开
-
《数据结构和算法》之栈的创建、插入和取出 二进制转换成十进制
一,栈的定义: 1,官方定义:栈是一个后进先出的线性表,它要求只在表尾进行删除和插入操作。 2,通俗来讲,所谓的栈,其实就是一个特殊的线性表(顺序表、链表),但是它在操作上有些特殊的限制和要求: -- 栈的元素必须“后进先出” -- 栈的操作只能在这个线性表的表尾进行。 -原创 2017-03-08 10:33:06 · 462 阅读 · 0 评论 -
《华为机试在线训练》之求int型正整数在内存中存储时1的个数
一,题目要求1,题目描述:输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数2,输入描述:输入一个整数(int类型)3,输出描述:这个数转换成2进制后,输出1的个数4,输入例子:55,输出例子:2二,思路分析 假如输入为5时,只要让5/2=2 ......余1,1,思路一:可以想到的是将输入的整数直接转换为二进制数,然后将二进制数的每一位都原创 2017-03-20 22:27:27 · 758 阅读 · 0 评论 -
《数据结构和算法》之汉诺塔
一,问题描述: 法国数学家爱德华·卢卡斯曾编写过一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天原创 2017-03-11 09:24:38 · 2614 阅读 · 0 评论 -
《数据结构和算法》之八皇后问题
一,问题描述 八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题。该问题是在十九世纪著名的数学家高斯1850年提出的:在8*8格的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后都不能处于同一行、同一列或者同一斜线上,问有多少种摆法。二,问题分析原创 2017-03-11 16:46:54 · 3460 阅读 · 1 评论 -
《华为机试在线训练》之提取不重复的整数
一,题目要求 1,题目描述:输入一个int型整数,按照从右往左的阅读顺序,返回一个不含重复数字的新的整数 2,输入描述:输入一个int型整数 3,输出描述:按照从右到左的阅读顺序,返回一个不含重复数字的新的整数 4,输入例子:8976673 5,输出例子:37689二,思路分析 首先可以认识到这可以利用数组来进行求解,第一反应地可以将int型整数的每一位都赋值给原创 2017-03-21 20:15:37 · 788 阅读 · 0 评论 -
《华为机试在线训练》之去空格后整数求和
一,题目要求1,题目描述:编写一个程序,要求用户输入一串整数和任意数目的空格,这些整数必须位于同一行中,但允许出现在该行中的任何位置。当用户按下键盘上的“Enter”按键时,数据输入结束。程序自动对所有的整数进行求和并打印结果2,输入例子:22 2 2 43,输出例子:30二,思路分析1,C语言实现(1)方法1#include #incl原创 2017-03-21 21:15:58 · 1377 阅读 · 0 评论 -
《数据结构和算法》之字符串BF算法
一,定义: 串是由零个或者多个字符组成的有限序列,又名字符串。一般记为 s=“a1a2a3a4......an”(n>0),串可以是空串,即没有字符,直接由 “”表示,或者可以由希腊字母来表示。 子串和主串,例如“china”是“chinaboy”的子串,反之则倒过来。字符串比较大小要怎么比较呢,这个时候比的就是字符串里每个字符的ASCII码的大小,因为‘F’=原创 2017-03-12 15:49:23 · 2142 阅读 · 0 评论 -
《数据结构和算法》之符号匹配性检测
一,问题描述: 在C语言中有一些符号是成对出现的,括号:(),【】,{},《》,二,问题分析: 可能猛的看到这个题目都不知道要怎么做,但仔细分析之后可以发现可以从以下这个思路来进行解答: 1,从第一个字符开始扫描,当遇见普通字符时忽略,当遇见左符号时压入栈中; 2,当遇见右符号时就从栈中弹出栈顶符号进行匹配,如果匹配成功则原创 2017-03-13 17:59:02 · 4322 阅读 · 1 评论 -
《数据结构和算法》之KMP算法
一,KMP算法 KMP算法,全称就是克努特-莫里斯-普拉特算法,是为了避免大量的重复遍历的情况。原创 2017-03-14 17:41:47 · 845 阅读 · 0 评论 -
《华为机试在线训练》之数字颠倒
一,题目要求: 1,题目描述:输入一个整数,将这个整数以字符串的形式逆序输出,程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001 2,输入描述:输入一个int整数 3,将这个整数以字符串的形式逆序输出 4,输入例子:1516000 5,输出例子:0006151二,题目分析: 1,第一种情况原创 2017-03-10 21:39:13 · 888 阅读 · 0 评论 -
《数据结构和算法》之递归(斐波那契数列)
一,递归 程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一原创 2017-03-10 17:04:25 · 4690 阅读 · 0 评论 -
《数据结构和算法》之队列的顺序存储结构
在上一篇博文中已经介绍了队列的链式存储结构,这里将介绍顺序存储结构一,队列的定义 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)原创 2017-03-10 16:02:01 · 629 阅读 · 0 评论 -
《数据结构和算法》之栈的链式存储结构
在上篇博文中我已经将栈的顺序存储结构简单地介绍了一下,也举了一个进制转换的例子,供大家学习参考。这里将继续进行栈的有关介绍,本篇博文重点对栈的链式存储结构进行分析。一,栈的链式存储结构 栈的链式存储结构简称栈链。栈因为只是栈顶来做插入和删除操作,所以比较好的方法就是将栈顶放在单链表的头部,栈顶指针和单链表的头指针合二为一。原创 2017-03-08 16:27:49 · 844 阅读 · 0 评论 -
《数据结构和算法》之逆波兰表达式
一,波兰表达式的定义 什么是波兰表达式。可能很多人会有一个疑问,这里举个例子说明一下,对于(1-2)*(4+5)这个表达式的结果,我相信很多人就异口同声地说出来肯定是-9,但是对于机器语言是怎样实现的。这个时候机器语言就需要一定的规则和复杂性来解决这个问题。波兰逻辑学家发明了一种不需要括号的后缀表达式,我们通常称之为波兰表达式(RPN)。 对于(1-2)*原创 2017-03-08 19:32:14 · 1043 阅读 · 0 评论 -
魔术师发牌问题
一,问题描述:魔术手中有13张牌,都是黑桃的,第一张牌翻过来是黑桃A,也就是1,因为他正确了,所以放在桌面上,第二张牌我们必须翻出2,但是魔术师会数两张牌,第一张放在牌的最低端,第二张翻出来刚好是2,又把它放在桌面上,接着魔术师会数三张牌,按顺序数,第一张放在牌的最低端,第二张放在牌的最低端,第三张翻开来,刚好是3,放在桌面上,以此类推把所有的牌都数完了,刚好是从1到13,即为1、2、3、4、5、原创 2017-03-05 16:05:40 · 593 阅读 · 0 评论 -
《数据结构和算法》之队列的创建、入列和出列
一,队列的定义 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一原创 2017-03-09 16:10:27 · 4772 阅读 · 1 评论 -
《数据结构和算法》之中缀表达式、后缀表达式转换
一,在上篇博文中讨论了逆波兰表达式的计算问题,在这里讨论一下中缀表达式如何转换为后缀表达式 问题示例:如何将1+(2-3)*4+10/5 转换为后缀表达式 1 2 3 - 4 * + 10 5 / +这样的输出 问题分析: 第一步,首先遇到第一个输入是数字1,数字在后缀表达式中都是直接输出,接着是符号“+”入栈原创 2017-03-09 17:44:01 · 32458 阅读 · 10 评论 -
《华为机试在线训练》之取近似值
一,题目要求: 题目描述:写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后的数值大于等于5,向上取整;小于5,则向下取整。 输入描述:输入一个正浮点数值 输出描述:输出该数值的近似整数值 输入例子:5.5 0.8 输出例子:6 1原创 2017-03-09 17:56:06 · 573 阅读 · 0 评论 -
《数据结构和算法》之图的广度优先遍历
一,广度优先遍历,又称为广度优先搜索,简称BFS。举例说明,在一套房子里找一个钥匙,利用深度优先搜索就是搜索每一个房间,而广度优先搜索,是先看看钥匙有没有放在各个房间的明显位置,如果没有,再看看各个房间的抽屉有没有,这样逐步扩大查找的范围的方式我们称之为广度优先搜索。原创 2017-03-20 09:06:45 · 964 阅读 · 0 评论 -
《数据结构和算法》之最小生成树
一,最小生成树 图1 搭建网络图原创 2017-03-20 13:10:44 · 806 阅读 · 0 评论 -
《数据结构和算法》之二叉树
一,二叉树 在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对原创 2017-03-15 14:34:53 · 682 阅读 · 0 评论