真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

C語言中的順序表-創(chuàng)新互聯(lián)

順序表就是邏輯上相鄰的數據元素物理上也相鄰,連續(xù)存儲
時間復雜度:最好O(1),最差O(n)

我們提供的服務有:網站制作、成都做網站、微信公眾號開發(fā)、網站優(yōu)化、網站認證、長汀ssl等。為上1000+企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的長汀網站制作公司

特點:

  • 支持隨機訪問
  • 存儲密度高
  • 拓展容量不方便
  • 插入、刪除元素不方便

定義順序表

typedef int SLDataType;
typedef struct SeqList
{SLDataType *a;//動態(tài)開辟的數組
    size_t size;//有效數據個數
    size_t capacity;//容量大小
} SeqList;

初始化順序表

void SeqListInit(SeqList *psl)
{assert(psl !=NULL);//斷言,防止傳進來的指針為空
    psl->a = NULL;//初始順序表為空
    psl->size = 0;//初始數據個數為0
    psl->capacity = 0;//初始空間容量0
}

銷毀順序表

void SeqListDestroy(SeqList *psl)
{assert(psl != NULL);
    free(psl->a);//釋放malloc給數組a開辟的空間
    psl->a = NULL;
    psl->size =  0;
    psl->capacity = 0;
}

檢查順序表是否滿,方便增容

void CheckCapacity(SeqList *psl)
{assert(psl !=NULL);
    
    if(psl->size == psl->capacity)
    {size_t newcapacity;
        if(psl->capacity == 0)
        {newcapacity = psl->capacity = 4;
        }
        else
        {newcapacity = 2*psl->capacity;
        }
        SLDataType *p = (SLDataType *)relloc(psl->,newcapacity);
        if (NULL == p)
        {perror("relloc");
            exit(-1);
        }
        psl->a = p;
        psl->capacity = newcapacity;
    }
}

順序表頭插

voidSeqlistPushFront(SeqList *psl,SLDataType x)
{assert(psl);
    CheckCapacity(psl);
    
    int i = 0;
    for(i = psl->size-1;i>=0;i++)
    {psl->a[i + 1] = psl->a[i];
    }
    psl->a[0] = x;
    psl->size++;
}

順序表尾插

void SeqListPushBack(SeqList *psl,SLDataType num)
{assert(psl != NULL);
    CheckCapacity(psl);
    
    psl->a[psl->size] = x;
    psl->size++;
}

順序表頭刪

void SeqListPopFront(SeqList *psl)
{assert(psl);
    
    int i = 0;
    for(i = 0;isize;i++)
    {psl->a[i] = psl->a[i+1];
    }
    psl->size--;
}

順序表尾刪

void SeqListPopBack(SeqList *psl)
{assert(psl);
    assert(psl->size >0);//順序表不能為空
    
    //根據SLDataType類型,給0值
    psl->a[psl->size] = 0;
    psl->size--;
}

順序表查找指定值

int SeqListFind(const SeqList *psl,SLDataType x)
{assert(psl);
    int i = 0;
    for(i=0;isize;i++)
    {if(psl->a[i] == x)
        {return i;
        }
        return -1;
    }
}

在順序表指定下標位置插入數據

void SeqListInsert(SeqList *psl,size_t pos,SLDataType x)
{assert(psl);
    assert(pos >= 0 && pos<= psl->size);
    CheckCapacity(psl);
    
    size_t i = 0;
    for(i=psl->size;i>pos;i--)
    {psl->a[i] = psl->a[i-1];
    }
    psl->a[pos] = x;
    psl->size++;
}

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧


當前文章:C語言中的順序表-創(chuàng)新互聯(lián)
標題來源:http://weahome.cn/article/dicges.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部