数据结构
文章平均质量分 68
S110201010
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
哈希表
/** * 哈希表槽的数据结构 */ typedef struct Bucket { char *key; void *value; struct Bucket *next; } Bucket; /** * 哈希表数据结构 */ typedef struct HashTable { int size; // 哈希表大小 in转载 2013-09-18 14:54:57 · 793 阅读 · 0 评论 -
c++类库
原文出处:http://www.cnblogs.com/wangjijian/archive/2012/02/08/2343187.html基础类1、 Dinkumware C++ Library参考站点:http://www.dinkumware.comP.J. Plauger编写的高品质的标准库。P.J. Plauger博士是Dr. Dobb's程序设计杰出奖的获得转载 2013-09-24 14:59:05 · 821 阅读 · 0 评论 -
SQL索引学习-索引结构
前一阵无意中和同事讨论过一个SQL相关的题(通过一个小问题来学习SQL关联查询),很惭愧一个非常简单的问题由于种种原因居然没有回答正确,数据库知识方面我算不上技术好,谈起SQL知识的学习我得益于2008年进的一家公司,有几个DBA技术相当专业,正好手上有一个项目遇到了一些数据库查询性能问题,就试着想办法优化,于是自己将相法和DBA沟通后,居然得到了他们的赞同,让我信心大增,后来一段时间我又主动找他转载 2013-09-24 16:46:21 · 807 阅读 · 0 评论 -
指针-笔试
记录一些记忆不清楚的知识点,都是基础的东西,必须要牢记!!!1)register变量,必须是被cpu所接收的变量类型,必须是一个单个的值,长度应该小于或等于int。register变量可能不放在内存中,所以用&来取其地址是不行的。2)计算机中,数值一律使用补码来存储,因为补码可以处理符号和负数。3)布尔变量与0比较:bool bFlag = false; if转载 2013-09-25 19:09:33 · 674 阅读 · 0 评论 -
#define and typedef
1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如: #define PI 3.1415926 程序中的:area=PI*r*r 会替换为3.1415926*r*r 如果你把#define语句中的数字9 写成字母g 预处理也照样带入。 2)typedef是在编译时处转载 2013-09-25 20:30:05 · 696 阅读 · 0 评论 -
define and typedef
1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如: #define PI 3.1415926 程序中的:area=PI*r*r 会替换为3.1415926*r*r 如果你把#define语句中的数字9 写成字母g 预处理也照样带入。 2)typedef是在编译时处转载 2013-09-25 19:23:07 · 672 阅读 · 0 评论 -
C++/C 面试
目录(?)[+]Reference:http://blog.youkuaiyun.com/jingxuewang110/article/details/67895571.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应,free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++转载 2013-09-25 19:51:30 · 3034 阅读 · 0 评论 -
堆与栈
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会转载 2013-09-26 10:22:19 · 523 阅读 · 0 评论 -
hash冲突
一、冲突是如何产生的?哈希函数是指如何对关键字进行编址的规则,这里的关键字的范围很广,可视为无限集,如何保证无限集的原数据在编址的时候不会出现重复呢?规则本身无法实现这个目的。举一个例子,仍然用班级同学做比喻,现有如下同学数据张三,李四,王五,赵刚,吴露.....假如我们编址规则为取姓氏中姓的开头字母在字母表的相对位置作为地址,则会产生如下的哈希表位置字转载 2013-10-14 10:22:51 · 729 阅读 · 0 评论 -
二叉树 面试
树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的题目基本都可以用递归思想解决,当然有些题目非递归解法也应该掌握,如非递归遍历节点等等。本文努力对二叉树相关题目做一个较全的整理总结,希望对找工作的同学有所帮助。转载 2013-10-14 10:30:21 · 554 阅读 · 0 评论 -
浅析Linux系统启动过程剖析
Linux启动过程的剖析能帮助那些想深入学习Linux用户建立一个相关Linux启动过程的清晰概念,进而可以进一步研究Linux接下来是如何工作的。 Linux启动过程如下:当用户打开PC的电源,BIOS开机自检,按BIOS中设置的启动设备(通常是硬盘)启动,接着启动设备上安装的引导程序lilo或grub开始引导Linux,Linux首先进行内核的引导,接下来执行init程序,init转载 2013-10-16 21:58:52 · 646 阅读 · 0 评论 -
前、中、后缀表达式
它们都是对表达式的记法,因此也被称为前缀记法、中缀记法和后缀记法。它们之间的区别在于运算符相对与操作数的位置不同:前缀表达式的运算符位于与其相关的操作数之前;中缀和后缀同理。举例:(3 + 4) × 5 - 6 就是中缀表达式- × + 3 4 5 6 前缀表达式3 4 + 5 × 6 - 后缀表达式中缀表达式(中缀记法)中缀表达式是一种通用的算术或逻辑公式表示方法转载 2013-09-24 14:50:30 · 1096 阅读 · 0 评论 -
SQL索引学习-聚集索引
这篇接着我们的索引学习系列,这次主要来分享一些有关聚集索引的问题。上一篇SQL索引学习-索引结构主要是从一些基础概念上给大家分享了我的理解,没有实例,有朋友就提到了聚集索引的问题,这里列出来一下:其实,我想知道的就是对于一个大数据量的表,我应该用哪种索引,各有什么优缺点。如果能带一两个实例,就更perfect了。看过很多这样文章,但具体还是不知道如何设计表和优化,比如:聚集和非聚集,转载 2013-09-24 16:44:11 · 668 阅读 · 0 评论 -
锁、游标、索引
锁 锁的模式 锁模式描述共享(S)用于不更改或不更新数据(只读操作),如SELECT语句更新(U)用于可更新的资源中。防止当多个会话在读取、锁定以及随后可能进行的资源更新时发生常见形式的死锁。排它(X)用于数据修改操作,例如INSERT、UPDATE或DELETE。转载 2013-09-24 16:42:38 · 1599 阅读 · 0 评论 -
malloc,calloc,realloc,free
在进行C/C++编程的时候,需要程序员对内存的了解比较清楚,经常需要操作的内存可分为下面几个类别: 1.堆栈区(stack):由编译器自动分配与释放,存放函数的参数值,局部变量,临时变量等等,它们获取的方式都是由编译器自动执行的; 2.堆区(heap):一般由程序员分配与释放,如果编程者不释放,程序结束时可能由操作系统回收(注意:C/C++没有这种回收机制,但Java/C#有)转载 2013-09-18 15:07:31 · 729 阅读 · 0 评论 -
Trie树
Trie树是前缀树,是指的对于一个节点的所有子节点具有相同的前缀。通常使用在字符串检索,经典使用场景是在搜索提示中对用户搜索词的提示,根据用户当前输入的搜索词查看有那些词语的前缀和你的输入是一样的,参考wiki;可以用于在在切词分词中用来保存词库的数据结构。对一篇文章进行切词分词的时候,通过与词库对比查找得出要如何切词,切词分词的简单介绍。和Trie相关的另一种数据结构就是后缀树。后缀树是具有转载 2013-10-07 14:42:38 · 619 阅读 · 0 评论 -
哈弗曼——笔试
哈弗曼编码几乎是所有压缩算法的基础,其实这个算法并不复杂,简单的理解就是,如何用更短的bit来编码数据。 我们知道普通的编码都是定长的,比如常用的ASCII编码,每个字符都是8个bit:字符编码A00101001B00101010C00101011…… 这样,计算机就能很方便的把转载 2013-10-08 11:18:28 · 666 阅读 · 0 评论 -
笔面试
1.变量名的存放位置参考自:http://blog.youkuaiyun.com/xzcdcln/article/details/88710072.重载和重写的区别参考自:http://android.blog.51cto.com/268543/531813.cookie和session的区别参考自:http://www.cnblogs.com/shiyangxt/articles/130转载 2013-10-08 15:03:13 · 561 阅读 · 0 评论 -
海量数据处理面试题
教你如何迅速秒杀掉:99%的海量数据处理面试题作者:July出处:结构之法算法之道blog前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。转载 2013-10-08 15:45:17 · 668 阅读 · 0 评论 -
循环队列——笔试题
线性结构的两种常见应用之一 队列一, 定义 一种可以实现"先进先出"的存储结构. 两端操作, 一端只能入, 另一端只能出 补充: front : 队首 rear : 队尾 入队 : 队尾操作 出队 : 队首操作 二, 分类 1, 链式队列[链表]转载 2013-10-08 11:16:39 · 2026 阅读 · 0 评论 -
笔试题
1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要转载 2013-10-08 15:40:36 · 1145 阅读 · 0 评论 -
B-tree and B+tree
1 .B-树定义B-树是一种平衡的多路查找树,它在文件系统中很有用。定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树:⑴树中每个结点至多有m 棵子树;⑵若根结点不是叶子结点,则至少有两棵子树;⑶除根结点之外的所有非终端结点至少有[m/2] 棵子树;⑷所有的非终端结点中包含以下信息数据: (n,A0,K1,A1,K2,…,Kn,A转载 2013-09-24 10:59:38 · 869 阅读 · 0 评论 -
Trie树
Trie树|字典树的简介及实现Trie,又称字典树、单词查找树,是一种树形结构,用于保存大量的字符串。它的优点是:利用字符串的公共前缀来节约存储空间。相对来说,Trie树是一种比较简单的数据结构.理解起来比较简单,正所谓简单的东西也得付出代价.故Trie树也有它的缺点,Trie树的内存消耗非常大.当然,或许用左儿子右兄弟的方法建树的话,可能会好点.其基本性质可以归纳为:1. 根节点转载 2013-09-24 15:59:17 · 537 阅读 · 0 评论 -
触发器、存储过程、表变量、临时表
触发器 触发器的基础知识create trigger tr_name on table/view {for | after | instead of } [update][,][insert][,][delete] [with encryption] as {batch | if update (col_name) [{and|or} update (col_name)] }转载 2013-09-24 16:40:35 · 748 阅读 · 0 评论 -
strcmp
#include #include using namespace std; int mystrcmp(const char *str1, const char *str2){ assert(str1 != NULL && str2 != NULL); if(str1 == str2){ return 0; } // 这里的*转载 2013-10-23 20:24:51 · 699 阅读 · 0 评论
分享