数据结构
文章平均质量分 82
尘埃092
这个作者很懒,什么都没留下…
展开
-
单链表队列
#include #include #include #define STACK_SIZE 100 #define STACK_INCREASE 10 #define OK -100 #define ERROR -1 //-------------------------------------------------------------------------- typedef int原创 2012-09-03 23:23:04 · 467 阅读 · 0 评论 -
最小生成树prim算法
#include #include #include #include #define INFINITY 30000 //定义一个权值的最大值 #define MAX_VERTEX_NUM 20 // 图的最大顶点数 typedef struct { int arcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; // 邻接矩阵 int vexnum,ar原创 2012-09-13 22:46:40 · 815 阅读 · 0 评论 -
堆分配表示串
//version 2 //因为strlen 求的字符串不包括'\0' 但后面的一些concat函数是连'\0'一块算上的,所以这个写的有点小混乱.... // 如果按书上的方法求长度------for( i = 0, c = chars; c; ++i, ++c ); 应该没有问题 #include #include #include #include #define OK -100 #原创 2012-04-20 17:43:04 · 531 阅读 · 0 评论 -
二叉树递归建立--深搜+宽搜遍历
/*输入文件自己建立*/ #include #include #include #define max 100 int x; char ans[max]; typedef struct Tree { char val; struct Tree* pl; struct Tree* pr; }*T; T createtree( T p ) { char ch; scanf( "%c"原创 2012-12-13 15:31:36 · 693 阅读 · 0 评论 -
快速排序
//一直都用的C标准库的快排,今天自己手打一遍,看看到底自己退化了没有....好吧。经典的分治思想,时间复杂度应该是 T(n) = Cn + T(k) + T( n-k) k 为枢轴 #include #include int a[10] = { 1, 10, 3, 9, 18, 2, 7, 9, 0, 10 }; void qsort( int a[], int begin, int原创 2013-04-29 16:32:19 · 606 阅读 · 0 评论 -
优先队列——二叉堆实现
二叉堆是完全二叉树 二叉堆满足堆特性:父节点的键值总是大于或等于(小于或等于)任何一个子节点的键值,且每个节点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。 当父节点的键值总是大于或等于任何一个子节点的键值时为最大堆。 当父节点的键值总是小于或等于任何一个子节点的键值时为最小堆。 最小堆: 1 最大堆: 11 /原创 2013-05-30 21:44:38 · 1623 阅读 · 0 评论 -
一维树状数组
一维树状数组 一维数组相信大家平时都是经常使用,对于一维数组而言,查询以及求和的时间复杂度分别为O(1) 和 O(n) 。 今天我们介绍一个新的数据结构——树状数组英文名称为Binary Index Tree,直译过来就是二进制索引树,我觉得二进制索引树更能说明其本质。树状数组的本质就是一种通过二进制位来维护一个序列前i和的数据结构。它的查询和求和的时间复杂度均为原创 2013-05-30 20:54:13 · 829 阅读 · 0 评论 -
二叉树的非递归遍历——java实现
import tree.Tree; public class Main { public static void main(String[] args) { Tree left = new Tree(2,null,null); Tree right = new Tree(3,null,null); Tree head = new Tree(1原创 2015-03-24 18:11:02 · 806 阅读 · 0 评论