- 博客(17)
- 资源 (19)
- 收藏
- 关注
原创 函数调用过程
今天突然看到有人私信我说一直没写函数调用过程(栈帧的形成和销毁过程)这篇博文,赶紧补上。 刚看的栈帧内容时,我很迷惑,我觉得栈帧创建和销毁很麻烦,几句话根本说不完,而且我好像描述不清楚他的过程,所以在博文里面遇到函数调用我就规避了。现在再写栈帧调用过程,我觉得其实这个过程没有那么困难(不过还是有些抽象,毕竟计算机底层怎么运行我们也不是很明白)。 栈帧的创建的销毁过程例子代码:i
2018-01-31 09:21:19 13796 3
原创 空格替换《剑指offer》
一、题目 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 二、思路解析 两种思路供选择: 1、从前向后替换:指针从第一个字符循环后移遇到空格,把空格后面的剩余字符全部向后移出能替换字符串的位置(此题需要后移出两个空格),然后把空格替换为目标串,以此类推直到所有空格被全部替换。
2018-01-28 20:23:16 231
原创 单双链表练习题
本文是关于链表的一些操作(包括单链表和双向循环链表) 1、单链表,双链表的创建。 2、单链表和双链表的打印。 3、单链表的插入,删除。 4、双链表的插入和删除。 5、单链表的逆置。 6、单链表节点的个数。 7、单链表,双链表的查找。 函数代码://链表相关问题typedef int DataType;typedef struct LinkNode //单链表结构{
2018-01-27 17:52:26 808
原创 C语言的数组与指针
总有人认为数组和指针是C语言里面最难的部分,其实认真思考发现数组和指针内容不多,只是我们经常把很多知识ran在一起,搞得自己很混乱。接下来我们细细看一看。 一、数组(数组:相同类型的元素的集合) 1、一维数组 (1)数组名及意义 1)数组名 看两个表达式的声明 int a; int b[5]; a是个变量名也是一个变量,b称为数组名,他是个指针常量,他的类型和数...
2018-01-26 15:04:07 1164 2
原创 模拟实现字符串相关函数
本文所有实现的代码均为了练习。现实编程中尽量使用库函数,库函数的实现在时间复杂度,空间复杂度上均达到了最好,所以库函数运行效率高,占用内存少。
2018-01-25 15:25:16 285
原创 C语言知识点总结 -思维导图
C语言知识点总结 学会梳理知识,学会学习,后续会陆续更新数据结构和c++知识点总结。 本人把所有学习C语言的笔记放在了一个专栏,有兴趣的朋友可以随时查阅,有问题欢迎交流。 专栏链接:http://blog.csdn.net/column/details/20152.html...
2018-01-23 14:18:55 8166 3
原创 二叉树简单操作(下)
一、二叉树基本操作 1. 求二叉树的深度。(树的深度:树中所有节点的层次的最大值称为该树的深度) 2. 求二叉树叶子结点的个数。(叶子节点:度为0的结点称为叶结点,叶节点也称为终端节点) 3. 求二叉树结点的个数。(节点:结点包括一个数据元素及若干指向其他子树的分支(指针(索引))) 4. 求二叉树第K层结点的个数。 5. 判断一个节点是否在一棵二叉树中。 6. 获取一个节
2018-01-22 14:56:52 415
原创 二叉树基本操作(下)
二叉树基本操作 1. 求二叉树的高度 2. 求二叉树叶子结点的个数 3. 求二叉树结点的个数 4. 求二叉树第K层结点的个数 5. 判断一个节点是否在一棵二叉树中 6. 获取一个节点的双亲结点 7. 获取一个节点的左孩子结点 8. 求二叉树的镜像(递归&非递归) 9.判断一棵二叉树是否为完全二叉树(层序遍历变形) 完整源代码 1、BinaryTree.h
2018-01-22 14:54:47 364
原创 二叉树基本操作(上)
一、二叉树简单操作 1、二叉树的创建(二叉链) a[] = {1,2,3,’#’,’#’,4,5,’#’,’#’,6,’#’,’#’,7,8,’#’,9,’#’,’#’,’#’};(‘#’代表NULL)。 2、二叉树的遍历 (1)迭代法遍历(①前序遍历②中序遍历③后序遍历) (2)递归法遍历(①前序遍历②中序遍历③后序遍历) (3)层序遍历。 二、完整代码 1、Bina
2018-01-21 20:46:07 606
原创 二叉树基本操作(上)
一、二叉树基本操作 1、二叉树的创建(二叉链) a[] = {1,2,3,’#’,’#’,4,5,’#’,’#’,6,’#’,’#’,7,8,’#’,9,’#’,’#’,’#’};(‘#’代表NULL)。 2、二叉树的遍历 (1)迭代法遍历(①前序遍历②中序遍历③后序遍历) (2)递归法遍历(①前序遍历②中序遍历③后序遍历) (3)层序遍历。 前序遍历也叫先根遍历:访问顺序:根–
2018-01-21 20:38:03 564
原创 迷宫问题
一、迷宫问题 1、打印迷宫。(打印二维数组) 2、简单迷宫,找出其中的通路(①迭代法。②递归法)。 3、多条通路迷宫,找出所有的通路。 4、多条通路和带环通路迷宫,求最短通路。 二、函数代码: 1、打印迷宫地图:void MazePrint() //打印迷宫 { size_t i =0,j=0; for (i = 0; i<N; i++)
2018-01-20 23:18:35 1045
原创 栈的简单应用
一、栈的简单应用 1、数制转换。 2、括号匹配。 3、逆波兰表达式的计算。 二、代码void HexTran(DataType x,DataType k) //任意进制转换{ DataType result = 0; Stack s; DataType i; StackInit(&s); while (x) {
2018-01-19 09:59:07 487
原创 链式栈的基本操作
一、链式栈的基本操作 1、栈的创建。 2、栈的初始化。 3、入栈,出栈。 5、取得栈顶元素。 6、求栈的大小,判断栈是否为空。 二、代码: //链式栈的基本操作typedef struct LinkStack //创建链式栈{ DataType data; struct LinkStack *next;}LinkStack;void Link
2018-01-15 20:53:56 4187 1
原创 栈和队列基本知识
一、栈和队列基本知识 1、栈和队列的创建。 2、栈和队列的初始化。 3、栈的增容。 4、入栈,出栈,入队,出队。 5、取得栈顶,队头和队尾元素。 6、求栈和队列的大小,判断栈和队列是否为空。 二、代码:栈的基本操作:void StackInit(Stack *s) //栈的初始化{ assert(s); s->data=NULL; s->end=0;
2018-01-13 13:59:04 1452
原创 链表相交和带环问题
一、题目 1、判断单链表是否带环?若带环,求环的长度?求环的入口点? ①链表是否带环问题。( 定义两个指针同时指向头节点,一个快指针,一个慢指针,两个指针同时遍历链表,快指针一次走两步,慢指针一次走一步,如果链表带环,两个指针一定会在环内相遇。例如两个人在操场同时跑步,跑得快的人一定会追上跑得慢的人。) ②在第一问中已经可以求得两指针相遇点,在定义一个指针,从相遇点出发开始遍历环,在此走到相...
2018-01-08 21:34:43 974
原创 链表面试题
整体代码: 1、SListNode.h#ifndef __SLISTNODE_H__#define __SLISTNODE_H__#include <stdio.h>#include <stdlib.h>#include <assert.h>typedef int DataType;typedef struct SListNode ...
2018-01-04 23:10:26 337
原创 链表面试题
一、题目 1、从尾到头打印单链表 (有四种方法) 2、删除一个无头单链表的非尾节点(不能遍历链表) 3、在无头单链表的一个节点前插入一个节点(不能遍历链表) 4、单链表实现约瑟夫环(JosephCircle) 5、逆置/反转单链表 6、单链表排序(冒泡排序&快速排序) 7、合并两个有序链表,合并后依然有序 8、查找单链表的中间节点,要求只能遍历一次链表 9、...
2018-01-04 22:57:30 785
Dev-Cpp.zip
2019-11-07
VMware-Workstation-12.0.0-2985596精简官方中文安装注册版v2.zip
2019-07-10
SQLyog工具
2019-05-03
Adblock Plus
2018-05-24
boost库源码
2018-05-19
【数据结构】——搜索二叉树的插入,查找和删除(递归&非递归)
2018-02-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人