
数据结构
文章平均质量分 81
csdnldsg
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
实现一些简单的单链表
以下都是对单链表一些简单的应用和对一些简单问题的解决方案。代码如下:#define _CRT_SECURE_NO_WARNINGS //vs2013中需要加的一个宏!#include#include#includetypedef int DateType;typedef struct SListNode{DateType data;struct SListNode *nex原创 2016-05-27 17:47:50 · 278 阅读 · 0 评论 -
AVLTree的实现
AVLTRee树AVLTree的性质: 1.左子树和右子树的高度之差的绝对值不超过1 2.树中的每个左子树和右子树都是AVL树 3.每个节点都有一个平衡因子(balance factor--bf),任一节点的平衡因子是-1,0,1。(每个节点的平衡因原创 2016-07-05 13:57:23 · 503 阅读 · 0 评论 -
常见的几种排序
快速排序 从数列中挑出一个元素,称为 “基准”(pivot),重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。排序效果:650) this.width=650原创 2016-05-27 17:48:42 · 408 阅读 · 0 评论 -
稀疏矩阵的转置
稀疏矩阵:M*N的矩阵,矩阵中有效值的个数远小于无效值的个数,且这些数据的分布没有规律如下图所示:650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/7F/F4/wKioL1cy2Eni9GIzAAAVBBaVJqE589.png" title="Image%20[1].png" alt="wKioL1cy2Eni9GIzAAAVBB原创 2016-05-27 17:48:39 · 540 阅读 · 0 评论 -
广义表的实现
广义表:非线性结构,是线性表的一种扩展,是有n个元素组成有限序列,是递归的,因为在表的描述中又得到了表,允许表中有表。650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/7F/F7/wKiom1cy0cyR8BzjAAAleKfPNuM552.png" title="MVSKD$@0_J5SWRUE{_]IFDM.png" alt="原创 2016-05-27 17:48:36 · 356 阅读 · 0 评论 -
迷宫的实现
问题描述:实验心理学中的一个典型的问题,心理学家吧一只老鼠从一个无顶的大盒子的入口处赶进迷宫。迷宫设置很多隔壁,对前进方向形成了许多障碍,心理学家在迷宫的唯一出口处放置了一块奶酪,吸引老鼠仔迷宫中寻找通路以到达出口。 求解思想:回溯法是一种不断试探且及时纠正错误的搜索方法,下面的求解过程采用回溯法。从入口出发,按某一方向向前探索,若能走通(未走过的),即某处可以到达,则到达一个新点,否则试探下一原创 2016-05-27 17:48:33 · 517 阅读 · 0 评论 -
哈希表
哈希表:不同的Key值经过哈希函数Hash(Key)处理以后可能产生相同的值哈希地址,我们称这种情况为哈希冲突。所以用哈希冲突的开链法(哈希桶)进行处理,其结构如下:650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/7F/EF/wKiom1cx1Imzr3sxAAAjmbzKkKc289.png" title="Image%20[2原创 2016-05-27 17:48:30 · 278 阅读 · 0 评论 -
线索化二叉树
#define _CRT_SECURE_NO_WARNINGS 1#includeusing namespace std;enum PointerTag { THREAD, LINK }; //枚举前言:为了遍历的方便,我们在二叉树中引入前驱和后序,这样就储存了相关信息。其结构如下:650) this.width=650;" src="http://s5.51cto.com/原创 2016-05-27 17:48:26 · 260 阅读 · 0 评论 -
双向链表中基本函数的实现
#includeusing namespace std;typedef int DateType;struct ListNode { DateType _date; ListNode* _next; //前驱指针 ListNode* _prev; //后驱指针 ListNode(DateType x) //对节点进行初始化 :_date(x)原创 2016-05-27 17:48:20 · 409 阅读 · 0 评论 -
求带环的单链表入口位置处的节点
题目:如本文题目,给定一个带环的单链表,给出一个算法求链表环的入口位置处的节点。解析:这题的解决步骤如下:1.设置一个快指针fast和一个慢指针slow,它们同时从链表头开始往后遍历,快指针每次移动两个位置,慢指针每次移动一个位置2.当快指针和慢指针相遇时,将慢指针重新指向链表头3.快指针和慢指针此时在同时移动,两个指针都一次移动一个位置,当两个指针再次相遇时,指针所指的节点即入原创 2016-05-27 17:48:17 · 328 阅读 · 0 评论 -
顺序表
#define _CRT_SECURE_NO_WARNINGS#include#include#include#define MAX_SIZE 5typedef int DataType;typedef struct SeqList{ DataType array[MAX_SIZE]; size_t size;} SeqList; 打印顺序表void PrintfSe原创 2016-05-27 17:47:56 · 253 阅读 · 0 评论 -
单链表的简单应用
1.在非尾节点后插入一个节点void Insert(SListNode *&pos, DateType x) //在非尾节点后插入一个节点{if (pos == NULL){return;}SListNode *newNode = _BuyNode(pos->data);newNode->next = pos->next;pos->data = x;pos->next原创 2016-05-27 17:47:53 · 1002 阅读 · 0 评论 -
红黑树的实现
红黑树(RBT)的定义:它或者是一颗空树,或者是具有一下性质的二叉查找树:1.节点非红即黑。2.根节点是黑色。3.所有NULL结点称为叶子节点,且认为颜色为黑。4.所有红节点的子节点都为黑色。5.从任一节点到其叶子节点的所有路径上都包含相同数目的黑节点。原创 2016-06-21 15:45:08 · 390 阅读 · 0 评论