C語(yǔ)言-鏈表

線(xiàn)性表

  • 線(xiàn)性表定義:由n個(gè)(n>=0)個(gè)數(shù)據(jù)特性相同的元素構(gòu)成的有限序列稱(chēng)為線(xiàn)性表。
  • 線(xiàn)性表特點(diǎn):每個(gè)節(jié)點(diǎn)有一個(gè)直接前驅(qū)節(jié)點(diǎn),有一個(gè)后驅(qū)節(jié)點(diǎn);第一個(gè)節(jié)點(diǎn)沒(méi)有前驅(qū),最后一個(gè)節(jié)點(diǎn)沒(méi)有后驅(qū)。
  • 線(xiàn)性表的順序存儲(chǔ)表示
    線(xiàn)性表的順序表示指的是用一組地址連續(xù)的存儲(chǔ)單元依次存放線(xiàn)性表的數(shù)據(jù)元素,這種表示也稱(chēng)為線(xiàn)性表的順序存儲(chǔ)結(jié)構(gòu)或順序映像。特點(diǎn)是:邏輯上相鄰的數(shù)據(jù)元素,其物理次序也是相鄰的。

typedef double dataType;//給現(xiàn)有類(lèi)型重命名
struct SeqList{
int dataArray[100];//存放順序表的長(zhǎng)度
int nlength;//記錄當(dāng)前順序表的長(zhǎng)度
};
如果我定義了一個(gè)double類(lèi)型,可以將intdataArray[100]重命名為dataType dataArray[100];就將本來(lái)的int型改為了double型。

初始化順序表

  • void initList(SeqList
  • myList)
    {//把數(shù)據(jù)元素清空
    for (int i=0;i<LENGTH;i++){
    myList->dataArray[i]=0;}
    //把長(zhǎng)度置0
    mylist.nLength=0;
    }
  • 求長(zhǎng)度
    int listLength(SeqList myList){
    return myList.nLength;}
  • 插入數(shù)據(jù)項(xiàng)
    void insertNode(SeqList * myList,int index,dataType data)
    {
    if(index<0||index>myList->nLength){
    //輸入不合法
    index=myList->nLength;
    }
    for(int i=myList->nLength-1;i>=index;i--)
    myList->dataArray[i+1]=myList->dataArray[i];}
    myList->dataArray[index]=data;
    myList->nLength++;
    }
  • 獲取某位置的數(shù)據(jù)項(xiàng)
    dataType getNodeWithIndex(SeqList myList,int index);

鏈表:邏輯上是線(xiàn)性表,但存儲(chǔ)方式不是有序的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容