摘要:定義構造列表的函數列表的元素個數列表的當前位置列表數組列表的末尾添加新元素找到指定元素的位置返回列表的字符串形式在現有元素后插入新元素從列表中刪除元素清空列表中的所有元素將列表的當前位置移到第一個元素將列表的當前位置移到最后一個元素將當前位
定義構造列表的函數
function List() { this.listSize = 0; 列表的元素個數 this.pos = 0; 列表的當前位置 this.dataStore = []; 列表數組 this.append = append; 列表的末尾添加新元素 this.find = find; 找到指定元素的位置 this.toString = toString; 返回列表的字符串形式 this.insert = insert; 在現有元素后插入新元素 this.remove = remove; 從列表中刪除元素 this.clear = clear; 清空列表中的所有元素 this.front = front; 將列表的當前位置移到第一個元素 this.end = end; 將列表的當前位置移到最后一個元素 this.next = next; 將當前位置后移一位 this.hasNext; 判斷是否有后一位 this.hasPrev; 判斷是否有前一位 this.length = length; 返回列表元素的個數 this.currPos = currPos; 返回列表的當前位置 this.moveTo = moveTo; 將列表的當前位置移動到指定位置 this.getElement = getElement; 返回當前位置的元素 this.contains = contains; 判斷給定元素是否在列表中 }
實現元素插入函數
function append(element) { this.dataStore[this.listSize++] = element; }
找到元素函數
function find(element) { for (let i = 0; i < this.listSize; i++) { console.log(i); if (element == this.dataStore[i]) { return i; } } return -1; }
刪除列表中的某個元素
function remove(element) { let findAt = this.find(element); if (findAt > -1) { this.dataStore.splice(findAt, 1); --this.listSize; return true; } }
獲得列表的長度
function length() { return this.listSize; }
返回列表的字符串類型數據
function toString() { return this.dataStore; }
在列表中指定元素后插入元素
function insert(element, after) { let insertAt = this.find(after); if (insertAt > -1) { this.dataStore.splice(insertAt + 1, 0, element); this.listSize++; return true; } return false; }
清空整個列表
function clear() { delete this.dataStore; this.dataStore = []; this.listSize = this.pos = 0; }
列表是否包含某個元素
function contains(element) { for (let i = 0; i < this.listSize; i++) { if (this.dataStore[i] == element) { return true; } } return false; }
當前列表的指針指向首部
function front() { this.pos = 0; }
當前列表的指針指向尾部
function end() { this.pos = this.listSize - 1; }
當前列表元素的前一個
function prev() { if (this.pos > 0) { this.pos--; } }
當前列表元素的后一個
function next() { if (this.pos < this.listSize - 1) { this.pos++; } }
當前的位置
function currPos() {
return this.pos;
}
移動到指定位置
function moveTo(position) { if (position < this.listSize - 1) { this.pos = position; } }
獲得當前位置的元素
function getElement() { return this.dataStore[this.pos]; }
是否有下一個元素
function hasNext() { return this.pos < this.listSize - 1; }
是否有上一個元素
function hasPrev() { return this.pos > 0; } //初始化一個列表 let list = new List(); list.append("jianguang"); list.append("yinjun"); list.append("jiangsssuang"); list.append("yinssjun"); 移動到第一個元素位置并且顯示 list.front(); print(list.getElement()); 移動向前一個元素位置,并且顯示 list.next(); print(list.getElement());
還可以測試列表的其他數據來通過列表實現想要的效果
歡迎評論以及留言,同時歡迎關注我的博客定時不斷地更新我的文章 陳建光的博客
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/94339.html
摘要:棧被稱為一種后入先出的數據結構。散列使用的數據結構叫做散列表。這些操作需要求助于其他數據結構,比如下面介紹的二叉查找樹。 前言 在過去的幾年中,得益于Node.js的興起,JavaScript越來越廣泛地用于服務器端編程。鑒于JavaScript語言已經走出了瀏覽器,程序員發現他們需要更多傳統語言(比如C++和Java)提供的工具。這些工具包括傳統的數據結構(如鏈表,棧,隊列,圖等),...
摘要:每個列表中的數據項稱為元素。棧被稱為一種后入先出,的數據結構。散列使用的數據結構叫做散列表。不包含任何成員的集合稱為空集,全集則是包含一切可能成員的集合。因此二叉搜索樹需要平衡,即左右子樹高度要相近。 樓樓非計算機專業,但是對計算機也還算喜歡。個人理解若有偏差,歡迎各位批評指正! 對于數據結構和算法一直是我的薄弱環節,相信大多數前端工程師可能多少會有些這方面的弱點,加上數據結構和算法本...
摘要:我經常在業務代碼中把數據處理成這種字典的數據結構獲取的方法哈希表在學習了類之后,我們會學習散列表,也就是哈希表。 《Javascript數據結構和算法》筆記-「字典和散列表」 集合、字典、散列表存儲的都是「不重復」的數據結構 集合:我們更關注每一個元素的值,并把其作為主要元素 字典:我們用[鍵,值]的形式來存儲數據 散列表: 跟字典類似,也會是用[鍵,值]的形式來存儲數據 但是「字...
摘要:散列表上面的地圖向我們展示了如何用廣度優先搜索的思想找到北京到廣州的最短路線。在廣度優先搜索中,我們需要用到隊列的這種思想來實現查找。建立了下面這個模型武漢廣州西藏上海上海武漢廣州代碼完整實現,利用遞歸和廣度優先搜索的思想實現。 什么是廣度優先搜索? 如果只是是背概念,幼兒園的小朋友都能背下來念給你聽。 假設看這篇文章的都和我一樣是個前端工程師,我們要從廣度優先搜索(BFS)中學到什么...
閱讀 2523·2023-04-25 17:27
閱讀 1833·2019-08-30 15:54
閱讀 2376·2019-08-30 13:06
閱讀 2987·2019-08-30 11:04
閱讀 754·2019-08-29 15:30
閱讀 736·2019-08-29 15:16
閱讀 1737·2019-08-26 10:10
閱讀 3609·2019-08-23 17:02