码迷,mamicode.com
首页 >  
搜索关键字:单链表    ( 2784个结果
算法之 有序链表和平衡二叉树
题目描述: Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST. 给定一个有序的链表,要求构建一颗平衡二叉查找树。 解析:二叉查找树的中序遍历的结构就是一颗二叉查找树,要使得最终的二叉查找树的结构尽可能的平衡,也就是说只需要...
分类:其他好文   时间:2014-08-23 23:02:31    阅读次数:389
约瑟夫环
约瑟夫环,已知n个人,(编号从1、2、3、4......n),围在一张圆桌上,从编号为startnum的人开始报数,报到outnum的人出列,接着从下一个人开始从1报数,数到outnum的人又出列;依次规律重复下去,知道所有人全部出列,请写出出列的依次序号数。 这是一个约瑟夫环问题,用单链表来...
分类:其他好文   时间:2014-08-23 21:37:11    阅读次数:273
单链表逆序或者逆序输出
分为两种情况,一种是只逆序输出,实际上不逆序;另一种是把链表逆序。********************逆序输出*********************** 1 #include 2 #include 3 #include 4 using namespace std; 5 6 7 typed.....
分类:其他好文   时间:2014-08-22 19:26:19    阅读次数:230
最近公共祖先
参考文献1 参考文献2 题目:输入二叉树中的两个结点,输出这两个结点在数中最低的共同父结点 变种一:二叉树是二分查找树,如果根节点比两个节点都小,则访问右子树,都大则访问左子树,否则即为结果 变种二:每个节点有指向父节点的指针,则转变为查找两个单链表的第一个公共节点 变种三:对于普通二叉树,下面给出两种方法 方法一:二叉树的后序遍历,先看节点是否在左子树,再看右子树,然后根据左右子...
分类:其他好文   时间:2014-08-21 17:22:34    阅读次数:197
009实现一个算法来删除单链表中的一个结点,只给出指向那个结点的指针(keep it up)
呵呵,这个题不能直接删除已知的结点,因为是单链表,不知道前驱,只知道 后继结点,直接删除会使链表断开。不过我们可以删除已知结点的后继结点, 把后继结点的值赋值给已知结点。 #include struct Node { int data; Node* next; }; bool removeNode(Node* vNode) { if (vNode == NULL || vNo...
分类:其他好文   时间:2014-08-20 01:25:45    阅读次数:174
我要好offer之 搜索算法大总结
1. 二分搜索详见笔者博文:二分搜索的那些事儿,非常全面2. 矩阵二分搜索(1) 矩阵每行递增,且下一行第一个元素大于上一个最后一个元素(2) 矩阵每行递增,且每列也递增3. DFS 深度优先搜索适用场景:(1) 输入数据:如果是 递归数据结构(如单链表、二叉树),则一定可以使用DFS(2) 求解目...
分类:其他好文   时间:2014-08-19 16:12:34    阅读次数:207
实现一个算法从一个单链表中返回倒数第n个元素(keep it up)
我们维护两个指针, 它们之间的距离为n。然后,我将这两个指针同步地在这个单链表上移动,保持它们的距离 为n不变。那么, 当第二个指针指到空时,第一个指针即为所求。 #include struct Node { int data; Node* next; }; void initList(Node* vNode) { for (int i=0; i < 20; ++i) {...
分类:其他好文   时间:2014-08-19 01:00:33    阅读次数:257
AVL树
当二叉树在某些情况下退化为类单链表时,它的查找、插入、删除运算复杂度将不再是O(logN)),解决问题的方法就是尽量维持树的平衡。节点的平衡因子定义为左子树高度减去右子树高度,AVL树中每个节点平衡因子为0,1,-1;具体代码: 1 #include 2 #include 3 using na...
分类:其他好文   时间:2014-08-17 17:01:22    阅读次数:323
单向链表模拟
为什么出这个真理文档呢?方面以后我们的视频不断跟进,高级部分关于JDK源码的学习,所以有些基本的思维要叙述一下,包括AQS,常用数据结构,线程等等。这一个帖子主要是我以前写的模拟常用数据结构的代码,可能有些bug 并且不规范,但是重在学习思维.并没有JDK源码部分考虑多,只是简单的写了一点.分享给大家,关于线程同步器的学习我觉得先会用  然后看源码,接着模拟.好开始数据结构了. 注意:在java...
分类:其他好文   时间:2014-08-17 13:07:42    阅读次数:293
双向链表模拟
我们熟悉了java单向链表的模拟,现在我就必须开始双向链表的模拟的. 1.基础结构对象DuLNode public class DuLNode { private Object data;// 存放结点值 private DuLNode prior; // 前驱结点的引用 private DuLNode next; // 后继结点的引用 public DuLNode()...
分类:其他好文   时间:2014-08-17 13:07:32    阅读次数:278
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!