資料結構 鍊錶

2021-10-05 05:25:51 字數 2214 閱讀 9742

線性表的鏈式儲存,包含兩個域,乙個儲存的值(this.data),乙個指向下乙個鍊錶節點(this.next)。

封裝鍊錶類,新增鍊錶的屬性:鍊錶節點、頭部(鍊錶的起始點)、長度。

// 封裝鍊錶類

function linkedlist()

//指向鍊錶頭部的屬性

this.head = null

//記錄鍊錶長度的屬性

this.length = 0;

}

給鍊錶新增方法進行增刪改查等操作。

//1.建立新節點

var newnode = new node(data);

//2.判斷是否存在第乙個節點

不存在第乙個節點

if(this.length == 0) else

// 最後節點的next指向新節點

current.next = newnode;

}// 長度屬性加一

this.length += 1;

}2.tostring()

linkedlist.prototype.tostring = function() 

return liststring;

}

3.在確定位置position插入節點
linkedlist.prototype.insert = function(position, data)  else 

// 插入節點,修改指向

newnode.next = current;

previous.next = newnode;

}//4.增加長度

this.length += 1;

return true;

}

4.查詢某個位置(position)的值
linkedlist.prototype.getposition = function(position) 

return current.data;

}

5.修改指定位置(position)資料
linkedlist.prototype.update = function(position, newdata) 

current.data = newdata;

return true;

}

6.查詢某個值的索引位置
linkedlist.prototype.indexof = function(data) 

// 下乙個節點

current = current.next;

index++;

}//3.在鍊錶中沒有找到該元素,返回-1

return -1;

}

7.刪除指定位置資料(position),返回資料
linkedlist.prototype.removeat = function(position)  else 

//前乙個節點的next指向current的next即可

previous.next = current.next;

}// 3.長度減一

this.length -= 1;

return current.data;

}

8.刪除某個值對應的節點
linkedlist.prototype.remove = function(data)
9.判斷鍊錶是否為空
linkedlist.prototype.isempty = function()
10.返回鍊錶長度
linkedlist.prototype.size = function()
(1)查詢對應資料value

亂序陣列遍歷找到對應資料,複雜度o(n)

排序陣列折半查詢找到對應資料,複雜度o(log2n)

鍊錶遍歷查詢對應資料,複雜度o(n)

(2)按索引查詢

陣列複雜度o(1),鍊錶o(n)

(3)插入、刪除資料

尾部插入、刪除:陣列複雜度o(1),鍊錶o(n)

任意位置插入、刪除:陣列需要平均移動半個表長的資料,鍊錶只需要修改前後指標即可

(4)靈活性

鍊錶在需要時可以申請新空間,操作靈活、高效

這是在b站上看coderwhy老師的課程整理的筆記,老師的官方部落格:資料結構(五)之鍊錶結構

資料結構 鍊錶

鍊錶 what 就是一張鏈式儲存的表,是一種資料結構,是基礎,所以還是不要想有什麼用。具體呢?在c中就用結構體實現物件描述,然後通過函式來實現各個基本操作 c 則用類來表述,c中的結構體就可以看成c 中的類,然後通過類封裝各個操作步驟。這些操作實現後就需要 來測試,號稱demo,就是main函式裡面...

資料結構 鍊錶

鍊錶中的資料是以節點來表示的,每個結點的構成 元素 資料元素的映象 指標 指示後繼元素儲存位置 元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。鍊錶的結點結構 data next data域 存放結點值的資料域 next域 存放結點的直接後繼的位址 位置 的指標域 鏈域 以 結點的序列 ...

資料結構 鍊錶

一般的建立線性鍊錶有兩種 1.正序法 需要三個指標,head作為頭指標,pre作為前乙個指標,cur作為當前指標用來建立空間 2.倒序法,利用指標的插入,只需要兩個指標,不斷的往頭指標後插入新空間,不過插入的越早,離頭指標越遠,也就越後面輸出 1.線性鍊錶的建立及查詢刪除 include inclu...