自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 栈的应用之括号匹配问题

【题目描述】 如果一个括号序列中的每个左括号都有一个右括号与之完成配对,这个序列就是一个合法的括号匹配序列。 例如: char a[] = "(())abc{[(])}";//左右括号匹配不正确 char b[] = "(()))abc{[]}";//右括号多于左括号 char c[] = "(()()abc{[]}";//左括号多于右括号 char d[] = "(())abc{[]}...

2018-08-25 20:03:46 276

原创 数据结构-----栈基本概念以及基本操作的实现

栈的概念 栈:一种特殊的线性表;其只允许在固定的一端进行插入和删除元素的操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈顶是动态变化的,由一个称为栈顶指针(top)的变量指示。不含任何元素的栈成为空栈,栈又称为后进先出的线性表。 栈特性:后进先出的特殊线性表。 栈功能:将数据从一种序列改变到另一种序列。 栈的顺序存储结构 采用顺序存储结构的...

2018-08-25 16:24:46 398

原创 了解一下,大小端

我们先看一下整形在内存中的存储: int main() { int a = 20; int b = -10; system("pause"); return 0; } a变量在内存中的存储: b变量在内存中的存储: 从内存监视窗口中,我们得到两个信息: 对于a 和b 分别存储的是补码 顺序是倒着存放的 什么是大小端 由图可知...

2018-08-09 23:34:04 241

原创 演示多个字符从两端移动,向中间汇聚

大概思路: 定义两个长的相等的数组,其中一个存储字符,另一个存储#,求出第一个数组的左右下标,运用 while 循环,只要坐下标小于等于右下标,就令数组1的坐下标对应的元素赋值给数组2对应下标的元素,同时右下标执行同样的操作。 代码实现: int main() { char arr1[] = "Welcome to bit"; char arr2[] = "#######...

2018-08-03 17:28:09 212

原创 break 和 continue

在C语言关键字中,break 是用来跳出当前循环的,而 continue 是用来结束当前循环的。它们都可以在 while 和 for 循环中使用,但是却有一点点差异。 While 循环中的 break 和 continue 【break】 代码实例: int main() { int i = 1; while (i <= 10) { ...

2018-08-03 16:39:37 251

原创 详解 static 修饰变量和函数的作用

我们知道,static 关键字的作用是声明静态变量,但是变量有全局的,还有局部的,难道作用都是一样的吗? 答案当然是不一样,究竟有何不同,我们一起来探究一下。 static修饰局部变量 局部变量是出现在局部范围(代码块内部)的变量,它的生命周期只能在定义代码的代码块内部有意义,出代码块就会被销毁。我们来看个例子。 void test() { int a = 1;//无stati...

2018-08-03 15:02:49 1239

原创 C语言关键字

【什么是关键字】 C语言中具有特殊意义的且不允许用作标识符的单词,称为关键字或保留字 通常用于编辑的文本编辑器都会高亮显示这些关键字,共有32个 【分类】 数据类型关键字(12个) 控制语句关键字(12个) 存储类型关键字(4个) 其他关键字(4个) 【数据类型关键字】 int:声明整形变量或函数 char:声明字符型变量或函数 float:声明浮点型变量或函数 do...

2018-08-03 13:19:44 232

原创 父子俩—继承与派生(下)

上一篇中,我们讲了继承与派生之间的一些概念及关系,在这一篇中,我们再研究一些比较深层一点的东西。 派生类默认成员函数

2018-07-07 23:42:59 220

原创 父子俩—继承与派生(上)

举一反三 前面介绍了类,一个类中包含了若干数据成员和成员函数。在不同的类中,数据成员和成员函数是不相同的。但有时两个类的内容基本相同或有一部分相同。假设我们已声明了学生基本数据的类 Student ;其中包括学生的学号、姓名、性别的信息,如果我们还需要用到年龄、家庭住址等信息,就要重新再定义一个学生类。很显然,我们新定义的学生类有相当一部分是原来已有的(学号、姓名、相别),那么是否能利用原来...

2018-07-07 12:07:08 376

原创 快来看!!函数重载和引用

函数的重载 在学习c++的过程中,除了函数重载,你即将还会遇到运算符重载,那么重载到底是什么意思呢? 所谓重载,就是”一物多用”。所谓函数重载,就是对一个函数名重新赋予它新的含义,使一个函数名可以多用;即用同一个函数名定义多个函数,这些函数的参数个数和参数类型不同。 例如,编写程序求三个数中的最大值(分别考虑整数、单精度数、长整形的情况) int add(int left, int...

2018-06-22 11:05:28 306

原创 数据结构—希尔排序

认识希尔排序 希尔排序也称为缩小增量排序,它的基本思想是: 通过将待排序的元素分为若干个子序列,利用直接插入排序思想对子序列进行排序。然后将该子序列缩小,接着对子序列进行直接插入排序。按照这种思想,直到所有元素都按照关键字有序排列。 增量(gap)的确定方式: 共有3种方法: 1.gap = 需排序的元素个数,每次让 gap /2; 2.取素数,每次让 gap...

2018-05-25 21:45:49 1677

原创 数据结构—插入排序及其优化分析

基本思想 每一步将待排序的元素,按照其排序码的大小,插入到前面已经排好序的一组元素的合适位置上去,直到元素全部插完为止(可以想象打牌的场景,每拿到一张牌,就要找到合适的位置,然后把牌插进去)。 具体算法实现 假设现有 n 个待排序的元素,对应的关键字分别为 a1、a2、……..an,因为第一个元素是有序的,所以从第二个元素开始,将 a2 与 a1 进行比较。若 a2 < a...

2018-05-25 16:22:58 416

原创 无头单链表的增、删、改、查等相关操作

我们都知道,链表是线性表的一种,那为什么会有链表这种数据存储结构呢? 原因大致可以总结为以下三点: 线性表的长度不确定,难以事先确定数组长度。 存储空间必须是连续的,容易造成存储空间的“碎片”现象。 插入和删除操作需要移动大量元素。 为了克服以上缺点,我们可以采用链式存储的线性表,即单链表。 初识单链表 定义:一种链式存储的线性表,用一组地址任意的存储单元存放线性表的数据元素,...

2018-05-17 23:05:59 305

原创 动态顺序表的基本操作

定义 要了解顺序表,就必须先知道什么是线性表?       &a

2018-05-16 16:31:21 432

原创 二叉搜索树的查找、插入、删除的递归与非递归实现(C语言)

【概念】 什么是二叉搜索树? 二叉搜索树又称二叉排序树(按照中序遍历,可以得到一组有序的序列),它或者是一颗空树,或者是具有以下性质的二叉树: 若他的左子树不为空,则左子树上所有节点的值都小于根结点的值。 若他的右子树不为空,则右子树上所有节点的值都大于根结点的值。 他的左右子树也分别为二叉搜索树。 【二叉搜索树的简单操作】 ...

2018-05-11 00:39:58 7012 2

原创 采用回溯和递归两种算法实现简单迷宫(单通路迷宫)

回溯法:对一个包含有很多个结点,每个节点有若干个搜索分支的问题,把原问题分解为若干个子问题求解的算法。当搜索到某个结点发现无法再继续搜索下去时,就让搜索过程回溯(回退)到该节点的前一个节点,继续搜索该节点外的分支;如果发现该节点无法再搜索下去,就让搜索过程回溯到这个节点的前一个节点继续这样的搜索过程;这样的搜索过程一直进行到搜索到问题的解或者搜索完了全部可搜索分支依旧没有解存在为止。 举一个简单

2018-04-16 23:51:15 619

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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