最近在學習資料結構及演算法,資料結構:列表,棧,佇列,鍊錶,字典,雜湊,集合,二叉樹;演算法:圖和圖演算法,排序演算法:冒泡、選擇、插入、希爾、歸併、快速,檢索演算法:順序查詢,二分查詢;還有高階一點的動態規劃和貪心演算法,這些都會用js一一實現,算是記錄下來,給自己以後複習用吧。
先上**:列表
列表是一組有序的資料,每個列表中資料被稱為元素,元素的數量受記憶體控制。
不包括任何元素的列表稱為空列表。
不需要很長序列查詢元素或排序,元素不是很多。
/**
* 乙個簡單的列表
* @constructor
*/function
list
() /**
* 給列表最後新增元素的時候,列表元素個數+1
* @param element
*/ this.listsize++;
this.datasource.push(element);
}/**
* @param element 如果傳入的是物件,需要判斷是否是物件以及兩個物件是否相等
* @returns 如果找到,返回位置,否則-1
*/function find(element)
} return -1;
}/**
* 返回列表元素的個數
* @returns
*/function
getlength
() /**
* 刪除元素成功,元素個數-1
* @param element
* @returns
*/function remove(element)
return
false;
}/**
* 返回要展示的列表
* @returns
*/function
tostring
() /**
* 插入某個元素
* @param element 要插入的元素
* @param afterelement 列表中的元素之後
* @returns
*/function insert(element, afterelement)
return
false;
}/**
* 清空列表中的所有元素
*/function
clear
() /**
* 將列表的當前位置移動到第乙個元素
*/function
front
() /**
* 將列表的當前位置移動到最後乙個元素
*/function
end()
/** * 返回當前位置的元素
* @returns
*/function
getelement
() /**
* 將當前位置向前移動一位
*/function
prev
() /**
* 將當前位置向後移動一位
*/function
next
() /**
* 返回列表的當前位置
* @returns
*/function
currentpos
() /**
* 移動到指定位置
* @param position
*/function moveto(position)
/** * 是否包含某個元素
* @param element
* @returns
*/function contains(element)
/** * 迭代器:遍歷出所有的元素及其位置
* @param function(index, data)
*/function loop (cb) )(index, loopitem)
}}var name = new list()
// console.log(name);
console.log(name.getelement())
name.next()
console.log(name.getelement())
name.loop(function (index, looitem) )
console.log(name.contains('小lan'))
複製**
JS 演算法與資料結構之列表
js 如何建立乙個簡單的列表類?以下將描述如何實現該抽象資料型別 adt 列表是一組有序的資料,每個列表中的資料項稱為元素 在 js 中,列表的元素可以是任意資料型別,且列表儲存多少元素沒有事先限定 要設計列表的抽象資料型別,我們需要列出列表的屬性及方法 屬性名作用 listsize 列表的元素個數...
資料結構之列表
在基礎資料結構中,列表作為最為基礎的乙個資料結構進行體現,在乙個程式中決定效率的關鍵核心因素就是資料結構和資料演算法,二者共同決定 時間複雜度的型別,因此萬丈高樓平地起,就從最基礎的列表操作和分析其時間複雜度開始 方法1 列表賦值 lis 方法2 列表疊加 列表疊加要注意,疊加的是可迭代物件 新增列...
python資料結構之列表
和字串一樣,列表也是python中使用最普遍的資料結構之一,而且它很靈活,可以儲存多種不同的物件 數字,字串,甚至於其他的列表。列表的建立方法 1 利用python的內建方法list l1 list python l1 p y t h o n 2 直接賦值給方括號,元素之間用逗號隔開 l2 1,2,...