摘要: 数据结构中无意识中抵触树结构,觉得没逻辑,哪儿有树长成那熊样的,但讨厌归讨厌,还得看看。首先是一些基本概念:1、度:结点拥有的子树数称为结点的度,就是当前结点下面有几个结点。度为0的结点称为叶结点或是终端结点2、层次:从跟开始定义其,根为第一层,根的孩子为第二层。树中结点的最大层次称为数的深度或是高度3、二叉树:是n(n>=0)个结点的有限集合,该集合或者为空集,或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。4、满二叉树:如果所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上的树。5、完全二叉树:对一颗具有n个结点的二叉树按层序变好,如果变好为i( 阅读全文
posted @ 2013-07-22 17:20 nygfcn 阅读(209) 评论(0) 推荐(0)
摘要: 基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。界面:主要代码://将原问题分解为若干个规模更小但结构与原问题相似的子问题。 //递归地解这些子问题,然后将这些子问题的解组合为原问题的解。 private void btnSort_Click(object sender, EventArgs e) { try { st... 阅读全文
posted @ 2013-07-22 11:00 nygfcn 阅读(211) 评论(0) 推荐(0)
摘要: 思路:重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,故名。界面为:主要代码: //重复地走访过要排序的数列,一次比较两个元素, //如果他们的顺序错误就把他们交换过来。 //走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 private void btnSort_Click(object sender, EventArgs e) { ... 阅读全文
posted @ 2013-07-22 10:44 nygfcn 阅读(189) 评论(0) 推荐(0)
摘要: 思路:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。用winform实现,界面如下图所示:主要代码为: try { string beforeSort = txtBeforeSort.Text.ToString(); string[] sortArr = beforeSort.Split('*'); List beforeArr = new List(); ... 阅读全文
posted @ 2013-07-22 10:20 nygfcn 阅读(180) 评论(0) 推荐(0)