lionel chang

导航

2012年9月4日 #

如何判断一棵树是平衡二叉树

摘要: 首先,想一下平衡二叉树的概念。平衡二叉树(AVL树)是满足下面条件的二叉树:要么是一棵空树,要么左右子树都是AVL树,并且左右子树的深度之差的绝对值不大于1。由此可知,要判断一棵树是不是AVL树,只要判断它的左右子树的深度之差。问题落到了如何求一棵树的深度上去了。下面使用递归的方法求一棵树的深度:#include<stdio.h>#include<math.h>#include<malloc.h>typedef struct BTree{ int data; struct BTree *lchild,*rchild;}BTree,*Root;int isAV 阅读全文

posted @ 2012-09-04 22:36 woshizyl 阅读(473) 评论(0) 推荐(0) 编辑

c++中的容器

摘要: 容器指容纳特定类型对象的集合。容器分为顺序容器和关联容器。顺序容器中的元素按其位置存储和访问。关联容器中的元素按键排序。顺序容器有三种:vector,list和deque,标准库还提供了三种容器适配器stack,queue,priority_queue。其中三种容器vector 相当于c语言中的数组,可以快速随机访问list 相当于c语言中的链表,可以快速插入/删除deque double-ended queue 即双端队列三种适配器stack 栈queue 队列priority_queue 有优先级管理的队列一.顺序容器的定义《=================... 阅读全文

posted @ 2012-09-04 16:29 woshizyl 阅读(126) 评论(0) 推荐(0) 编辑

c++中的虚函数

摘要: 1.为什么c++没有虚构造函数?因为构造函数是在对象完全构造之前运行的,在构造函数运行的时候,对象的动态类型还不完整。2.为什么c++中赋值操作符不是虚函数?将类的复制操作符设为虚函数很可能会令人混淆,而且没有什么好处。在基类中将operator=定义为虚函数,并不会影响派生类中使用的赋值操作符。每个类都有自己的赋值操作符,派生类中的赋值操作符有一个与类本身类型相同的形参,该类型必须不同于继承层次中的任意其他类的赋值操作符的形参类型。3.虚函数的使用i.静态函数不能为虚函数,因为静态函数是被一个类的各个对象共有的,它不会因为继承而改变。ii.inline函数不能为虚函数,因为inline不能在 阅读全文

posted @ 2012-09-04 14:47 woshizyl 阅读(159) 评论(0) 推荐(0) 编辑