自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

滴水藏海

无知人生,记录点滴

  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

原创 二叉排序树

1,动态查找表在查找过程中可改变表的状态,即可插入或删除数据,它适合用在表的内容要经常变化的情况下,如飞机航班的旅客信息表。二叉排序树中的任何一个节点,其左子树中上的所有的关键字的值均小于该节点的关键字的值,其右子树上的所有的关键字的值均大于该节点的关键字的值。中序遍历二叉排序树可以得到按照关键字有序的序列。2,本程序先使用函数 InsertBST(BiTree &T,ElemTy

2015-12-10 17:23:29 384

原创 归并排序(MergeSort)

归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。若将两个有序表合并成一个有序表,称为二路归并。 1,算法描述归并操作的工作原理如下:第一步:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列第二步:设定两个指针,最初位置分别为两个已经排序序列的起始位置第三步:比较两个指针所

2015-12-10 16:59:25 489

原创 堆排序(HeapSort)

1,什么是堆这里的堆(二叉堆),指得不是堆栈的那个堆,而是一种数据结构。堆可以视为一棵完全的二叉树,完全二叉树的一个“优秀”的性质是,除了最底层之外,每一层都是满的,这使得堆可以利用数组来表示,每一个结点对应数组中的一个元素. 堆与数组之间的关系: 堆有分为大顶堆和小顶堆,堆顶的关键字是堆里所有结点关键字中最大者,称为大顶堆。2,堆排序,若在输出堆顶的最小值(最大值

2015-12-09 21:27:44 749

原创 简单选择排序

选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。 简单排序的处理流程:( 1 )从待排序序列中,找到关键字最小的元素;( 2 )如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;( 3 )从余下的 N - 1 个元素中,找出关键字最小的元素,重复( 1 )、( 2 )步,直到排序结束。 //选择排序#

2015-12-09 21:06:06 650

原创 快速排序算法(QuickSort)

希尔排序是一个比较重要的排序算法,需要认真的的学习一下,刚开始学习的时候觉得标胶难理解,但是不要放弃,多理解几遍就好了。记住你每看一遍都会对该算法有更近一步的了解。一,算法介绍设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。一趟快速排序的算法

2015-12-09 18:52:26 908

原创 冒泡排序(Bubble_Sort)

冒泡排序算法是一个耳熟能详的算法,在我们学习计算机的专业课的时候,在课本中经常会见到该程序,作为一个非常简单的例子程序。如果你不能默写该算法,那么你就没学过计算机的相关课程。好了,不说闲话了。冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。//冒泡排序(小数上升,大数下沉)#includetypedef int Status;#

2015-12-09 17:44:26 1934

原创 希尔排序(ShellSort)

//希尔排序#include#define MAX_SIZE 20#define N 10#define T 3struct RedType // 记录的类型{ int key; int others;};struct SqList //顺序表的类型{ RedType r[MAX_SIZE+1]; //r[0]闲置或者用作哨兵单元 int length;//顺序表的长度

2015-12-09 17:16:35 844

原创 插入排序(直接插入排序,折半插入排序,2路插入排序)

经过排序的数据更加容易查找。,所谓内部排序就是先把待排序的数据都放在内存中,再进行排序。本文的插入方式包括对顺序表L作直接插入排序,对顺序表L作折半插入排序,2_路插入排序。#include#include//待排序记录的数据的类型#define MAX_SIZE 20 //一个用作示例的小顺序表的最大的长度#define N 8struct RedType //记录的类型{

2015-12-09 16:54:50 818

原创 静态表查找--顺序表的查找(有序)--折半查找

静态查找表在查找的过程中不改变表的状态---不插入也不删除,适合不变动或者不经常变动的查找,顺序表可以使有序的也可以是无序的,如果是有序的可以使用折半查找,每查找一次,就把范围缩小一半,如果是无序的就只能从表的一端开始逐一查找了。本文先用Create_Seq(SSTable &ST,ElemType r[],int n)构造一个无序的静态查找表,然后调用函数void Ascend(SSTabl

2015-12-09 16:04:36 10051 1

原创 静态表查找--顺序表的查找(无序)

静态查找表在查找的过程中不改变表的状态---不插入也不删除,适合不变动或者不经常变动的查找,顺序表可以使有序的也可以是无序的,如果是有序的可以使用折半查找,每查找一次,就把范围缩小一半。如果是无序的就只能从表的一端开始逐一查找了。本文先构建一个无序的顺序表,然后从表的一端进行查找指定的元素。#include#include#include#define ERROR 0#define

2015-12-09 15:47:50 1721

原创 链队列--队列的链式表示和实现

和栈一样,队列也是操作受限的线性表,只允许在队尾插入元素,在队头删除元素。对于链队列结构,为了便于插入元素,设立了队尾指针。这样,插入元素的操作与队列长度无关。 //链队列--队列的链式表示和实现#include#include#include#define TRUE 1#define FALSE 0#define ERROR 0typedef int Status;#d

2015-12-09 15:23:02 857

原创 栈的顺序表示和实现

栈也是线性表,是操作受限的线性表。栈的操作是线性表操作的子集。因此,也可以将线性表的结构作为栈的结构。栈的精确的定义为:限定仅在表的一端进行插入或删除操作的线性表。由于栈只在表的一端进行插入和删除的操作,采用顺序存储结构,在入栈和出栈时也不需要移动栈中元素。故顺序栈比链栈的效率要高一些。//栈的顺序表示和实现(顺序栈比链栈的效率要高一些)#include#inclu

2015-12-09 14:48:24 741

原创 用二叉链表存储结构构造一棵二叉树,然后用栈结构进行非递归遍历

二叉树的存储结构包括顺序存储和二叉链表存储结构,其遍历的方式分为递归遍历和非递归遍历,本文章使用二叉链表构建一棵二叉树,然后使用栈这种数据结构实现二叉树的中序非递归遍历。

2015-12-09 14:30:30 6861 1

原创 线性表的链式表示和实现

先建立一个线性单链表,并插入一些元素,然后对单链表进行了一些操作,主要是插入元素和删除元素。

2015-12-09 14:21:11 552

计算机源代码

计算机C语言中序遍历顺序二叉树的参考代码

2013-12-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除