2008-1-22
1 链表
Insert 注意 插入0位置要特殊处理
指针指向插入位置的前一个。
Remove 注意 0位置和最后一个位置要特殊处理
两个指针,一个指向插入位置前一个,一个指向插入位置前两个
运用:
箱子排序:
int a[10] = {2,6,7,5,6,6,7,8,9,3};
0
1
2 元素0
3 元素9
4
5
6 元素1,元素4,元素5...
*****************************************************
2008-1-23
循环链表,基本上和链表相似,
1 少了尾节点的判断。
2 Remove的时候,0位置的判断。
运用:
Josephy 问题概述: 假设有N个人坐在圆桌周围,从第S个人开始报数,报到M的出列,然后再从下一个人开始数报
思路:
seq = S-1+M-1
循环 seq += M-1
特别的 seq = seq%size,seq累加以前删掉的,否则要出错。
****************************************************
2008-1-24
双向链表,没有找到好的运用例子,
要特别注意pos=0 和 pos>length的情况。
貌似可以把pos=0 和 pos>length合并起来,只是要注意判断指针是否为0就可以了。
但是,那样的话,判断条件又太多了,分开了其实也好。
1 链表
Insert 注意 插入0位置要特殊处理
指针指向插入位置的前一个。
Remove 注意 0位置和最后一个位置要特殊处理
两个指针,一个指向插入位置前一个,一个指向插入位置前两个
运用:
箱子排序:
int a[10] = {2,6,7,5,6,6,7,8,9,3};
0
1
2 元素0
3 元素9
4
5
6 元素1,元素4,元素5...
*****************************************************
2008-1-23
循环链表,基本上和链表相似,
1 少了尾节点的判断。
2 Remove的时候,0位置的判断。
运用:
Josephy 问题概述: 假设有N个人坐在圆桌周围,从第S个人开始报数,报到M的出列,然后再从下一个人开始数报
思路:
seq = S-1+M-1
循环 seq += M-1
特别的 seq = seq%size,seq累加以前删掉的,否则要出错。
****************************************************
2008-1-24
双向链表,没有找到好的运用例子,
要特别注意pos=0 和 pos>length的情况。
貌似可以把pos=0 和 pos>length合并起来,只是要注意判断指针是否为0就可以了。
但是,那样的话,判断条件又太多了,分开了其实也好。