個人心得 資料結構之雙鏈表

2021-09-14 04:56:04 字數 1952 閱讀 2472

維基百科

1.先建立節點的類。

class node 

}

2.再建立雙向鍊錶的類。

class doublelinkedlist 

}

接下來給雙向聯表新增一些方法(一下方法都是在雙向鍊錶類裡面寫的)。

/**

* * @param element 用來例項節點的資料,什麼資料型別都行.

*/let node = new node(element), current;

if (!this.length) else // current的下乙個為null的時候,退出迴圈。

current.next = node; // current.next為null退出迴圈(即已到了最後乙個節點),那麼它的next為node

node.previous = current; // 新加入的node的前乙個就是current。

}this.length++; // 長度加一,別忘咯。

}

/**

* @param element

* @param position 要插入的某個位置.

*/insertnode (element, position) else

front.next = current.previous = node; // 前乙個的next 和 當前的previous 是node。

node.previous = front; // 插入的node的前乙個為front。

node.next = current; // 插入的node的後乙個是current。

}this.length++;

console.log('insert successfully!');

} else

}

/**

* @param position

*/removenode (position) else

if (current.next)

front.next = current.next; // 前乙個的下乙個為current的下乙個。 (...繞口)

}this.length--;

console.log('remove successfully!');

} else

}

print () 

arr.map( (x, index) => console.log(`第$個節點是`, x));

迴圈鍊錶 ----(維基百科)

1.單向迴圈鍊錶

2.雙向迴圈鍊錶

就寫到這裡咯。你問我怎麼不實現迴圈鍊錶?這個就...你們實現吧,程式猿嘛,要多動手,多動手。

謝謝大家。

資料結構之雙鏈表

前面我們介紹了單鏈表,單鏈表的優點是沒有空間的限制,可以隨意開闢空間。但與我們這次要講的雙鏈表相比,就有點相形見絀了。因為哪怕是單鏈表,在進行查詢 插入 排序等等時都要進行線性表的遍歷,而我們往往需要的是目標節點的前乙個節點,所以經常一不小心就錯過了我們需要的節點,或者經常需要乙個當前節點的備份,以...

資料結構 雙鏈表

typedef struct nodenode 雙鏈表的根節點的bwd指標指向雙鏈表的最後乙個節點,fwd指標指向雙鏈表的第乙個節點,雙鏈表的value欄位為空 以下程式是將乙個值插入到乙個有序的雙鏈表中,如果鍊錶中已經有和該值相同的節點則不插入 include include typedef st...

資料結構 雙鏈表

目標 掌握雙鏈表的資料結構 來看看什麼是雙鏈表吧 雙鏈表與單鏈表的區別,單鏈表是單項的 而雙鏈表是有左右的 題目acwing 827 實現乙個雙鏈表,雙鏈表初始為空,支援5種操作 1 在最左側插入乙個數 2 在最右側插入乙個數 3 將第k個插入的數刪除 4 在第k個插入的數左側插入乙個數 5 在第k...