【數(shù)據(jù)結(jié)構(gòu)】單鏈表常用操作(C++)-創(chuàng)新互聯(lián)

#includeusing namespace std;

// 鏈表節(jié)點(diǎn)
struct LinkNode
{int data;
    LinkNode* next;
};

// 頭插法
LinkNode* HeadInsert()
{LinkNode *head = new LinkNode;
    head->next = nullptr;

    int iTemp = 0;
    while (cin >>iTemp)
    {LinkNode* node = new LinkNode;
        node->data = iTemp;
        node->next = head->next; // 新插入節(jié)點(diǎn)指向頭節(jié)點(diǎn)所指向的位置
        head->next = node; // 頭節(jié)點(diǎn)指向新插入節(jié)點(diǎn)
    }

    return head;
}

// 尾插法
LinkNode* TailInsert()
{LinkNode* head = new LinkNode;
    head->next = nullptr;
    LinkNode* tail = new LinkNode; // 創(chuàng)建一個(gè)尾節(jié)點(diǎn)
    tail = head;

    int iTemp = 0;
    while (cin >>iTemp)
    {LinkNode* node = new LinkNode;
        node->data = iTemp;
        tail->next = node; // 尾節(jié)點(diǎn)指向新插入節(jié)點(diǎn)
        tail = node; // 新插入節(jié)點(diǎn)作為新的尾節(jié)點(diǎn)
    }
    tail->next = nullptr; // 結(jié)束時(shí)尾節(jié)點(diǎn)置空
    return head;
}

// 指定位置插入元素
LinkNode* InsertNode(LinkNode* link, int iFlag, int Data)
{LinkNode* pre = link; // 創(chuàng)建一個(gè)前置節(jié)點(diǎn)
    for (size_t i = 0; i< iFlag; ++i)
    {pre = pre->next;
    }
    LinkNode* node = new LinkNode;
    node->data = Data;
    node->next = pre->next; // 新插入節(jié)點(diǎn)指向前置節(jié)點(diǎn)的下一節(jié)點(diǎn)
    pre->next = node; // 前置節(jié)點(diǎn)指向新插入節(jié)點(diǎn)

    return link;
}

// 刪除指定元素
LinkNode* DeleteNode(LinkNode* link, int Data)
{LinkNode* pre = link; // 創(chuàng)建一個(gè)前置節(jié)點(diǎn)
    LinkNode* node = link->next; // 創(chuàng)建一個(gè)指針指向當(dāng)前節(jié)點(diǎn)

    while (node->data != Data)
    {pre = node;
        node = node->next;      
    }
    pre->next = node->next; // 前置節(jié)點(diǎn)指向當(dāng)前節(jié)點(diǎn)的下一位置
    delete node; // 釋放已刪除的節(jié)點(diǎn)

    return link;
}

// 輸出測(cè)試
void PrintLink(LinkNode* link)
{LinkNode* temp = link->next;
    while (temp)
    {cout<< temp->data<< endl;
        temp = temp->next;
    }
}

int main()
{int iFlag = 2;
    int iInsertdata = 6;
    int iDeletedata = 3;
	// 測(cè)試用例:首先用尾插法創(chuàng)建一個(gè)鏈表(eg.1~5),其次在鏈表的第2個(gè)節(jié)點(diǎn)插入元素6,最后刪除元素為3的節(jié)點(diǎn)
    PrintLink(DeleteNode(InsertNode(TailInsert(), iFlag, iInsertdata), iDeletedata));
}

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

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比中山網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式中山網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋中山地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。

當(dāng)前題目:【數(shù)據(jù)結(jié)構(gòu)】單鏈表常用操作(C++)-創(chuàng)新互聯(lián)
路徑分享:http://www.muchs.cn/article6/pidig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、軟件開(kāi)發(fā)、手機(jī)網(wǎng)站建設(shè)、外貿(mào)建站網(wǎng)站導(dǎo)航、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)