数据结构
文章平均质量分 74
哥弟思
这个作者很懒,什么都没留下…
展开
-
快速排序的非递归实现(栈)
/* *快速排序非递归基本思想: * 将每一段的头和尾放在栈中,在逐步出栈。 * 首先先建一个栈或者调用STL(标准模板库)中 * 栈函数。在头文件中。*/#include #include #include using namespace std;#define Size 20typedef int DataType;typedef int Position;原创 2014-11-21 20:52:59 · 834 阅读 · 0 评论 -
快速排序
/* *快排的基本思想: * 现在源数据中任意去一个值,作为标准值。把 * 数据中小于标准值的数据排在该标准值的左边,把 * 数据中大于等于标准值的数据排在该标准值的右边。 * 这样就分成了三部分。 * 左半边 标准值 右半边 *然后分别在左半边和右半边进行取标准值,划分左半 *边和右半边。 * *可用到递归思想或栈的数据结构*/#includ原创 2014-11-20 22:50:02 · 460 阅读 · 0 评论 -
快速排序的队列的实现
/** 快速排序的队列实现:* 快速排序的栈的实现。*/#include #include using namespace std;#define Size 20#define Low 0#define High Size-1typedef int DataType;typedef int Position;void PaintArray(DataType原创 2014-11-27 19:35:44 · 1597 阅读 · 0 评论 -
通过自己编写的stack类实现快速排序的非递归排序
/* * 该篇博客代码思想与上一篇的相似,只是自己实现了 *“stack”类,没有调用标准模板库中的类,仅此 *而已。*/#include "Stack.h"#define Size 20void PaintQuickSort(DataType digit[], int lengthOfDigit);Position GetPosition(DataType digit[],原创 2014-11-21 21:53:37 · 625 阅读 · 0 评论 -
由二叉树的前序和中序还原二叉树
#include #include ///////////////////////////////////typedef struct BiTreeNode{ char value; struct BiTreeNode* lt; struct BiTreeNode* rt;}BiTreeNode,BiTree;void InitiateNode(BiTreeNode*& p原创 2014-12-17 21:25:33 · 684 阅读 · 0 评论 -
使用haffman(哈夫曼)编码的简单压缩软件
限制只能操作1Mb以内的文件#include #include #include #include using namespace std; int getbit(int c,int w) //获取二进制数c的第w位 { return (c>>w)&1; } class tree{ //用来生成haffman树,并记录转载 2014-12-09 16:43:09 · 937 阅读 · 0 评论 -
哈夫曼树和哈夫曼编码
#ifndef _HAFFNODE_#define _HAFFNODE_class HaffNode{private: int weight;//权值 int flag;//标记 int parent; int leftChild; int rightChild;public: HaffNode(); ~HaffNode(); /*virtual*/ void原创 2014-12-08 13:34:32 · 676 阅读 · 0 评论 -
希尔排序
/* * 希尔排序*/#include #include using namespace std;typedef int DataType;#define Size 12int* ShellGroup(int size); // 将数据分组int GetShellGroupLength(const int* group); // 获得分组数组的长度void ShellTea原创 2014-12-18 00:25:40 · 467 阅读 · 0 评论 -
归并排序
/* * 归并排序基本思想:* 设数组Array[]中存放了 N个元素,初始时可以把它们看成长度为1的N个* 有序数组。然后,把相邻的有序字数组两两合并,得到[N/2] + 1个长度为 2 的新* 的有序子数组。再进行两两合并,如此重复,直到得到一个长度为N的有序数组为* 止。* 接下来的代码中命名的解释:* lowerOfFirGroup 第一有序子数原创 2014-11-24 13:55:30 · 593 阅读 · 0 评论 -
直接插入排序
/* * 直接插入排序*/#include using namespace std;#define Size 6typedef int DataType;//声明void PaintInsertSort(DataType const digit[]);void InsertSort(DataType digit[]);//Mainint main原创 2014-11-17 17:56:21 · 470 阅读 · 0 评论 -
直接选择排序
由于最近在总结排序算法,写在博客上原创 2014-11-17 18:31:26 · 478 阅读 · 0 评论 -
堆排序
堆可分为最大堆和最小堆。最大堆:根节点的值原创 2014-11-19 12:16:01 · 525 阅读 · 0 评论 -
基数排序
接下来是代码的实现:/** 基数排序基本思想:* 基数排序又名桶排序。是一种关键字为整型时非常高效的排序方法。* 步骤:* (1):明确数据时什么进制(Scale)的整数。 若是 10进制,则分10个* 桶,桶的编号是0、1、2、......、9。若是8进制,则分8个桶,桶的编号是* 0、1、2、......、7。* (2)原创 2014-11-27 13:22:49 · 463 阅读 · 0 评论 -
冒泡排序(交换排序一)
最近在总结排序算法,今天抽空写了一个原创 2014-11-18 20:43:57 · 492 阅读 · 0 评论