雙向鍊錶封裝

2022-08-19 14:18:07 字數 2157 閱讀 8578

//雙向鍊錶

function doublelinkedlist() 

//煉表頭節點

this.head = null

//鍊錶尾節點

this.fail = null

//鍊錶長度

this.length = 0

//在鍊錶尾部新增元素

var newelement = new node(value)

if (!this.head)  else 

newelement.prev = current

current.next = newelement

this.fail = current.next

}this.length += 1

return true

}//鍊錶從前向後列印成字串

doublelinkedlist.prototype.forwardtostring = function () 

return result

}//鍊錶從後向前列印成字串

doublelinkedlist.prototype.backwardtostring = function () 

return result

}//選擇位置插入元素 

doublelinkedlist.prototype.insertto = function (value, position) 

var newelement = new node(value)

var index = 0

var current = this.head

//判段插入元素的位置做不同的處理

if (position === 0)  else 

newelement.prev = pervelement

pervelement.next = newelement

pervelement.next.next = current

current.prev = pervelement.next

}this.length++

return true

}//改變某個位置的值

doublelinkedlist.prototype.update = function (value, position) 

var index = 0

var current = this.head

while (index < position) 

current.value = value

return true

}//獲取某個位置的值

doublelinkedlist.prototype.get = function (position) 

var index = 0

var current = this.head

while (index < position) 

return current.value

}//獲取某個元素的索引

doublelinkedlist.prototype.indexof = function (value) 

index++

current = current.next

}return -1

}//刪除某個位置的元素

doublelinkedlist.prototype.removeto = function (position) 

var index = 0

var current = this.head

if (position == 0)  else 

prevelement.next = current.next

current.next.prev = prevelement

if (this.length - 1 == position) 

}this.length--

}//刪除某個元素

doublelinkedlist.prototype.remove = function (value) 

//檢視鍊錶是否為空

doublelinkedlist.prototype.isempty = function () 

//檢視鍊錶的長度

doublelinkedlist.prototype.size = function () 

}

封裝鍊錶和雙向鍊錶

封裝鍊錶 尾新增的效率低,非法下標的判斷也非常低。1 單鏈表 節點 資料域 指標域資料項 頭指標尾指標 節點數量 2 靜態鍊錶 節點 資料域 游標靜態鍊錶的節點儲存在連續的記憶體,通過遊戲來訪問下乙個節點。這種鍊錶在插入刪除時只需要修改游標的值,而不用申請 釋放記憶體達到鏈式結構的效果。但是也犧牲的...

c 封裝雙向鍊錶和順序表

null 乙個節點 else 多個節點 void pushfront const datatype data else void popfront else if tail ppre null 乙個節點 else 多個節點 node find const datatype data cur cur ...

mysql 雙向鍊錶 雙向鍊錶

雙向鍊錶是鍊錶變型,相比於單鏈表導航或者是向前和向後的兩種方式。以下是重要的術語來理解雙向鍊錶的概念 link 鍊錶的每個鏈路儲存資料稱為乙個元素。linkedlist linkedlist包含連線鏈結到名為首先第乙個鏈結,並稱為最後的最後乙個鏈結 last 雙向鍊錶表示 按照如上圖中所示,以下是要...