JS 演算法與資料結構之列表

2022-09-14 06:03:09 字數 2960 閱讀 6691

js 如何建立乙個簡單的列表類?以下將描述如何實現該抽象資料型別(adt)

列表是一組有序的資料,每個列表中的資料項稱為元素

在 js 中,列表的元素可以是任意資料型別,且列表儲存多少元素沒有事先限定

要設計列表的抽象資料型別,我們需要列出列表的屬性及方法:

屬性名作用

listsize

列表的元素個數

pos列表的當前位置

length

返回列表中元素的個數

方法名作用

clear

清空列表中的所有元素

tostring

返回列表的字串形式

getelement

返回當前位置的元素

insert

在現有元素後插入新元素

在列表的末尾新增新元素

remove

從列表中刪除元素

front

將列表的當前位置移動到第乙個元素

end將列表的當前位置移動到最後乙個元素

prev

將當前位置後移一位

next

將當前位置前移一位

hasnext

判斷後一位

hasprev

判斷前一位

currpos

返回列表的當前位置

moveto

將當前位置移動到指定位置

我們先從定義建構函式開始實現

function list()
給列表新增元素

this.datastore[this.listsize++] = element

}當新元素就位後,變數listsize加 1

在列表中查詢某一元素

function find(element) 

} return -1

}

從列表中刪除元素

function remove(element) 

return false

}

remove()方法中使用find()方法返回的位置對陣列datastore進行擷取,陣列改變後,將變數listsize的值減 1

如果元素刪除成功,返回true,否則返回false

返回列表中元素個數

function length()
顯示列表中的元素

function tostring()
下面對以上形成的類進行乙個簡短的測試

var names = new list()

console.log(names.tostring()) // ["a", "b", "c"]

names.remove('b')

console.log(names.tostring()) // ["a", "c"]

向列表中插入乙個元素

function insert(element, after) 

return false

}

insert()方法中使用find()方法,尋找傳入的after引數在列表中的位置,然後使用splice()方法將新元素插入該位置,再將變數listsize加 1 並返回true

清空列表中所有的元素

function clear()
clear()方法使用delete操作符刪除陣列datastore,接著在下一行建立乙個空陣列,最後一行將listsizepos的值設為 1,表明這是乙個新的空列表

判斷給定值是否在列表中

function contains(element) 

} return false

}

允許使用者在列表上自由移動的方法集合

function front() 

function end()

function prev()

function next()

}function currpos()

function moveto(position)

// 返回列表的當前元素

function getelement()

function hasnext()

function hasprev()

下面用乙個例子來展示這些方法的使用:

1、首先建立乙個列表:

var names = new list()
2、現在移動到列表中的第乙個元素並顯示該元素:
names.front()

console.log(names.getelement()) // a

3、接下來往後移動乙個單位並顯示
names.next()

console.log(names.getelement()) // b

4、prev() 的使用
names.next()

names.next()

names.prev()

console.log(names.getelement()) // c

資料結構之列表

在基礎資料結構中,列表作為最為基礎的乙個資料結構進行體現,在乙個程式中決定效率的關鍵核心因素就是資料結構和資料演算法,二者共同決定 時間複雜度的型別,因此萬丈高樓平地起,就從最基礎的列表操作和分析其時間複雜度開始 方法1 列表賦值 lis 方法2 列表疊加 列表疊加要注意,疊加的是可迭代物件 新增列...

js實現資料結構及演算法之列表 List

最近在學習資料結構及演算法,資料結構 列表,棧,佇列,鍊錶,字典,雜湊,集合,二叉樹 演算法 圖和圖演算法,排序演算法 冒泡 選擇 插入 希爾 歸併 快速,檢索演算法 順序查詢,二分查詢 還有高階一點的動態規劃和貪心演算法,這些都會用js一一實現,算是記錄下來,給自己以後複習用吧。先上 列表 列表是...

python資料結構之列表

和字串一樣,列表也是python中使用最普遍的資料結構之一,而且它很靈活,可以儲存多種不同的物件 數字,字串,甚至於其他的列表。列表的建立方法 1 利用python的內建方法list l1 list python l1 p y t h o n 2 直接賦值給方括號,元素之間用逗號隔開 l2 1,2,...