C语言
文章平均质量分 68
给思维做按摩
这个作者很懒,什么都没留下…
展开
-
基本数据结构之AVL树-简单实现
一、AVL 简介 AVL树是一种平衡的BST,关于BST,参看另一篇博文 AVL树的平衡因子的计算公式为:factor = height(lchild) - height(rchild); 在AVL树中,每个结点的平衡因子不超过1。在实际应用中,尽管结点的平衡因子能够通过它的子树计算出来,但是结点的平衡因子一般是存储在结点信息中的。 在一颗包含N个结点的AV原创 2013-08-26 11:08:09 · 687 阅读 · 0 评论 -
程序员面试100题---3.求子数组的最大和
程序员面试100题---3.求子数组的最大和 问题描述: 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10,-4, 7, 2, 因此输出为该子数组的和18。 问题分析:原创 2013-08-30 20:05:21 · 558 阅读 · 0 评论 -
基本数据结构之最大堆最小堆
基本数据结构之最大堆最小堆 堆是这样的一种数据结构,原创 2013-08-30 19:22:10 · 1721 阅读 · 0 评论 -
程序员面试100题---4.在二元树中找出和为某一值的所有路径(树)
4.在二元树中找出和为某一值的所有路径(树) 输入一个整数和一棵二元树。 从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。 打印出和与输入整数相等的所有路径。 例如输入整数22和如下二元树 10 / / 5 12 / / 4 7 则打印出两条路径:10, 12和10, 5, 7。 -------------原创 2013-08-30 20:02:22 · 546 阅读 · 0 评论 -
程序员面试100题---2.设计包含 min 函数的栈
----------------------------------------------------------------------------------- 2、如题 ,设计包含min函数的栈 首先给大家介绍下栈的概念,栈也是一种线性表,和顺序表类似,只不过栈是一种插入和删除元素只能在头部进行的特殊线性表,元素的操作顺序是:后进先出(LIFO)。 栈的实现方式有原创 2013-08-27 16:09:12 · 840 阅读 · 0 评论 -
程序员面试100题---1.把二元查找树转变成排序的双向链表
1.把二元查找树转变成排序的双向链表 输入:一颗二元查找树,将该二元查找树转换成一个排序的双向链表,要求不能创建任何新的结点,只能调整指针的方向。 在这里要明白几个概念 什么是二元查找数: 它首先要是一棵二元树,在这基础上它或者是一棵空树;或者是具有下列性质的二元树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根原创 2013-08-27 09:49:45 · 781 阅读 · 0 评论 -
基本数据结构之Binary Search Tree
一、二叉查找树的实现(C) 1)二叉查找树的结点结构 typedef struct node{ int data; struct node* lchild; struct node* rchild;} BSTnode; 2)创建一个新结点 BSTnode* create_node(int data){ BSTnode *new_no原创 2013-08-26 09:50:59 · 820 阅读 · 0 评论 -
BitHacks--位操作技巧
-------------------------------------------------------------------------------------------------------------------------------------------------------------- 本博文,介绍了10种位运算操作的小技巧!希望能够对你有所帮助!翻译 2013-08-26 22:06:18 · 1863 阅读 · 0 评论 -
基本数据结构之AVL树
AVL树即自平衡二叉查找树。在AVL树中,任何两个结点的两个子树的高度最大差别为1,所以AVL树也被称为高度平衡树。 AVL树在插入和删除和查找的时间复杂度在平均和最坏情况下都是O(log N),插入和删除需要通过1次或者多次旋转重新使树达到平衡。 怎么判断AVL树是平衡的呢?需要通过平衡因子来来判断,结点的平衡因子是是它的左子树高度减去右子树高度.平衡因子为1、0、-1的结点是平衡的。反之,原创 2013-08-25 15:29:06 · 625 阅读 · 0 评论 -
经典排序之插入排序
一、插入排序 它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 插入排序的算法描述: 从第一个元素开始,该元素可以认为已经被排序取出下一原创 2013-08-25 07:47:52 · 436 阅读 · 0 评论 -
C指针复习有感
阴雨连绵,不能外出,只好窝在家里看书! 看啥呢!想起多年的C语言!想到了C里的指针!忘的差不多了,于是找了些资料看看!发现真忘的差不多了! 所以整理下在阅读资料的基础上关于C指针的知识吧! 这里权当自己做个笔记了!如果哪位同学搜到了本篇博文,能够获得一点帮助或启迪!那就最好不过了!原创 2013-08-24 21:01:15 · 699 阅读 · 0 评论 -
程序员面试100题---5.查找最小的k个元素
5.查找最小的k个元素(数组) 题目:输入n个整数,输出其中最小的k个。 例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。 分析:此题可以通过构造一个含有K个元素的最大堆来实现。然后通过不断的和堆顶元素比较,来找出最小的k个数。 -----------------------------------------------------------------原创 2013-08-30 20:01:31 · 635 阅读 · 0 评论