自定义博客皮肤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)
  • 收藏
  • 关注

原创 二叉树的线索化

二叉树是一种非线性结构,遍历二叉树几乎都是通过递归或者用栈辅助实现非递归的遍历。用二叉树作为存储结构时,取到一个节点,只 能获取节点的左孩子和右孩子,不能直接得到节点的任一遍历序列的前驱或者后继。为了保存这种在遍历中需要的信息,我们利用二叉树中指向左右子树的空指针来存放节点的前驱和后继信息。线索化实现如下:#pragma onceusing namespace std

2018-07-12 15:03:38 182

原创 剑指Offer读书笔记5

1.画图让抽象问题形象化图像能够使抽象的问题具体化,形象化,通过画图能够找到问题的规律,以及题目隐含特点,以便我们能够找出题目的边界条件。 例题:二叉树的镜像为了理解题意,可以画出一棵二叉树和它的镜像图。不难发现,两棵树的根节点相同,但他们的左右两个子节点交换了位置。因此我们可以得出如下转换的过程图: 总结一下,我们得出一棵树的镜像的过程:先前序遍历这棵

2017-08-04 20:16:34 323

原创 剑指Offer读书笔记4

3章总结:本章分别从规范性、完整性和鲁棒性介绍代码编写应该注意的事项以及从这几方面下手如何写出最优的的代码。在编写代码时要注意规范性,尽量清晰的书写每个字母,通过缩进和对齐括号让代码布局合理,同时合理的命名代码中的变量和函数。最好在编码前全面的考虑所有可能的输出,确保写出的代码在完成了基本的功能之外,还考虑了边界条件,并做好了错误处理。只有全面的考虑到这3方面的代码才是完整的代码。

2017-08-02 09:12:12 278

原创 剑指Offer读书笔记(3)

2.4.1 排序和查找查找相对简单,查找分为顺序查找、二分查找、哈希表查找和二叉排序树查找。PS:哈希表最主要的优点是我们利用它能够在O(1)的时间度查找某一元素,是效率最高的查找方式。但缺点在于需要额外的空间来实现哈希表。排序比较复杂,排序分为插入排序,哈希排序,冒泡排序,选择排序,堆排序,归并排序,快速排序。PS:比较排序的优缺点应从额外空间消耗,平均时间复杂度和最差时间复杂度

2017-07-30 16:44:38 278

原创 剑指Offer读书笔记(2)

2.3数据结构数组和字符串:用连续的内存存储数字和字符。链表和树:因操作时会用到大量的指针,解决问题时留意代码的鲁棒性。栈:一个与递归紧密相关的数据结构。队列:与广度优先遍历紧密相关 数组时间复杂度为O(1),空间效率不高。使用动态数组时,尽量减少改变容量大小的次数,减少时间上的消耗。PS:C/C++中没有记录数组的大小,用指针访问时留意边界条件。再用siz

2017-07-28 13:57:45 259

原创 剑指Offer读书笔记(1)

2章2.2编程语言1.C++中定义一个空类型,对该类型求sizeof()为1,声明该类型时它必须在内存中占有一定的空间,即使加入构造函数和析构函数结果还是1。编译器如果发现一个类型中包含虚拟函数,就为该类型生成虚拟函数表,并在该类型的每一个实例中加入一个指向指针,此时求sizeof()时,在32位下为4,64位下为8。2.C++中,struct定义的类型中默认是public,class

2017-07-28 13:14:47 252

原创 智能指针--RAII

智能指针:RAII全称为Resource Acquisition Is Initialization,它是在一些面向对象语言中的一种惯用法。RAII源于C++,在Java,C#,D,Ada,Vala和Rust中也有应用。是为了解决资源管理时的异常安全性提出了该用法。实现了普通指针的指向和解引用的功能,并实现在类的对象构造时初始化对象和析构时负责释放资源。RAII要求,资源的有效期与持有资源的对

2017-07-26 17:01:26 305

原创 类型萃取实现vector

C++中通过类型萃取来实现对象类型的识别。类型萃取的实际用例:1.SeqList 2.统一内存管理 3.STLPOD:plain old data平凡类型--基本类型,值C++中与C兼容的类型,可以按照C的方式处理POD类型萃取如下:#pragma oncestruct _TrueType{};struct _FlaseType{};template str

2017-06-26 21:16:32 454

原创 二叉树的实现

树的概念:树是N(N>=0)个有限数组元素的集合,形状像一棵倒过来的树节点:节点包含数据和指向其他节点的指针,树的第一个节点称为根节点度:节点拥有的子节点的数树的高度:树中距离根节点最远节点的路径二叉树:二叉树是一棵特殊的数,二叉树每个节点最多有两个孩子节点,为左孩子和有孩子。满二叉树:高度为N的慢二叉树有2*N-1个节点的二叉树完全二叉树:若二叉树的深度为H,除第H层

2017-06-26 20:46:33 344

原创 求教,一起来探讨一下

5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第一,我第三。B选手说:我第二,E第四。C选手说:我第一,D第二。D选手说:C最后,我第三。E选手说:我第四,A第一。比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。#include int main(){ int a = 0; int b = 0; int c = 0; int d

2016-11-13 14:39:33 233

原创 进阶之路——方法的优化和实现

下面是求两个数的最大公约数的代码,体现了两种思维和方法的使用,各位看官可做出比较和判断#include int main(){ int x = 8; int y = 4; int temp = 0; printf("请输所求的两个数:"); scanf("%d%d",&x,&y); if (x < y) { temp = x;

2016-11-12 15:58:29 321

原创 进阶之路——逻辑与思维的重要性

#include #include int main(){ char arr1[] = "hellow world !"; char arr2[] = "##############"; int i = 0; for(i=0 ;i <= strlen(arr1)/2;i ++) { arr2[i] = arr1[i]; arr2[strlen(arr1)-1-i] = a

2016-11-12 15:52:53 269

原创 简易折半查找

#include int main(){ int arr[] = {1,2,3,4,5,6,7,8,9,10}; int se = 7; int left = arr[0]; int right = 0; int mid = 0; right = sizeof(arr)/sizeof(arr[0])-1; mid = right/2; while(left < right)

2016-11-12 15:48:29 221

原创 仓促之间写的,有些不足,希望道友们给我建议

//打印杨辉三角 #include int main(){ int i = 0; int j = 0; int lien = 0; int arr1[100] = {0}; int arr2[100] = {0}; arr1[0] = 1; printf("input lien:>"); scanf("%d",&lien); for(i=0;i<=lien;i ++)

2016-11-12 15:45:08 288

原创 思维,方法与想法

#include //输出一个整数的每一位int main(){ int x = 0; int y = 0; printf("请输入需要计算的数:>"); scanf("%d",&x); while( x > 0) { y = x%10; printf("%d\n",y); x /= 10; } return 0;} #include //输出一个整数的每

2016-11-12 15:42:10 357

原创 开始的地方

这是我的写的第一个博客,也是对自己的成长的记录,愿在未来的日子里坚持努力下去,坚定自己的选择。自己是一个荒废两年的屌丝。目标:现阶段是想找一个好工作。多看,多听,多练,多交流。每周尽最大的努力把时间用在这方面上。想进的公司还没想好。

2016-10-28 12:43:46 245

空空如也

空空如也

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

TA关注的人

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