亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

javascript實現(xiàn)數(shù)據(jù)結構中的列表結構

feng409 / 1007人閱讀

摘要:定義構造列表的函數(shù)列表的元素個數(shù)列表的當前位置列表數(shù)組列表的末尾添加新元素找到指定元素的位置返回列表的字符串形式在現(xiàn)有元素后插入新元素從列表中刪除元素清空列表中的所有元素將列表的當前位置移到第一個元素將列表的當前位置移到最后一個元素將當前位

定義構造列表的函數(shù)

function List() {
    
    this.listSize = 0;   列表的元素個數(shù)
 
    this.pos = 0;    列表的當前位置

    this.dataStore = [];    列表數(shù)組

    this.append = append;    列表的末尾添加新元素

    this.find = find;    找到指定元素的位置

    this.toString = toString;     返回列表的字符串形式

    this.insert = insert;    在現(xiàn)有元素后插入新元素

    this.remove = remove;    從列表中刪除元素

    this.clear = clear;    清空列表中的所有元素

    this.front = front;    將列表的當前位置移到第一個元素

    this.end = end;    將列表的當前位置移到最后一個元素

    this.next = next;    將當前位置后移一位

    this.hasNext;    判斷是否有后一位

    this.hasPrev;    判斷是否有前一位

    this.length = length;   返回列表元素的個數(shù)
 
    this.currPos = currPos;    返回列表的當前位置

    this.moveTo = moveTo;    將列表的當前位置移動到指定位置

    this.getElement = getElement;    返回當前位置的元素

    this.contains = contains; 判斷給定元素是否在列表中
}

實現(xiàn)元素插入函數(shù)

function append(element) {
    this.dataStore[this.listSize++] = element;
}

找到元素函數(shù)

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;
}

返回列表的字符串類型數(shù)據(jù)

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());

還可以測試列表的其他數(shù)據(jù)來通過列表實現(xiàn)想要的效果

歡迎評論以及留言,同時歡迎關注我的博客定時不斷地更新我的文章 陳建光的博客

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://www.ezyhdfw.cn/yun/94339.html

相關文章

  • JavaScript數(shù)據(jù)結構和算法

    摘要:棧被稱為一種后入先出的數(shù)據(jù)結構。散列使用的數(shù)據(jù)結構叫做散列表。這些操作需要求助于其他數(shù)據(jù)結構,比如下面介紹的二叉查找樹。 前言 在過去的幾年中,得益于Node.js的興起,JavaScript越來越廣泛地用于服務器端編程。鑒于JavaScript語言已經(jīng)走出了瀏覽器,程序員發(fā)現(xiàn)他們需要更多傳統(tǒng)語言(比如C++和Java)提供的工具。這些工具包括傳統(tǒng)的數(shù)據(jù)結構(如鏈表,棧,隊列,圖等),...

    EastWoodYang 評論0 收藏0
  • 數(shù)據(jù)結構與算法JavaScript (不定時更新)

    摘要:每個列表中的數(shù)據(jù)項稱為元素。棧被稱為一種后入先出,的數(shù)據(jù)結構。散列使用的數(shù)據(jù)結構叫做散列表。不包含任何成員的集合稱為空集,全集則是包含一切可能成員的集合。因此二叉搜索樹需要平衡,即左右子樹高度要相近。 樓樓非計算機專業(yè),但是對計算機也還算喜歡。個人理解若有偏差,歡迎各位批評指正! 對于數(shù)據(jù)結構和算法一直是我的薄弱環(huán)節(jié),相信大多數(shù)前端工程師可能多少會有些這方面的弱點,加上數(shù)據(jù)結構和算法本...

    levius 評論0 收藏0
  • Javascript數(shù)據(jù)結構和算法》筆記-「字典和散列表

    摘要:我經(jīng)常在業(yè)務代碼中把數(shù)據(jù)處理成這種字典的數(shù)據(jù)結構獲取的方法哈希表在學習了類之后,我們會學習散列表,也就是哈希表。 《Javascript數(shù)據(jù)結構和算法》筆記-「字典和散列表」 集合、字典、散列表存儲的都是「不重復」的數(shù)據(jù)結構 集合:我們更關注每一個元素的值,并把其作為主要元素 字典:我們用[鍵,值]的形式來存儲數(shù)據(jù) 散列表: 跟字典類似,也會是用[鍵,值]的形式來存儲數(shù)據(jù) 但是「字...

    wenyiweb 評論0 收藏0
  • 算法系列——JavaScript中廣度優(yōu)先搜索思想實現(xiàn)

    摘要:散列表上面的地圖向我們展示了如何用廣度優(yōu)先搜索的思想找到北京到廣州的最短路線。在廣度優(yōu)先搜索中,我們需要用到隊列的這種思想來實現(xiàn)查找。建立了下面這個模型武漢廣州西藏上海上海武漢廣州代碼完整實現(xiàn),利用遞歸和廣度優(yōu)先搜索的思想實現(xiàn)。 什么是廣度優(yōu)先搜索? 如果只是是背概念,幼兒園的小朋友都能背下來念給你聽。 假設看這篇文章的都和我一樣是個前端工程師,我們要從廣度優(yōu)先搜索(BFS)中學到什么...

    everfly 評論0 收藏0

發(fā)表評論

0條評論

feng409

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<