Skip to content

Commit

Permalink
更新
Browse files Browse the repository at this point in the history
  • Loading branch information
MrWenGQ committed Mar 12, 2017
1 parent e448e25 commit ddf87e3
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -70,21 +70,21 @@ public Object next() {
};
}

private Object[] copyAddArray(Object elementData[]) {
private Object[] copyAddArray(Object elementData[]) { //对数组扩容 增加量为原长度3/4
Object ob[] = new Object[elementData.length+(elementData.length * 3) / 4];
System.arraycopy(((Object) (elementData)), 0, ((Object) (ob)), 0,
elementData.length);
return ob;
}

private Object[] addUpdateArray(Object elementData[], int index) {
Object temp = null;
private Object[] addUpdateArray(Object elementData[], int index) {//添加时修改数组索引
Object temp = null; //中间变量
for (int i = 0; i < size; i++)
if (i > index) {
if (i > index) {//判断受影响索引
temp = elementData[index];
elementData[index] = elementData[i];
elementData[i] = temp;
if (i == size - 1) {
if (i == size - 1) { //判断为最后一位
if (size > elementData.length)
elementData = copyAddArray(elementData);
elementData[size] = elementData[index];
Expand All @@ -94,10 +94,10 @@ private Object[] addUpdateArray(Object elementData[], int index) {
return elementData;
}

private void delUpdateArray(Object elementData[], int index) {
private void delUpdateArray(Object elementData[], int index) {//删除时修改索引
for (int i = 0; i < size; i++){

if (i > index && i < size ){
if (i > index && i < size ){//判断受影响索引
elementData[i - 1] = elementData[i];
if (i == size - 1){
elementData[i] = null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,9 @@ public Object remove(int index) {
}
Node nextNode = null;
Node lastNode = null;
if (index + 1 <= size - 1) //判断是否有下一个值
if (index + 1 <= size - 1) //判断是否有下一位
nextNode = findNode(index + 1);
if (index - 1 > 0) //判断是否有上一个值
if (index - 1 > 0) //判断是否有上一位
lastNode = findNode(index - 1);
if (lastNode == null) {
head = nextNode;
Expand Down Expand Up @@ -138,7 +138,7 @@ public Object removeLast() {
if (size == 0) {
return null;
} else {
Node node = findNode(size-1);
Node node = findNode(size-1); //size -1 为最后一位 -2为前一位
if(size-2>=0){
Node lastNode = findNode(size - 2);
lastNode.next = null;
Expand Down Expand Up @@ -172,46 +172,46 @@ public Object next() {
}

/**
* 把该链表逆置
* 例如链表为 3->7->10 , 逆置后变为 10->7->3
* 鎶婅閾捐〃閫嗙疆
* 渚嬪閾捐〃涓�3->7->10 , 閫嗙疆鍚庡彉涓� 10->7->3
*/
public void reverse(){

}

/**
* 删除一个单链表的前半部分
* 例如:list = 2->5->7->8 , 删除以后的值为 7->8
* 如果list = 2->5->7->8->10 ,删除以后的值为7,8,10
* 鍒犻櫎涓�釜鍗曢摼琛ㄧ殑鍓嶅崐閮ㄥ垎
* 渚嬪锛歭ist = 2->5->7->8 , 鍒犻櫎浠ュ悗鐨勫�涓�7->8
* 濡傛灉list = 2->5->7->8->10 ,鍒犻櫎浠ュ悗鐨勫�涓�,8,10
*/
public void removeFirstHalf(){

}

/**
* 从第i个元素开始, 删除length 个元素 , 注意i从0开始
* 浠庣i涓厓绱犲紑濮嬶紝 鍒犻櫎length 涓厓绱�锛�娉ㄦ剰i浠�寮�
* @param i
* @param length
*/
public void remove(int i, int length){

}
/**
* 假定当前链表和list均包含已升序排列的整数
* 从当前链表中取出那些list所指定的元素
* 例如当前链表 = 11->101->201->301->401->501->601->701
* 鍋囧畾褰撳墠閾捐〃鍜宭ist鍧囧寘鍚凡鍗囧簭鎺掑垪鐨勬暣鏁�
* 浠庡綋鍓嶉摼琛ㄤ腑鍙栧嚭閭d簺list鎵�寚瀹氱殑鍏冪礌
* 渚嬪褰撳墠閾捐〃 = 11->101->201->301->401->501->601->701
* listB = 1->3->4->6
* 返回的结果应该是[101,301,401,601]
* 杩斿洖鐨勭粨鏋滃簲璇ユ槸[101,301,401,601]
* @param list
*/
public static int[] getElements(LinkedList list){
return null;
}

/**
* 已知链表中的元素以值递增有序排列,并以单链表作存储结构。
* 从当前链表中中删除在list中出现的元素
* 宸茬煡閾捐〃涓殑鍏冪礌浠ュ�閫掑鏈夊簭鎺掑垪锛屽苟浠ュ崟閾捐〃浣滃瓨鍌ㄧ粨鏋勩�
* 浠庡綋鍓嶉摼琛ㄤ腑涓垹闄ゅ湪list涓嚭鐜扮殑鍏冪礌
* @param list
*/
Expand All @@ -221,16 +221,16 @@ public void subtract(LinkedList list){
}

/**
* 已知当前链表中的元素以值递增有序排列,并以单链表作存储结构。
* 删除表中所有值相同的多余元素(使得操作后的线性表中所有元素的值均不相同)
* 宸茬煡褰撳墠閾捐〃涓殑鍏冪礌浠ュ�閫掑鏈夊簭鎺掑垪锛屽苟浠ュ崟閾捐〃浣滃瓨鍌ㄧ粨鏋勩�
* 鍒犻櫎琛ㄤ腑鎵�湁鍊肩浉鍚岀殑澶氫綑鍏冪礌锛堜娇寰楁搷浣滃悗鐨勭嚎鎬ц〃涓墍鏈夊厓绱犵殑鍊煎潎涓嶇浉鍚岋級
*/
public void removeDuplicateValues(){

}

/**
* 已知链表中的元素以值递增有序排列,并以单链表作存储结构。
* 试写一高效的算法,删除表中所有值大于min且小于max的元素(若表中存在这样的元素)
* 宸茬煡閾捐〃涓殑鍏冪礌浠ュ�閫掑鏈夊簭鎺掑垪锛屽苟浠ュ崟閾捐〃浣滃瓨鍌ㄧ粨鏋勩�
* 璇曞啓涓�珮鏁堢殑绠楁硶锛屽垹闄よ〃涓墍鏈夊�澶т簬min涓斿皬浜巑ax鐨勫厓绱狅紙鑻ヨ〃涓瓨鍦ㄨ繖鏍风殑鍏冪礌锛�
* @param min
* @param max
*/
Expand All @@ -239,8 +239,8 @@ public void removeRange(int min, int max){
}

/**
* 假设当前链表和参数list指定的链表均以元素依值递增有序排列(同一表中的元素值各不相同)
* 现要求生成新链表C,其元素为当前链表和list中元素的交集,且表C中的元素有依值递增有序排列
* 鍋囪褰撳墠閾捐〃鍜屽弬鏁發ist鎸囧畾鐨勯摼琛ㄥ潎浠ュ厓绱犱緷鍊奸�澧炴湁搴忔帓鍒楋紙鍚屼竴琛ㄤ腑鐨勫厓绱犲�鍚勪笉鐩稿悓锛�
* 鐜拌姹傜敓鎴愭柊閾捐〃C锛屽叾鍏冪礌涓哄綋鍓嶉摼琛ㄥ拰list涓厓绱犵殑浜ら泦锛屼笖琛–涓殑鍏冪礌鏈変緷鍊奸�澧炴湁搴忔帓鍒�
* @param list
*/
public LinkedList intersection( LinkedList list){
Expand Down

0 comments on commit ddf87e3

Please sign in to comment.