刚开始,我想到的是一种笨方法,先遍历单链表,计算出单链表的长度len,然后再从头遍历单链表到第len-k个节点,那么这个节点既是单链表的倒数第k个节点。
不过这种算法时间复杂度挺高的,还有一种更简单的方法,就是设置两个指针,分别指向单链表的头节点,然后让其中一个指针,先走k步,之后...
分类:
其他好文 时间:
2014-05-19 11:40:44
阅读次数:
359
出题:把二元查找树转变成排序的双向链表。输入一棵二元查找树,要求将该二元查找树按照中序转换成一个排序的双向链表,要求不能创建任何新的节点,只能调整指针的指向;分析:递归的思路,当前节点需要进行的处理,并使用递归调用和返回值将子问题链接起来;首先明白二元查找树的特性,变成有序双向链表后当前根节点的左节...
分类:
其他好文 时间:
2014-05-19 10:02:49
阅读次数:
381
1.可以将Windows窗体SplitContainer控件看作是一个复合体,它是由一个可移动的拆分条分隔的两个面板。当鼠标指针悬停在该拆分条上时,指针将相应地改变形状以显示该拆分条是可移动的。使用SplitContainer控件,可以创建复合的用户界面(通常,在一个面板中的选择决定了在另一个面板中...
分类:
其他好文 时间:
2014-05-18 20:01:35
阅读次数:
472
我们都知道指针是用来操作内存空间的,我们可以简单的拿来改变某个变量的值如:我们定义一个int
a = 5;然后定义一个指针int *p;将change(&a);利用这个调用函数change();用函数int change(int *p){*p =
10;return 1;}输出结果会是:a = 10...
分类:
其他好文 时间:
2014-05-18 02:26:42
阅读次数:
247
Felling By Ruiy:Pre-learnning link list knowloages
熟悉
指针相关操作应用+结构体数据类型应用,且能简单融合使用,堆内存(内存泄露)->类似于你使用完在食堂吃饭的饭盒,吃完饭后你把那个餐具饭盒给带走了,没还给食堂,使此饭盒没能再次被别的人使用.哎,....
分类:
其他好文 时间:
2014-05-17 21:31:32
阅读次数:
307
当我们对于内存进行手动管理的时候,会出现两种错误:一种是野指针错误,一种则为内存泄露.这两点也是我们去管理内存时最终要解决的问题.
内存泄漏是指:不在使用的对象,一直保留在内存中未被销毁,一直占有着内存,耗费内存资源直至程序结束.
野指针则是指:当一个指针指向一个对象时,此对象已经被系统回收...
分类:
其他好文 时间:
2014-05-17 21:10:52
阅读次数:
1122
id 被成为万能指针,也就是可以指向任何对象.NSObject *
本身就是定义指向NSObject类型的指针.那么这两者有什么区别吗?这两者都是既可以作为返回值,又可以作为变量修饰.而其主要区别则在于id修饰的变量不遵循协议.这在实现代理模式中会体现出其区别,例如在调用代理方法时会先判断该代理是否...
分类:
其他好文 时间:
2014-05-17 20:48:15
阅读次数:
253
/这里是链表的创建其包含的是头指针phead,头节点,以及尾节点p->next = NULL
为链表创建结束标志。/判断指针为空十分重要,当然也不能忘了释放,代码是:if(head !=NULL){free(head);head = NULL;}head
= (SLNode*)malloc(size...
分类:
其他好文 时间:
2014-05-17 19:40:54
阅读次数:
255
c++指针只能说博大精深,在用的时候感觉好晕1.指针类型转换/*在指针的强制类型转换:ptr1=(TYPE*)ptr2中,如果sizeof(ptr2的类型)大于sizeof(ptr1的类型),那么在使用指针ptr1来访问ptr2所指向的存储区时是安全的。如果sizeof(ptr2的类型)小于size...
分类:
编程语言 时间:
2014-05-17 19:08:28
阅读次数:
335
共享数据的保护:常类型 常类型的对象必须初始化,且这个值不能被更新常引用:被引用的对象不能更新
const 类型说明符 & 引用名常对象:必须进行初始化,不能更新 类名 const 对象名常数组:数组元素不能更新 类型说明符 const
数组名[大小]常指针:指向常量的指针
分类:
编程语言 时间:
2014-05-17 18:34:51
阅读次数:
215