C程序
文章平均质量分 81
学习笔记
lxt-cn
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
交换两个数的值的四种方法
交换两个数的值时,大致分为两种思路,建立临时变量和不建立临时变量,这里我们按照是否建立临时变量来写。 一、建立临时变量 <1>、一般方法 思路:建立临时变量 tmp ,通过 tmp = a; a = b; b = tmp; 来实现。 图解:(以 a = 1; b = 2 为例) ...原创 2018-08-19 10:33:10 · 8179 阅读 · 0 评论 -
栈和队列习题二
目录 一、实现一个栈,要求实现Push(入栈)、Pop(出栈)、Min(返回最小值)的时间复杂度为O(1) 二、元素出栈、入栈顺序的合法性。如入栈的序列(1,2,3,4,5),出栈序列为 (4,5,3,2,1) 三、一个数组实现两个栈(共享栈) 注:以上三个题的完整代码至 GitHub 查看:https://github.com/lxt-cn/DSCode/tree/master/Qu...原创 2019-08-09 11:46:37 · 334 阅读 · 0 评论 -
栈的应用(迷宫问题)
一、迷宫问题解决思路 回溯法: 顾名思义,就是可以向回退的方法。适合于一个包含多个节点,每个节点有若干个搜索分支的问题,把原问题分解为若干个子问题求解的算法; 具体思路是:当搜索到某个节点发现无法再继续搜索下去时,就让搜索过程回溯(回退)到该节点的前一个节点,继续搜索该节点外的其他尚未搜索的分支;如果发现该节点无法再继续搜索下去时,就让搜索过程回溯到这个节...原创 2019-08-05 11:21:46 · 324 阅读 · 0 评论 -
队列的基本实现(顺序队列、循环队列)
目录 一、队列的简介 二、顺序队列 三、循环队列 一、队列的简介 队列:一种只允许在一端进行插入操作,在另一端进行删除操作的特殊线性表。(先进先出) 如图所示为队列的示意图: 队列的分类: 1、顺序队列:创建顺序队列需申请一块连续的内存空...原创 2019-07-17 10:33:07 · 582 阅读 · 0 评论 -
栈的基本实现
目录 一、栈的简介 二、顺序栈 三、链式栈 一、栈的简介 栈:是一种限定仅在表尾进行插入/删除操作的线性表。表尾称为栈顶,表头称为栈底。不包含元素的空表称为空栈。 如图所示为栈的示意图: 栈的分类: 1、顺序栈:顺序栈和顺序...原创 2019-05-16 15:21:47 · 920 阅读 · 2 评论 -
栈和队列习题
目录 一、两个栈实现一个队列 二、两个队列实现一个栈 一、两个栈实现一个队列 分析:栈是后进先出的,队列是先进先出的。如果要用两个栈实现一个队列,主要的两个接口就是实现入队和出队,所以我们使两个栈始终保持一个为入队栈,一个为出队栈,具体在下面分析。 1、定义 typedef struct QueueByTwoStack { Stack s1; /...原创 2019-07-17 10:33:47 · 229 阅读 · 0 评论 -
《剑指 offer》:数组中重复的数字
目录 题目一:找出数组中重复的数字 题目二:不修改数组找到重复的数字。 题目一:找出数组中重复的数字 在一个长度为 n 的数组里的所有数字都在 0 ~ n-1 的范围内。数组中某些数字是重复的, 但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 例如:如果输入长度为 7 的数组{2,3,1,0,...原创 2019-05-10 23:59:26 · 273 阅读 · 0 评论 -
链表面试题
在此之前,需说明的是,以下链表题都是单链表,且结点的定义为 typedef int DataType; typedef struct Node { DataType data; struct Node* next; }Node , List, *pNode, *pList; 目录 1、比较顺序表和链表的优缺点, 说说它们分别再什么场景下使用? 2、从尾到头打印...原创 2019-05-01 16:52:09 · 1237 阅读 · 0 评论 -
带头双向循环链表
首先,我们来看一下带头双向循环链表的结构: 目录 带头双向循环链表结点的定义: 相关操作接口: 1、初始化 && 获取一个结点 2、销毁链表 3、尾插 4、头插 5、指定元素查找 6、任意位置插入 7、 尾删 8、头删 9、任意位置删除 10、打印链表 附上完整代码: 带头双向循环链表结点的...原创 2019-05-01 14:06:42 · 486 阅读 · 0 评论 -
复杂链表的复制
一个链表的每个结点,有一个指向next指针指向下一个结点,还有一个random指针指向这个链表中的一个随机结点或者NULL,现在要求实现复制这个链表,返回复制后的新链表。 逻辑:通过图片来看,注意线条颜色; 代码如下: //结点的定义 typedef struct ComplexNode {...原创 2019-05-02 23:10:03 · 159 阅读 · 0 评论 -
静态通讯录【C语言】
使用结构体类型实现一个静态通讯录,可以存储1000个人的信息,包括姓名,性别,年龄,电话号码,地址。 主要实现功能有:1、添加联系人信息 2、删除指定联系人信息 3、查找指定联系人 4、修改指定联系人信息 5、显示所有联系人 6、清空所有联系人 7、以名字排序所有联系人 需要提前说的是,一个人的地址,电话号码一般不固定,性别的话,...原创 2019-04-09 08:15:32 · 566 阅读 · 0 评论 -
使用回调函数,模拟实现qsort(采用冒泡的方式)
首先,我们说一下什么是回调函数? 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另一方调用的,用于对该事件或条件进行响应。 如果你还不了解函数指针的相关内容,可先选择看我的上一篇博客,点击下方进入: ...原创 2019-04-01 17:25:12 · 197 阅读 · 0 评论 -
模拟实现C函数库中的常用函数
在接下来的描述中,一共会模拟实现 7 个库函数,分别是: 1、strlen 2、strcpy 3、strcat 4、strstr 5、strcmp 6、memcpy 7、memmove 在模拟实现之前,我都会先把函数在MSDN中的定义截取下来并适时解释。 常用函数: 1、模拟实现strlen 下面我们将用三...原创 2019-03-27 16:56:09 · 340 阅读 · 0 评论 -
可变参数列表解析
解析可变参数列表之前,我们需要了解什么是可变参数及它的作用与实质。 可变参数:指某一个函数被调用的时候,并不知道具体传递进来的参数类型和参数的数目。 作用:通过将函数实现为可变参数的形式,使得函数可以接受一个以上不固定数目的参数。 实质:可变参数列表实际上是宏的使用,实质是栈帧结构的运用。 在库函数中也存在一些可变参数的函数,比如 printf() ,我们来看一下它的定...原创 2019-03-12 19:37:22 · 215 阅读 · 0 评论 -
扫雷小游戏
扫雷游戏思路 首先,在写扫雷小游戏之前,我们要先了解她的游戏规则。扫雷顾名思义就是找到所有非地雷的格子,只有把所有的非地雷的各自全部找出来游戏才会胜利,在过程中踩到雷就会游戏失败。游戏是由方格组成的区域,电脑版的中是使用鼠标标记所要查看的格子,在下面的程序中,我们使用坐标实现选择,当我们选择之后,方格中会出现一个数字,这个数字代表这个方格周围隐藏几颗雷。 接下来,我们先...原创 2018-10-23 17:14:51 · 551 阅读 · 0 评论 -
二叉树基本操作(一)
目录 一、二叉树的概念 二、二叉树的分类 满二叉树 && 完全二叉树 三、二叉树的基本操作 1、二叉树的创建 2、二叉树的销毁 3、求二叉树的高度 4、求二叉树叶子结点的个数 5、求二叉树结点的个数 6、求二叉树第 K 层结点的个数 7、判断一个节点是否在一棵二叉树中 注:完整代码请至 Github 查看:https://github.com/...原创 2019-08-20 12:48:56 · 579 阅读 · 0 评论
分享