
数据结构和算法
文章平均质量分 65
he_qiao_2010
Make a dent in my notebook... not in the universe
展开
-
常用排序算法、二
排序算法中的几个基本概念:1.内部排序和外部排序内部排序:将所有的排序记录都存储于计算机随机存储器中的排序过程;外部排序:排序记录的数量过大,以致于不能将所有的排序记录一次性读入内存,因而在排序过程中还需对外存进行读取的过程。2.稳定排序和不稳定排序假设原排序序列:… R1, R2, …(排序键值KR1 = KR2)稳定排序:排序之后,R1任然在R2的前面...R1,R原创 2013-05-12 20:05:11 · 1306 阅读 · 0 评论 -
常用排序算法:一
一、交换排序1.冒泡排序:冒泡排序的思想就是每次对指定区间进行遍历的同时,比较相邻元素,如果相邻元素为逆序则交换相邻元素,如果位正序则不作任何操作,这样如果按从小到大的顺序遍历数组下标,那么一次遍历之后,整个序列中的最小数或者最大数就“下沉”到数组底部了,反之,如果从大到小遍历数组小标,那么一次遍历之后,整个序列中的最小数或者最大数就“上浮”到数组顶部了。 一般情况下,给定序列区间原创 2013-05-04 13:47:50 · 1550 阅读 · 0 评论 -
二叉树和Huffman编码
描述: 二叉树是一个若干个节点的集合,这个集合要么为空集,要么由一个根节点和两颗互不相交的左右子树构成,并且左右子树也是二叉树。分类 满二叉树 满二叉树是指除了叶子节点之外的所有内部节点均有左右子树。完全二叉树 如果一颗二叉树所有度数小于二的节点都集中在这棵树最下面两层,并且最下面一层的所有度数小于二的节点都集中在最左边的连续位置上,这样的二叉树叫做完全二叉树。原创 2013-05-27 22:34:08 · 3065 阅读 · 0 评论 -
树、森林和二叉树的转换
树的逻辑表示方法 树型表示法文氏图表示方法括号表示法凹入表示法森林与树 森林(forest)是零棵或多棵不相交的树的集合(通常是有序集合)。树转化为二叉树 方法:(1)在所有相邻兄弟结点之间加一水平连线。(2)对每个非叶结点k,除了其最左边的孩子结点外,删原创 2013-05-31 22:57:05 · 1876 阅读 · 0 评论 -
树和森林的周游
树的周游深度优先(DFS) 先根次序若树非空,则遍历方法为:①访问根结点。 ②从左到右, 依次先根次序遍历根结点的每一棵子树。 访问次序:ABECFHGD注意:等同于转换的二叉树进行先序周游。后根次序若树非空,则遍历方法为: ①从左到右, 依次后根遍历根结点的每一棵子树。②访问根结点。 访问次序:EBHFGCDA注原创 2013-05-31 22:47:37 · 3397 阅读 · 0 评论 -
图的存储
图的定义: 图 G 是由两个集合顶点集 V(G) 和边集 E(G) 组成的,记作G=( V(G),E(G) ),简称G=(V,E)。V是顶点的有穷非空集合,E是两个顶点之间的关系——边的有穷集合。有时对图的边或弧赋予相关的数值,这种与图的边或弧相关的数值叫做权。 这些权可以表示从一个顶点到另一个顶点的距离。可以表示从一个顶点到另一个顶点的耗费。顶点的度 顶点的度:即与该顶点原创 2013-06-02 22:42:41 · 1595 阅读 · 0 评论 -
图的周游,最短路径和最小生成树
图的周游给出一个图G和其中任意一个顶点V0,从V0出发系统地访问G中所有的顶点,每个顶点访问一次。深度优先访问一个顶点V,然后访问该顶点邻接到的未被访问过的顶点V’,再从V’出发递归地按照深度优先的方式周游,当遇到一个所有邻接于它的顶点都被访问过了的顶点U时,则回到已访问顶点序列中最后一个拥有未被访问的相邻顶点的顶点W,再从W出发递归地按照深度优先的方式周游,最后,当任何已被访问过原创 2013-06-03 15:20:18 · 3092 阅读 · 0 评论 -
表达式求值的另一种方法
表达式求值除了用文法实现之外(文法实现表达式求值看这里),还可以直接用栈,将中缀表达式转化为后缀表达式。然后再用求表达式的值就轻而易举了。下面贴程序源码:(可能有点长,呵呵:)main.cpp#include"stack.cpp"#include"stack.h"#includeusing namespace std;/** 该函数有两个功能* 1. 输入中缀表达式原创 2013-03-23 17:37:34 · 2566 阅读 · 1 评论