//順序表的定義和操作
// @params {} node
// var and function
順序表的定義:這裏做了比較簡單的處理,就是把順序表當成一個數組來處理
var listNode = [{
data:'第一個數據'
}, {
data:'第二個數據'
}, {
data:'第三個數據'
}, {
data:'第四個數據'
}];
順序表的操作如下
1,獲取順序表的長度
// --------------------獲取順序表的長度------------------------
function getLength(list) {
return list.length;
}
//調用舉例
// console.log(getLength(listNode))
2,清空順序表
//---------------------清空順序表-----------------------------
function empty(listNode) {
listNode.splice(0, listNode.length);
}
//調用舉例
// console.log(empty(listNode))
3,在指定的位置插入元素
//----------------------在指定位置插入元素---------------------
//順序表的插入,在順序表的第i個位置插入元素
var newItem = {
data:'新數據'
}
function insertItem(listNode, item, i) {
if (i > getLength(listNode) || i < 1) {
console.log('插入位置有錯')
}
else {
for (var j = getLength(listNode); j >= i; j--) {
listNode[j] = listNode[j - 1];
}
listNode[i] = item;
return listNode;
}
}
// 調用舉例
// insertItem(listNode,newItem, 2);
4,刪除指定位置的元素
//---------------刪除指定位置的元素----------------------------
function deleteItem(listNode, i) {
if (i > getLength(listNode) || i < 1) {
console.log('刪除位置有誤')
return Error;
}
else {
var item = listNode[i];
for (var j = i - 1; j < getLength(listNode); j++) {
listNode[j] = listNode[j + 1];
}
listNode.length--;
return item;
}
}
//調用舉例
// deleteItem(listNode,2)
5,獲取指定位置的元素,並把該元素返回
//-------------------獲取指定位置的元素,並返回該元素------------
//在物理的存儲結構上,數組元素下標從0開始,但是從邏輯結構上,查找元素是從1開始的,需要搞明白這個
function getItem(listNode, i) {
if (i < 1 || i >= getLength(listNode)) {
console.log('查找位置有誤')
return Error;
}
else {
return listNode[i - 1]
}
}
//調用舉例
// console.log(getItem(listNode, 1))
6,獲取指定值的位置
//---------------獲取指定值在順序表中的位置,只獲取首次出現的位置---
function getValueItem(listNode,value){
for(var i=0;i<getLength(listNode);i++){
if(listNode[i].age===value){
console.log('首次出現的位置爲'+i);
return i;
}
}
console.log('查找元素不存在');
return;
}
// console.log(getValueItem(listNode,12))
7,顯示順序表
//-----------------遍歷順序表的元素並輸出-----------------------
function listShow(listNode){
for(var i=0;i<getLength(listNode);i++){
console.log(listNode[i]);
}
return ;
}
//調用舉例
// listShow(listNode)
9,順序表逆序操作
//-------------------順序表逆序-------------------------------
function listReverse(listNode){
var start=0,end=getLength(listNode)-1;
while(start<end){
var tmp=listNode[start];
listNode[start]=listNode[end];
listNode[end]=tmp;
start++;
end--;
}
return listNode;
}
//舉例如下
// listReverse(listNode)
以上九種方法就是我們在實現順序表的時候經常使用的操作,其他的操作可以根據這幾個函數之間的調用,合併來達成效果;這幾個是最基礎的操作,也是實現複雜問題簡化的必要操作,所謂小事不成,何以做成大事呢!奮鬥吧,騷年!
如果想了解更多知識,歡迎訪問我的個人博客:博客網址