摘要: 明,本文所有13道算法题目,覆盖了基本上所有常见的单链表问题,全都用C#实现,并测试通过,代码下载:TestLink.zip1.单链表反转2.找出单链表的倒数第4个元素3.找出单链表的中间元素4.删除无头单链表的一个节点5.两个不交叉的有序链表的合并6.有个二级单链表,其中每个元素都含有一个指向一个单链表的指针。写程序把这个二级链表称一级单链表。7.单链表交换任意两个元素(不包括表头)8.判断单链表是否有环?如何找到环的“起始”点?如何知道环的长度?9.判断两个单链表是否相交10.两个单链表相交,计算相交点11.用链表模拟大整数加法运算12.单链表排序13.删除单链表中重复的元素首先写一个单链 阅读全文
posted @ 2013-04-30 13:46 Binyao 阅读(320) 评论(0) 推荐(0)
摘要: 1. 数组在内存中栈上按顺序存储的,而链表是在堆上随机存储的。2. 要访问数组中的元素可以按下标索引来访问,速度比较快,如果对他进行插入操作的话,就得移动很多元素,所以对数组进行插入操作效率很低. 由于连表是随机存储的,链表在插入,删除操作上有很高的效率(相对数组)3. 如果要访问链表中的某个元素的话,那就得从链表的头逐个遍历,直到找到所需要的元素为止,所以链表的随机访问的效率就比数组要低 。 阅读全文
posted @ 2013-04-30 13:39 Binyao 阅读(620) 评论(1) 推荐(0)
摘要: 算法题(说明:这些题就不是什么花样了,考的是你的基础知识怎么样。再聪明而没有实学的人都将会被这些题所淘汰。)1.链表和数组的区别在哪里?2.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?3.编写实现数组排序的一种算法。说明为什么你会选择用这样的方法?4.请编写能直接实现strstr()函数功能的代码。5.编写反转字符串的程序,要求优化速度、优化空间。6.在链表里如何发现循环链接?7.给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里。8.写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?)9.给出一个函数来输出一个字 阅读全文
posted @ 2013-04-30 13:31 Binyao 阅读(233) 评论(0) 推荐(0)
摘要: 一般来说我们都是用 Hashtable 的 ContainsKey 方法来查找 Hashtable 中是否存在某个键值然后读取他,但是这个方法并不是效率最好的方法。比较好的方法是直接读取键值然后判断这个对象是否为 null 然后读取。两种代码分别如下:1.一般慢速的方法:if (objHash.ContainsKey(keyValue)){ strValue=(String)objHash[keyValue]; } 2.而快速的方法是:Object objValue=objHash[keyValue];if (objValue!=null){ strValue=(String)objVal.. 阅读全文
posted @ 2013-04-30 13:23 Binyao 阅读(492) 评论(0) 推荐(0)