1. 程式人生 > >連結串列C++ | 實現頭部、尾部插入資料_1

連結串列C++ | 實現頭部、尾部插入資料_1

頭部插入

#include<iostream>

struct ListNode{
    int m_nValue;
    ListNode* m_pNext;
};

void AddToTop(ListNode** pHead, int Value)
{
    ListNode* pNew = new ListNode();
    pNew->m_nValue = Value;
    pNew->m_pNext = nullptr;

    if(*pHead == nullptr){
        *pHead = pNew;}
    else{
        pNew->m_pNext = *pHead;
        *pHead = pNew;}
}

void print(ListNode* pHead){
    printf("LinkedList is:\n");
    while(pHead!=nullptr)
    {
        printf("%d ",pHead->m_nValue);
        pHead = pHead->m_pNext;
    }
    printf("\n");
}

int main(){
    ListNode* pHead = nullptr;
    AddToTop(&pHead, 1);
    AddToTop(&pHead, 2);
    AddToTop(&pHead, 3);
    AddToTop(&pHead, 4);
    print(pHead);
}

執行輸出:

尾部插入

#include<iostream>

struct ListNode{
    int m_nValue;
    ListNode* m_pNext;
};

void AddToTail(ListNode** pHead, int Value)
{
    ListNode* pNew = new ListNode();
    pNew->m_nValue = Value;
    pNew->m_pNext = nullptr;

    if(*pHead == nullptr){
        *pHead = pNew;}
    else{
        ListNode* pNode = *pHead;
        while(pNode->m_pNext != nullptr)
            pNode = pNode->m_pNext;
        pNode->m_pNext = pNew;}
}

void print(ListNode* pHead){
    printf("LinkedList is:\n");
    while(pHead!=nullptr)
    {
        printf("%d ",pHead->m_nValue);
        pHead = pHead->m_pNext;
    }
    printf("\n");
}

int main(){
    ListNode* pHead = nullptr;
    AddToTail(&pHead, 1);
    AddToTail(&pHead, 2);
    AddToTail(&pHead, 3);
    print(pHead);
}

執行結果:


演算法和資料結構是程式的第一祕訣,缺之演算法和資料結構是程式設計的最大原因。