数据结构
jenny6j
这个作者很懒,什么都没留下…
展开
-
红黑树
引言: 目前国内图书市场上,抑或网上讲解红黑树的资料层次不齐,混乱不清,没有一个完整而统一的阐述。而本人的红黑树系列四篇文章(详见文末的参考文献),虽然从头至尾,讲的有根有据,层次清晰,然距离读者真正做到红黑树了然于胸,则还缺点什么。 而我们知道,即便在经典的算法导论一书上,也没有把所有的插入、删除情况一一道尽,直接导致了不少读者的迷惑,而我的红黑树系列第4篇文章:一步一图一代转载 2013-06-16 20:54:57 · 491 阅读 · 0 评论 -
list 删除问题
问题的引出:一个关于list::erase()的问题。 写了个小程序试验list在erase一个成员之后iterator 值的变化,程序中注释部分是运行结果显示的数据,代码如下(主要代码): list::iterator It; for(It = myList.begin(); It != myList.end(); ) { cout //转载 2013-07-28 21:41:53 · 598 阅读 · 0 评论 -
二叉树的遍历
树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用。 二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2的 i -1次方个结点;转载 2014-04-10 10:56:42 · 510 阅读 · 0 评论 -
判断单链表是否有环
给定一个单链表,只给出头指针h: 1、如何判断是否存在环? 2、如何知道环的长度? 3、如何找出环的连接点在哪里? 4、带环链表的长度是多少? 解法: 1、对于问题1,使用追赶的方法,设定两个指针slow、fast,从头指针开始,每次分别前进1步、2步。如存在环,则两者相遇;如不存在环,fast遇到NULL退出。 2、对于问题2,记录下问题1的碰转载 2014-04-12 21:46:27 · 722 阅读 · 0 评论 -
有关数组的面试题
数组是最基本的数据结构,关于数组的面试题也屡见不鲜,本文罗列了一些常见的面试题,仅供参考,如果您有更好的题目或者想法,欢迎留言讨论。目前有以下18道题目,如有好的题目,随时更新。 数组求和 求数组中的最大值和最小值 求数组中的最大值和次大值 求数组中出现次数超过一半的元素 求数组中元素的最短距离 求两个有序数组的共同元素 求三个数组的共同元素 找出数组中唯一重复的元素转载 2014-04-12 21:48:11 · 918 阅读 · 0 评论 -
二叉树的遍历(递归,非递归,层次)
#include #include //STL #include using namespace std; class Tree { public: Tree *Left; Tree *Right; char data; Tree(); //成员函数 void CreateTree(Tree* &node); //递归的遍历二叉树 void PreOrderVi转载 2014-06-19 18:08:37 · 480 阅读 · 0 评论