C++
伏念先生
勤能补拙
展开
-
二叉树的非递归遍历
二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对转载 2016-10-15 15:49:00 · 285 阅读 · 0 评论 -
C++实现任意表达时候求值(栈)
今天花了大概四个小时时间,用栈(stack)实现了“任意表达式的值计算”的问题。 C++ 比 C 好的一点就是,C++ 的STL定义了大量的数据类型和算法,相比于 C 更加视觉化。 实现这个的基本思路很简单:分成两部分完成。两个主要函数: string shorten(string m) 把 string m 由中缀式变为右缀式,double calculate(stri转载 2016-10-28 14:17:21 · 265 阅读 · 0 评论 -
sizeof()类大小,空类大小
一个类的实例化对象所占空间的大小? 注意不要说类的大小,是类的对象的大小.首先,类的大小是什么?确切的说,类只是一个类型定义,它是没有大小可言的。用sizeof运算符对一个类型名操作,得到的是具有该类型实体的大小。 如果 Class A; A obj; 那么sizeof(A)==sizeof(obj) 那么sizeof(A)的大小和成员的大小总和是什么关系呢,很简单,一个对象的大小大于转载 2016-10-30 01:08:14 · 427 阅读 · 0 评论 -
函数指针与指针函数
函数指针函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的。函数指针有两个用途:调用转载 2016-10-21 02:23:39 · 197 阅读 · 0 评论 -
堆和栈的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两转载 2016-10-21 02:41:23 · 155 阅读 · 0 评论