使用JS實現的順序表的基本操作

//順序表的定義和操作
// @params {} node
// var and function
順序表的定義:這裏做了比較簡單的處理,就是把順序表當成一個數組來處理

    var listNode = [{
            data:'第一個數據'
        }, {
            data:'第二個數據'
        }, {
            data:'第三個數據'
        }, {
            data:'第四個數據'
        }];

順序表的操作如下

1,獲取順序表的長度
       // --------------------獲取順序表的長度------------------------
        function getLength(list) {
            return list.length;
        }
        //調用舉例
        //    console.log(getLength(listNode))
2,清空順序表
        //---------------------清空順序表-----------------------------
        function empty(listNode) {
            listNode.splice(0, listNode.length);
        }
        //調用舉例
        // console.log(empty(listNode))
3,在指定的位置插入元素
        //----------------------在指定位置插入元素---------------------
        //順序表的插入,在順序表的第i個位置插入元素
        var newItem = {
            data:'新數據'
        }
        function insertItem(listNode, item, i) {
            if (i > getLength(listNode) || i < 1) {
                console.log('插入位置有錯')
            }
            else {
                for (var j = getLength(listNode); j >= i; j--) {
                    listNode[j] = listNode[j - 1];
                }
                listNode[i] = item;
                return listNode;
            }
        }

        // 調用舉例
        // insertItem(listNode,newItem, 2);
   4,刪除指定位置的元素
        //---------------刪除指定位置的元素----------------------------
        function deleteItem(listNode, i) {

            if (i > getLength(listNode) || i < 1) {
                console.log('刪除位置有誤')
                return Error;
            }
            else {
                var item = listNode[i];
                for (var j = i - 1; j < getLength(listNode); j++) {
                    listNode[j] = listNode[j + 1];
                }
                listNode.length--;
                return item;
            }
        }
        //調用舉例
        // deleteItem(listNode,2)
5,獲取指定位置的元素,並把該元素返回
        //-------------------獲取指定位置的元素,並返回該元素------------

        //在物理的存儲結構上,數組元素下標從0開始,但是從邏輯結構上,查找元素是從1開始的,需要搞明白這個
        function getItem(listNode, i) {
            if (i < 1 || i >= getLength(listNode)) {
                console.log('查找位置有誤')
                return Error;
            }
            else {
                return listNode[i - 1]
            }
        }
        //調用舉例
        // console.log(getItem(listNode, 1))
6,獲取指定值的位置
        //---------------獲取指定值在順序表中的位置,只獲取首次出現的位置---
        function getValueItem(listNode,value){
            for(var i=0;i<getLength(listNode);i++){
                if(listNode[i].age===value){
                    console.log('首次出現的位置爲'+i);
                    return i;
                }
            }
            console.log('查找元素不存在');
            return;
        }
        // console.log(getValueItem(listNode,12))
  7,顯示順序表
        //-----------------遍歷順序表的元素並輸出-----------------------

        function listShow(listNode){
            for(var i=0;i<getLength(listNode);i++){
                console.log(listNode[i]);
            }
            return ;
        }
        //調用舉例
        // listShow(listNode)
9,順序表逆序操作
        //-------------------順序表逆序-------------------------------

        function listReverse(listNode){
            var start=0,end=getLength(listNode)-1;
            while(start<end){
                var tmp=listNode[start];
                listNode[start]=listNode[end];
                listNode[end]=tmp;
                start++;
                end--;
            }
            return listNode;
        }
        //舉例如下
        // listReverse(listNode)

以上九種方法就是我們在實現順序表的時候經常使用的操作,其他的操作可以根據這幾個函數之間的調用,合併來達成效果;這幾個是最基礎的操作,也是實現複雜問題簡化的必要操作,所謂小事不成,何以做成大事呢!奮鬥吧,騷年!

如果想了解更多知識,歡迎訪問我的個人博客:博客網址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章