- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 搜索二叉树转双链表
问题:将搜索二叉树转换成一个排序的双向链表 要求:不能创建任何新的节点,只能调整结点的指向 思路 1.中序遍历(有序) 2.得增加一个前驱 #include <assert.h> #include <stdio.h> typedef int DataType; typedef struct BSTreeNode { DataType key; st...
2018-08-31 23:10:09 141
原创 迷宫(暴力破解法)
一、 分析 回溯法 对一个包括有很多个结点,每个结点有若干个搜索分支的问 题,把原问题分解为若干个子问题求解的算法;当搜索到某个结点发 现无法再继续搜索下去时,就让搜索过程回溯(回退)到该节点的前一 个结点,继续搜索该节点外的其他尚未搜索的分支;如果发现该结点 无法再搜索下去,就让搜索过程回溯到这个结点的前一结点继续这样 的搜索过程;这样的搜索过程一直进行到搜索到问题的解或者搜索完 了全部可搜...
2018-08-25 15:41:41 3213
原创 复杂链表的复制
问题:一个链表的每个节点,有一个指向next指针指向下一个节点,还有一个random指针指向这个链表中的一个随机节点或者NULL,现在要求复制这个链表 要复制的链表样例 思路 遍历整个链表,复制节点,将新节点插到老节点的后边 遍历整个链表的老节点,复制random字段 将老链表拆成新链表和老链表 定义结构体 #include <stdlib.h>...
2018-08-23 14:40:28 347
原创 注释转换
注释转换 将C语言的注释转化为C++注释 总共有5个状态: 正常代码、遇到/、C风格注释、C++风格注释、遇到* 转换的思路 正常代码(遇到/) --> 遇到/ ,否则将继续处于正常代码 遇到/,如果遇到*进入C注释状态、如果遇到/进入C++注释状态、如果不是这两种那就回到正常代码 C注释状态,如果遇到*,进入遇到*状态,否则继续在C注释状态 C++注释状态,遇...
2018-08-21 09:09:12 102
原创 通讯录的动态实现
通讯录(动态) 实现功能 增(add),删(del),查(search),改(modify),展示(show),清除(clear),排序(sort),存储(save) 实现动态内存开辟(扩容) realloc函数用于修改一个原先已经分配的内存块的大小,可以使一块空间扩大或者缩小。当起始空间的地址为空,则等同于malloc。 void* realloc(void* ptr,size_...
2018-08-17 10:47:45 531
原创 常用库函数的模拟实现
模拟实现常见库函数 strlen(字符串长度) size_t strlen (const char* str); strlen以'\0'为结束标志 函数返回的是在'\0'前面出现的字符的个数 函数的返回类型是size_t(无符号整形) //计数器方式 int my_strlen(const char* str) { int count = 0; assert(...
2018-08-08 01:12:09 274
原创 指针
一、指针和指针类型 指针 指针就是变量,用来存放地址的变量 指针是为了存放地址才出现的,地址是为了标示一块空间的 指针让地址有地方存放,指针让内存的访问更加方便 指针的大小在32位平台是4个字节,在64位平台是8个字节 指针类型 指针类型:type + *,存放的是type类型的地址 char* pc = NULL; int* pi = NULL; shor...
2018-08-03 19:11:52 232
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人