随笔分类 -  数据结构

摘要:有1千万条短信,有重复,以文本文件的形式保存,一行一条,有重复。请用5分钟时间,找出重复出现最多的前10条。[中国某著名互联网公司2010年5月笔试题] 解析:对于本题来说,某些面试者想用数据库的办法实现:首先将文本导入数据库,再利用select语句某些方法得出前10条短信。但是实际上用数据库是绝对 阅读全文
posted @ 2017-02-08 17:46 我有一壶酒 阅读(1119) 评论(0) 推荐(0)
摘要:用二进制来编码字符串“abcdabaa”,需要能够根据编码,解码回原来的字符串,最少需要多长的二进制字符串? A.12B.14C.18D.24解析:哈夫曼编码问题:字符串“abcdabaa”有4个a、2个b、1个c、1个d。构造哈夫曼树如下图所示。a编码0(1位),b编码10(2位),c编码110( 阅读全文
posted @ 2017-02-08 17:39 我有一壶酒 阅读(852) 评论(0) 推荐(0)
摘要:在百度或淘宝搜索时,每输入字符都会出现搜索建议,比如输入“北京”,搜索框下面会以北京为前缀,展示“北京爱情故事”、“北京公交”、“北京医院”等等搜索词。实现这类技术后台所采用的数据结构是什么?[中国某著名搜索引擎B公司2012年6月笔试题] 答案:Trie树,又称单词查找树、字典树,是一种树形结构, 阅读全文
posted @ 2017-02-08 17:38 我有一壶酒 阅读(516) 评论(0) 推荐(0)
摘要:前序遍历二叉树值为abcdefg,下面哪个不可能是中序遍历)[美国著名软件公司M2013年11月笔试题]A.abcdefgB.gfedcbaC.bcdefgaD.bceadfg解析:二叉树遍历原则如下:前序遍历是根左右,中序遍历是左根右,后序遍历是左右根。如果前序遍历二叉树值为abcdefg,那么a 阅读全文
posted @ 2017-02-08 17:34 我有一壶酒 阅读(217) 评论(0) 推荐(0)
摘要:有一个二叉搜索树用来存储字符'A', 'B', 'C','D','E','F','G','H'下面哪个结果是后序树遍历结果)[美国著名软件公司M2009年11月笔试题] A.ADBCEGFHB.BCAGEHFDC.BCAEFDHGD.BDACEFHG解析:二叉搜索树(Binary Search Tr 阅读全文
posted @ 2017-02-08 17:29 我有一壶酒 阅读(501) 评论(0) 推荐(0)
摘要:接触过编程的人都知道,高级语言都能通过变量名访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?首先,来了解一下C语言的变量是如何在内存分布的。C语言有全局变量(Global)、本地变量(Local)、静态变量(Static)和寄存器变量(Register)。每种变量 阅读全文
posted @ 2017-02-08 10:55 我有一壶酒 阅读(935) 评论(0) 推荐(0)
摘要:请讲述heap与stack的差别。 在进行C/C++编程时,需要程序员对内存的了解比较精准。经常需要操作的内存可分为以下几个类别。● 栈区(stack):由编译器自动分配和释放,存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈。● 堆区(heap):一般由程序员分配和释放,若程序员不 阅读全文
posted @ 2017-02-08 10:45 我有一壶酒 阅读(240) 评论(0) 推荐(0)
摘要:编程实现栈的入栈/出栈操作。[中国著名网络企业XL公司2007年12月面试题]答案:完整代码如下: 如下C++程序: 请问刚进入func函数时,参数在栈中的形式可为以下哪种?(左侧为地址,右侧为数据。)[中国著名网络企业XL公司2007年11月面试题] A.0x0013FCF0 0x61616161 阅读全文
posted @ 2017-02-08 10:37 我有一壶酒 阅读(328) 评论(0) 推荐(0)
摘要:编程实现队列的入队/出队操作。[美国某著名计算机嵌入式公司2005年面试题] 答案:完整代码如下: 阅读全文
posted @ 2017-02-08 10:12 我有一壶酒 阅读(165) 评论(0) 推荐(0)
摘要:已知n个人(以编号1,2,3,…,n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从K开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。试用C++编程实现。[中国著名门户网站W公司2008年面试题] 解析:本题就是约瑟夫环问题的实际 阅读全文
posted @ 2017-02-08 10:10 我有一壶酒 阅读(451) 评论(0) 推荐(0)
摘要:双链表的情况与单链表类似,只是增加了一个前置链而已。 编程实现双链表的建立。答案:完整代码如下: 阅读全文
posted @ 2017-02-08 10:08 我有一壶酒 阅读(205) 评论(0) 推荐(0)
摘要:编程实现单链表的排序。 答案:完整代码如下: 编程实现单链表的逆置。[美国某著名分析软件公司2005年面试题] 解析:单链表模型如下图所示。 进行单链表逆置,首先要让p2的next指向p1,如下图所示。 再由p1指向p2,p2指向p3,如下图所示。 然后重复p2的next指向p1,p1指向p2,p2 阅读全文
posted @ 2017-02-08 10:03 我有一壶酒 阅读(835) 评论(0) 推荐(0)
摘要:编程实现一个单链表的建立/测长/打印。[日本某著名家电/通信/IT企业面试题]答案:完整代码如下: 编程实现单链表删除节点。[美国某著名分析软件公司面试题] 解析:如果删除的是头节点,如下图所示。 则把head指针指向头节点的下一个节点。同时free p1,如下图所示。 如果删除的是中间节点,如下图 阅读全文
posted @ 2017-02-08 09:52 我有一壶酒 阅读(198) 评论(0) 推荐(0)