1 public class LinkNode { 2 public String data; 3
public LinkNode next; 4 5 LinkNode(){ 6 this.data = "a"; 7 this.ne...
分类:
编程语言 时间:
2014-05-10 08:21:14
阅读次数:
360
栈(操作系统):由编译器自动分配释放
,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放堆(操作系统):
一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。堆则是存放在二...
分类:
其他好文 时间:
2014-05-10 05:27:11
阅读次数:
294
判断单链表是否有环两个指针分别为p1和p2,每循环一次只向前走一步,p2向前走两步,知道p2碰到NULL指针或者两个指针相等则说明有环如果存在,start存放在圆环开始的节点bool
IsLoop(node *head,node *start){node *p1=head,*p2=head;if(h...
分类:
其他好文 时间:
2014-05-10 00:22:22
阅读次数:
272
在java/C#中都有类的反射,而C下是不存在的。
java/C#中可以把表设计成类,而C下只能设计成结构体形式。
在java中有hibernate来操作数据库,但是在C下面怎么设计好呢?对此,我有了一个通用的解决方法。...
分类:
数据库 时间:
2014-05-09 22:43:03
阅读次数:
520
partition是快排的准备工作,被用在其他很多问题上,比如找满足某个条件的数之类的。
在数组中,可以一头一尾的指针依次置换,这样是不能保证源数组中的相对顺序的。链表中就不一样了,没办法拿到尾部的指针,只能从头部往后找,找到第一不满足partition条件的节点,即较大的数,然后再往后找较小数,把较小数的节点移到前面来,因此跟数组的做法还有个区别,链表的partition只有一个指针在做实际的...
分类:
其他好文 时间:
2014-05-09 20:48:28
阅读次数:
252
栈是一种基于后进先出的数据集合。用链表实现比数组实现更加高效。使用链表以及泛型机制来实现可以达到最优设计目标: (1)可以处理任意类型的数据;
(2)所需的空间总是和集合的大小成正比; (3)操作所需的时间总是和集合的大小无关。×××××××××××××××××××××××××××××××
分类:
其他好文 时间:
2014-05-09 16:19:03
阅读次数:
325
翻转链表绝对是终点项目,应该掌握的,这道题要求的是翻转一个区间内的节点,做法其实很相似,只不过要注意判定开始是头的特殊情况,这样head要更新的,还有就是要把翻转之后的尾部下一个节点保存好,要么链表就断掉了。一趟就可以,遇到节点直接翻转,最后把整个翻转的链表再翻转一次,就实现了。
class Solution {
public:
ListNode *reverseBetween(List...
分类:
其他好文 时间:
2014-05-09 15:05:06
阅读次数:
225
例:已知两个单链表head1和head2各自有序升序排列,请把他们合并成一个连表并依然有序,并保留原来所有节点
假设以下两个链表:
链表1:1->3->5
链表2:2->4->6
(1)比较1和链表2的第一个节点数据,由于15)和链表2在调用本过程,比较得到结果链表的第二个节点,即2与3比较得到2,此时合并后的链表节点为1->2,这样
递归知道两个链表的节点都被加到结果链表中。...
分类:
其他好文 时间:
2014-05-09 15:04:40
阅读次数:
374
判断单链表是否有环
假设两个指针分别为p1和p2,每循环一次只向前走一步,p2向前走两步,知道p2碰到NULL指针或者两个指针相等则说明有环
如果存在,start存放在圆环开始的节点...
分类:
其他好文 时间:
2014-05-09 14:12:54
阅读次数:
273
例:已知两个单链表head1和head2各自有序升序排列,请把他们合并成一个连表并依然有序,并保留原来所有节点假设以下两个链表:链表1:1->3->5链表2:2->4->6(1)比较1和链表2的第一个节点数据,由于15)和链表2在调用本过程,比较得到结果链表的第二个节点,即2与3比较得到2,此时合并...
分类:
其他好文 时间:
2014-05-09 13:08:43
阅读次数:
283