数据结构
shanql
这个作者很懒,什么都没留下…
展开
-
数据结构:树的存储——双亲表示法
/*********************************************** 程序:树的存储-----双亲表示法 完成者:小单 完成时间:2013年5月20日***********************************************/#include #define MAX_TREE_SIZE 100#define OK 1#原创 2015-05-08 14:53:06 · 4491 阅读 · 0 评论 -
数据结构:二叉树线索化的部分实现
/******************************************************* 程序:二叉树的线索化 完成者:小单 完成时间:2013年5月19日*******************************************************/#include #include #define OK 1#def原创 2015-05-08 14:51:47 · 443 阅读 · 0 评论 -
数据结构:二叉树的链式存储实现
/*********************************************************************************** 程序:二叉树的链式存储实现 作者:小单 完成时间:2013年4月25日*****************************************************************原创 2015-05-08 14:47:16 · 2661 阅读 · 0 评论 -
数据结构:单链队列--队列的链式存储结构
//测试/************************************************************* 程序:单链队列--队列的链式存储结构 完成者:小单***************************************************************/#include #include #define原创 2015-05-08 14:03:08 · 990 阅读 · 0 评论 -
数据结构:栈的应用(进制转换)
void itob( int a ) //非负十进制转二进制{ int stack[32]; //初始化一个栈 int top = -1; int N = a; while ( N ) { stack[++top] = N % 2; N /= 2; } while( top != -1 ) { cout << stack[top--]; } cout << en原创 2015-05-08 14:00:55 · 632 阅读 · 0 评论 -
数据结构:栈与递归(Hanoi塔问题)
void Hanoi( int n, char a, char b, char c ){ if ( n == 1 ) { cout " << c << endl; } else { Hanoi( n-1, a, c, b ); //将n-1块从a经过c移动到b cout " << c << endl;//将第n块从a直接移到c Hanoi( n-1, b, a, c原创 2015-05-08 14:00:08 · 1522 阅读 · 0 评论 -
数据结构:栈的应用(迷宫的求解)
/********************************************************** 程序:迷宫实现 作者:小单 完成时间:2013年5月5日**********************************************************/#include #include #include #def原创 2015-05-08 13:55:12 · 1771 阅读 · 2 评论 -
数据结构:算符优先法(栈的应用)
/**************************************************** 算法:算符优先法 完成者:小单 完成时间:2013年5月9日*****************************************************/#include #include #define ERROR 0#d原创 2015-05-08 13:54:35 · 1606 阅读 · 0 评论 -
数据结构:树的孩子链表存储
/*********************************************************程序:树的孩子链表存储完成者:小单完成时间:2013年5月21日**********************************************************///测试#include #原创 2015-05-08 14:55:47 · 5243 阅读 · 0 评论 -
数据结构:赫夫曼树和赫夫曼编码的存储表示
/********************************************************程序:赫夫曼树和赫夫曼编码的存储表示完成者:小单完成时间:2013年5月26日*********************************************************///测试#inclu原创 2015-05-08 15:00:33 · 3417 阅读 · 2 评论 -
数据结构:有向图的十字链表存储表示(c实现)
/**********************************************************程序:有向图的十字链表存储表示完成时间:2013年6月10日完成者:小单***********************************************************///-----原创 2015-05-08 15:12:31 · 3432 阅读 · 2 评论 -
数据结构:Dijkstra算法实现 c实现
/*************************************************************************程序:Dijkstra算法实现程序完成者:小单程序完成时间:2013年6月27号**********************************************************原创 2015-05-08 16:06:57 · 885 阅读 · 0 评论 -
数据结构:查找与排序
#include using namespace std;void ShellSort( int a[], int n )//希尔排序的非递归实现 { int gab = n / 2; while( gab >= 1 ) { int iSubCnt = 0; //子列的起始索引 while ( iSubCnt < gab ) { //对子列进行插入排序 for原创 2015-05-08 23:04:37 · 583 阅读 · 0 评论 -
数据结构:最小生成树(Kruskal)
算法思想:假设N = { V, {E} }是连通网,则令最小生成树的初始状态为只有n个顶点而无边的非连通图T = { V, {} },图中每个顶点自成一个连通分量。在E中选择代价最小的边,若该边依附的顶点落在T中不同的连通分量上,则将此边加入到T中,否则舍去此边而选择下一条代价最小的边。依次类推,直到T中所有顶点都在同一连通分量上为止。此算法的FindInUFS函数由边数e决定,时原创 2015-05-08 16:01:53 · 734 阅读 · 0 评论 -
数据结构:最小生成树(Prim算法)
算法思想: 假设N = ( p, {e} )是连通图,TE是N上最小生成树中边的集合。算法从U = { u0 } ( u0 ∈ V )开始。重复执行下述操作:在所有u∈U,v ∈V - U的边(u,v)∈E中找一条代价最小的边(u0, v0 )并入集合TE, 同时v0并入U,直到U = V为止。此时TE中必有n-1条边,则T = ( V, {TE} )为N的最小生成树。原创 2015-05-08 15:59:48 · 603 阅读 · 0 评论 -
数据结构:图(邻接表存储 c++实现)
#include #include #include using namespace std;#define MAXVEX 10#define INFINITY 0XFFFFFFFF#define SUCCESS 1#define UNSUCCESS 0typedef int Status;bool visited[MAXVEX]; //全局数组,记录结点是否已补访问typ原创 2015-05-08 15:12:23 · 14276 阅读 · 0 评论 -
数据结构:图的邻接表存储表示
/*******************************************************************程序:图的邻接表存储表示完成时间:2013年6月10号完成者:小单********************************************************************/原创 2015-05-08 15:08:30 · 1305 阅读 · 0 评论 -
数据结构:图的邻接矩阵存储实现
/******************************************************程序:图的邻接矩阵存储实现完成者:小单完成时间:2013年5月31日*******************************************************///测试#include原创 2015-05-08 15:08:01 · 2431 阅读 · 0 评论 -
数据结构:矩阵的压缩存储(特殊矩阵)
// 对称矩阵的压缩存储/* 满足a[i][j] = a[j][i] 0 <= i,j <= n-1,则称为对称矩阵 对于对称矩阵,我们可以为每一对对称元分配一个存储空间,则可将n^2个元压缩成n(n+1)/2个元的空间中。不失一般性,我们可以以行序为主序存储其下三角(包括对角线)中的元。 假设以一维数组原创 2015-05-08 13:45:20 · 1921 阅读 · 0 评论 -
数据结构:串的顺序存储实现
/****************************************************************************** 程序功能:串的顺序存储实现 时间:2013年4月21日*******************************************************************************原创 2015-05-08 13:40:40 · 952 阅读 · 0 评论 -
数据结构:哈希表(除留取余法--线性探测法)
#include #include using namespace std;#define SUCCESS 1#define UNSUCCESS 0#define HASHSIZE 12#define NULLKEY 0xffffffff/2typedef struct { int *elem; int count;}HashTable;typedef int Sta原创 2015-05-08 23:10:46 · 8744 阅读 · 0 评论 -
数据结构:无向图的邻接多重表存储表示 (c实现)
/*******************************************************************程序:无向图的邻接多重表存储表示完成时间:2013年6月11日完成者:小单*******************************************************************原创 2015-05-08 15:57:57 · 3231 阅读 · 0 评论 -
数据结构:图(十字链表存储 c++实现)
/************************************************************************************ 十字链表结构:主要针对的是有向图进行的存储优化对于有向图来说,邻接表是有缺陷的。关心了出度问题,想了解入度就必须要遍历整个图才能知道,反之,逆邻接表解决了入度却不了角出度的情况。有没有可能把邻接表与逆邻接表结合起来呢?原创 2015-05-08 15:15:05 · 2278 阅读 · 3 评论 -
数据结构:图(邻接多重表存储 c++实现)
/*********************************************************************************************** 邻接多重表结构:主要针对的是无向图进行的存储优化如果我们在无向图的应用中,关注的重点是顶点,那么邻接表是不错的选择,但如果我们更关注边的操作,比如对已访原创 2015-05-08 15:55:40 · 3631 阅读 · 0 评论 -
数据结构:静态查找表(线性链表)
/*********************************************************** 程序:静态查找表(线性链表) 完成时间:2013年9月10号 作者:Shanql************************************************************/ #includ原创 2015-05-08 22:59:08 · 648 阅读 · 0 评论 -
数据结构:斐波那契查找原理解析
//原文来自:http://blog.chinaunix.net/uid-27164517-id-3313988.html#include #include #define MAXSIZE 13void Fibonacci(int *f){ f[0] = 1; f[1] = 1; for (int i = 2; i < MAXSIZE; i++) { f[i] = f转载 2015-05-08 23:03:45 · 3711 阅读 · 2 评论 -
数据结构:直接插入排序
void InsertSort( int src[], int len ){ for ( int i = 1; i < len; ++i ) { if ( src[i] < src[i-1] ) { int temp = src[i]; int j = i-1; for ( ; j >= 0 && src[j] > temp; --j ) { src[原创 2015-05-08 23:13:11 · 611 阅读 · 0 评论 -
数据结构:回溯法与树的遍历
求含n个元素的集合的幂集(具体参见严蔚敏《数据结构》6.7节)///////////////////////////////////////回溯法求幂集(深度优先遍历解空间)#include #include using namespace std;void GetPowerSet( const vector& SrcVec, vector& DstVec, int i )原创 2015-06-29 14:44:04 · 2019 阅读 · 0 评论 -
数据结构:哈希表(除留取余法--链地址法)
#include using namespace std;//哈希函数的构造方法:除留取余法//处理冲突机制:链地址法typedef struct _NODE{ int key; struct _NODE* next;}_NODE;typedef struct Hash_Table{ _NODE* pChainHash[13];}Hash_Table;//初始化哈原创 2015-05-08 23:09:14 · 4425 阅读 · 0 评论 -
数据结构:平衡二叉树(AVL树)
#include using namespace std;#define EH 0 //等高#define LH 1 //左高#define RH -1 //右高typedef struct TNode{ int data; int bf; struct TNode* lchild; struct TNode* rchild;}BiTree;void L_Rotate(原创 2015-05-08 23:07:41 · 475 阅读 · 0 评论 -
数据结构:数组的顺序存储实现
/*********************************************************************** 程序功能: 数组的顺序存储实现************************************************************************/#include #include #include原创 2015-05-08 13:44:38 · 2348 阅读 · 0 评论 -
数据结构:稀疏矩阵的十字链表存储
//-----------------稀疏矩阵的十字链表存储-------------------#include #include using namespace std;typedef int ElemType;typedef struct CLNode{ int row; int col; ElemType e; struct CLNode* right;//指向同一原创 2015-05-08 13:49:07 · 1186 阅读 · 0 评论 -
数据结构:栈的顺序存储实现
/**************************************************************************************************************** 程序:栈的顺序实现 作者:小单 完成时间:2013年4月24****************************原创 2015-05-08 13:53:19 · 446 阅读 · 0 评论 -
数据结构:树--孩子兄弟表示法
/***************************************************程序:树--孩子兄弟表示法完成者:小单完成时间:2013年5月23日****************************************************///测试#include #includ原创 2015-05-08 14:57:22 · 8982 阅读 · 0 评论 -
数据结构:静态链表
#include using namespace std;//线性表静态存储结构#define MAXSIZE 1000 //假设链表的最大长度为1000typedef int ElemType;typedef struct { ElemType data; int cur; //游标(Cursor),为0时表示无指向}StaticLinkList[MAXSIZE];//原创 2015-05-08 15:03:02 · 475 阅读 · 0 评论 -
数据结构:最短路径(Dijkstra c++实现)
#include #include #include #include using namespace std;#define MAXSIZE 10 //顶点最大个数typedef string VertexType; //顶点类型typedef int EdgeType; //权值类型,有向图(0,1),无向图(权值,无穷大)#define INFINITY 0xffff原创 2015-05-08 16:03:36 · 3305 阅读 · 1 评论 -
数据结构:静态查找表(顺序表)
#include #include #define OVERFLOW -2#define FALSE 0#define TRUE 1typedef int Status;typedef int IndexOfKey; //关键字为整型typedef int KeyType;原创 2015-05-08 22:57:49 · 3520 阅读 · 0 评论 -
数据结构:二叉排序树
#include #include using namespace std;typedef int ElemType;struct BiTree{ElemType key;BiTree* lchild;BiTree* rchild;};bool SearchBiSortTree( BiTree* &T, const ElemType &k原创 2015-05-08 23:01:08 · 743 阅读 · 0 评论 -
数据结构:稀疏矩阵的三元组顺序表
//----------------稀疏矩阵的三元组顺序存储表示-------------------//按行序优先存储#include #include using namespace std;#define MAXSIZE 2000 //假设非零元个数的最大值为2000,动态分配更好一些,这里只是做个测验typedef int ElemType;typedef struct原创 2015-05-08 13:48:49 · 3598 阅读 · 0 评论