二叉树遍历总结
二叉树遍历的递归与非递归算法[@more@]二叉树的遍历可以大致分为递归遍历和层序遍历。递归遍历依次遍历左子树和右子树,递归遍历时,每个节点会经过三次。按照访问节点时机的的不同,分为先序,中序和后序遍历。 递归遍历先序遍历:1.访问根节点2.先序遍历左子树3.先序遍历右子树 //二叉树定义 本例代码为类C伪码 不能直接运行typedef struct BiTree { DataType Data; //定义数据域 struct BiTree *LChild,*RChild; //定义左右子树的指针} *BiTree; //二叉树先序遍历void PreTraverse(BiTree root) { if(root!=NULL) {
排序算法的稳定性
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。[@more@]转载:http://westguar.spaces.live.com/blog/cns!F6DD25E77539E5DD!236.entry选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定