前端的面試中,鍊錶還是經常會被問到。所以熟悉鍊錶的結果以及鍊錶操作的方法還是很重要的。
說道儲存多個元素,陣列可能是最常用的資料結構。這種資料結構非常方便,提供了便利店語法來訪問它的元素。但是陣列的缺點就是對元素進行插入或者刪除操作的成本很高,需要移動元素。
鍊錶儲存有序的元素集合,但不同於陣列,鍊錶中的元素在記憶體中並不是連續放置的。每個元素由乙個儲存元素本身的節點和乙個指向下乙個元素的引用組成。鍊錶的乙個好處在於,增加或刪除元素的時候不需要移動其它元素。陣列的另乙個細節是可以直接訪問任何位置的任何元素,而要訪問鍊錶中間的乙個元素,需要從起點開始迭代列表直到找到所需的元素。
function linkedlist()
var length = 0;
var head = null;
}
function linkedlist()
var length = 0;
var head = null;
var node = new node(element),current;
if(head === null) else
//找到最後一項,將其next賦值為node
current.next = node;
}length++;
};this.removeat = function(position) else
previous.next = current.next;
}length--;
return current.element;
} else
};this.insert = function(position, element) else
previous.next =node;
node.next = current;
}length++;
return true;
} else
};this.indexof = function(element)
index++;
current = current.next;
}return -1;
};this.remove = function(element)
this.isempty = function()
this.size = function()
this.gethead = function()
}
function doublylinkedlist();
var length = 0;
var head = null;
var tail = null;
this.insert = function(position, element) else
} else if(position === length) else
node.next = current;
previous.next = node;
current.prev = node;
node.prev = previous;
}length++;
return true;
} else
};this.removeat = function(position) else
} else if(position === length-1) else
previous.next = current.next;
current.next.prev = previous;
}length--;
return current.element;
} else
}}
推薦乙個找vue,angular元件的輪子工廠
前端面試總結--資料結構與演算法一
前端面試總結--資料結構與演算法二
前端面試總結--資料結構與演算法三
前端面試總結 資料結構與演算法一
陣列是比較簡單的內容,這裡介紹陣列常用的操作。陣列的建立和初始化非常簡單,你可以通過var arr new array 或者var arr new array a b c 來建立乙個陣列。當然也可以簡單的var arr 這也是最通常的用法。需要在陣列末端追加元素,我們可以簡單的使用number nu...
前端面試總結 資料結構與演算法二
棧是一種遵從後進先出 lifo 原則的有序集合。新新增的或者待刪除的元素都儲存在棧的末尾。稱作棧頂,另一端就叫棧底。在棧裡,新元素都靠近棧頂,舊元素都接近棧底。function stack 接下來,是棧的方法 push element 新增新元素到棧頂。pop 移除棧頂的元素,同時返回被移除的元素。...
前端面試 資料結構
資料結構面試考點 棧是一種遵從後進先出 lifo,後進先出 原則的有序集合。新新增的或者待刪除的元素都儲存在棧的末尾。稱作棧頂,另一端就叫棧底。在棧裡,新元素都靠近棧頂,舊元素都接近棧底。棧的建立 function stack 接下來,是棧的方法 push element 新增新元素到棧頂。pop ...