連結串列C++ | 實現頭部、尾部插入資料_1
阿新 • • 發佈:2019-01-10
頭部插入
#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); }
執行結果:
演算法和資料結構是程式的第一祕訣,缺之演算法和資料結構是程式設計的最大原因。